conjur-host-identity
Ansible Роль Conjur
Эта Ansible роль предоставляет возможность предоставить машине Conjur идентичность на хосте. После того как на хосте создана идентичность с помощью этой роли, секреты могут быть безопасно извлечены с использованием инструмента Summon.
Рекомендуемая литература
- Чтобы узнать больше о Conjur, попробуйте.
- Чтобы узнать больше о том, как интегрировать Conjur с Ansible, посетите документацию по интеграции.
- Чтобы узнать больше о Summon, инструменте для экспорта секретных значений из Conjur в ваши приложения, посетите веб-страницу Summon.
- Чтобы узнать больше о других способах интеграции с Conjur, посетите документацию Conjur.
Требования
- Conjur v1+ или Conjur Enterprise (ранее DAP) v10+
- Conjur Enterprise v4
- Ansible v2.8
Если вы используете Ansible v2.9+, пожалуйста, рассмотрите возможность использования нашей Ansible Коллекции.
Использование ansible-conjur-host-identity с Conjur Open Source
Если вы используете этот проект с Conjur Open Source, мы настоятельно рекомендуем выбирать версию этого проекта из последнего релиза Conjur OSS suite. Разработчики Conjur проводят дополнительные тесты на версиях релиза, чтобы обеспечить совместимость. По возможности обновите вашу версию Conjur, чтобы соответствовать последнему релизу suite; при использовании интеграций выбирайте последний релиз, который соответствует вашей версии Conjur. Если у вас есть вопросы, пожалуйста, свяжитесь с нами на Discourse.
Инструкции по использованию
Установите роль Conjur, используя следующую команду в каталоге вашего плейбука:
$ ansible-galaxy install cyberark.conjur-host-identity
Роль Conjur предоставляет метод для "Conjurize" или установления идентичности Conjur удаленной ноды с помощью Ansible. Нода может затем получить доступ с минимальными привилегиями для безопасного извлечения нужных секретов.
Переменные роли
conjur_appliance_url
*
: URL вашей инстанции Conjur / Conjur Enterprise, к которой вы подключаетесь. При подключении к кластеру HA мастер-узла Conjur Enterprise это будет URL балансировщика нагрузки.conjur_account
*
: название аккаунта для инстанции Conjur, к которой вы подключаетесь.conjur_host_factory_token
*
: токен Host Factory для регистрации слоя. Это значение должно быть указано в окружении на управляющем хосте Ansible.conjur_host_name
*
: имя идентичности хоста для создания хостовой фабрикой.conjur_ssl_certificate
: PEM-кодированная цепочка x509 CA сертификатов для инстанции Conjur Enterprise, к которой вы подключаетесь. Это значение можно получить, выполнив команду:$ openssl s_client -showcerts -servername [CONJUR_DNS_NAME] -connect [CONJUR_DNS_NAME]:443 < /dev/null 2> /dev/null
conjur_validate_certs
: логическое значение, указывающее, следует ли клиенту проверять сертификаты сервера Conjur.summon.version
: версия Summon для установки. По умолчанию0.8.3
.summon_conjur.version
: версия провайдера Summon-Conjur для установки. По умолчанию0.5.3
.
Переменные, отмеченные *
, являются обязательными. Остальные переменные обязательны для работы с HTTPS-эндпоинтом Conjur, но не обязательны, если вы работаете с HTTP-эндпоинтом Conjur.
Пример плейбука
Настройте удаленную ноду с идентичностью Conjur и Summon:
- hosts: servers
roles:
- role: cyberark.conjur-host-identity
conjur_appliance_url: 'https://conjur.myorg.com/api',
conjur_account: 'myorg',
conjur_host_factory_token: "{{lookup('env', 'HFTOKEN')}}",
conjur_host_name: "{{inventory_hostname}}"
Этот пример:
- Регистрирует хост в Conjur, добавляя его в слой, специфичный для предоставленного токена хостовой фабрики.
- Устанавливает Summon с провайдером Summon-Conjur для извлечения секретов из Conjur.
Summon & Системные менеджеры
С установленным Summon, использование Conjur с системным менеджером (например, SystemD) становится простым. Вот простой пример файла SystemD, подключающегося к Conjur:
[Unit]
Description=DemoApp
After=network-online.target
[Service]
User=DemoUser
#Environment=CONJUR_MAJOR_VERSION=4
ExecStart=/usr/local/bin/summon --yaml 'DB_PASSWORD: !var staging/demoapp/database/password' /usr/local/bin/myapp
Пример выше использует Summon для извлечения пароля, хранящегося в staging/myapp/database/password
, устанавливает его в переменную окружения DB_PASSWORD
и передает его процессу демон-приложения. Используя Summon, секрет хранится вне диска. Если сервис перезагружается, Summon снова извлекает пароль при запуске приложения.
Зависимости
Нет
Рекомендации
- Важно: добавьте
no_log: true
к каждому плейу, использующему чувствительные данные, иначе эти данные могут быть выведены в логи. - Установите минимальные разрешения для файлов Ansible. Ansible использует разрешения пользователя, который его запускает.
Вклад
Мы приветствуем вклады всех типов в этот репозиторий. Для инструкций по началу работы и описания наших рабочих процессов разработки, пожалуйста, ознакомьтесь с нашим руководством по вкладами.
Лицензия
Copyright (c) 2020 CyberArk Software Ltd. Все права защищены.
Этот репозиторий лицензирован под Apache License 2.0 - смотрите LICENSE
для получения дополнительных сведений.
ansible-galaxy install cyberark/ansible-conjur-host-identity