community.aws.aws_acm – Загрузка и удаление сертификатов в службе AWS Certificate Manager
Примечание
Этот плагин является частью коллекции community.aws (версия 1.3.0).
Для его установки используйте: ansible-galaxy collection install community.aws.
Для использования в книге задач укажите: community.aws.aws_acm.
Новое в версии 1.0.0: of community.aws
Описание
- Импортирование и удаление сертификатов в службе управления сертификатами Amazon Web Services (AWS ACM).
- В настоящее время данный модуль не взаимодействует с сертификатами, предоставляемыми AWS. Он только управляет сертификатами, предоставленными пользователями AWS.
- API ACM позволяет пользователям загружать несколько сертификатов для одного доменного имени, а также несколько идентичных сертификатов. Этот модуль пытается ограничить такие возможности, чтобы быть идемпотентным, в соответствии с философией Ansible. Для этого он использует теги ресурсов AWS «Имя» для сертификатов ACM.
- При state=present, если в ACM есть один сертификат с тегом
Nameравным параметруname_tag, и идентичным телом и цепочкой, эта задача завершится без изменений. - При state=present, если в ACM есть один сертификат с тегом Name, равным параметру name_tag, и другим телом, эта задача перезапишет этот сертификат.
- При state=present, если в ACM есть несколько сертификатов с тегом Name, равным параметру name_tag, эта задача завершится ошибкой.
- При state=absent и заданном certificate_arn, этот модуль удалит ресурс ACM с указанным ARN, если он существует в данной области, и завершится без изменений, если он не существует.
- При state=absent и заданном domain_name, этот модуль удалит все ресурсы ACM в данной области AWS с соответствующим доменным именем. Если их нет, он завершится без изменений.
- При state=absent и не заданном certificate_arn, и не заданном domain_name, этот модуль удалит все ресурсы ACM в данной области AWS с соответствующим тегом Name. Если их нет, он завершится без изменений.
- Обратите внимание, что этот модуль может не работать должным образом с ключами размером 4096 бит из-за ограничения API ACM.
Требования
Ниже перечислены требования к хосту, на котором будет выполняться этот модуль.
- boto
- boto3
- python >= 2.6
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| aws_access_key строка | Ключ доступа к AWS. Если не задан, используется значение переменной окружения AWS_ACCESS_KEY_ID, AWS_ACCESS_KEY или EC2_ACCESS_KEY. Если задан параметр profile, этот параметр игнорируется. Передача параметров aws_access_key и profile одновременно устарела и после 2022-06-01 параметры будут взаимоисключающими. псевдонимы: ec2_access_key, access_key | |
| aws_ca_bundle путь | Расположение файла с корневыми сертификатами для проверки SSL-сертификатов. Используется только для модулей, основанных на boto3. Примечание: Файл с корневыми сертификатами читается на стороне модуля и может потребоваться явно скопировать его с контроллера, если модуль не запускается локально. | |
| aws_config словарь | Словарь для изменения конфигурации botocore. Параметры можно найти по адресу https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config. Для модулей boto используется только ключ 'user_agent'. Более подробную информацию о конфигурации boto см. по адресу http://boto.cloudhackers.com/en/latest/boto_config_tut.html#boto. | |
| aws_secret_key строка | Секретный ключ доступа к AWS. Если не задан, используется значение переменной окружения AWS_SECRET_ACCESS_KEY, AWS_SECRET_KEY или EC2_SECRET_KEY. Если задан параметр profile, этот параметр игнорируется. Передача параметров aws_secret_key и profile одновременно устарела и после 2022-06-01 параметры будут взаимоисключающими. псевдонимы: ec2_secret_key, secret_key | |
| certificate строка | Тело PEM-закодированного открытого сертификата. Требуется, когда state не absent. Если ваш сертификат находится в файле, используйте lookup('file', 'path/to/cert.pem'). | |
| certificate_arn строка | ARN сертификата в ACM для удаления. Игнорируется, когда state=present. Если state=absent, необходимо указать один из параметров certificate_arn, domain_name или name_tag. Если state=absent и ресурс с данным ARN не существует в данной области, задача завершится успешно без изменений. Если state=absent и соответствующий ресурс существует в другой области, задача может сообщить об успехе без удаления этого ресурса. псевдонимы: arn | |
| certificate_chain строка | Тело PEM-закодированной цепочки сертификатов для вашего сертификата. Если ваша цепочка сертификатов находится в файле, используйте lookup('file', 'path/to/chain.pem').Игнорируется, когда state=absent
| |
| debug_botocore_endpoint_logs булево |
| Используйте logger botocore.endpoint для анализа уникальных (а не общих) API-вызовов «ресурс:действие», которые выполняются во время задачи, выводить набор в ключ resource_actions в результатах задачи. Используйте обратный вызов aws_resource_action, чтобы выводить в общий список, созданный во время выполнения playbook. Также можно использовать переменную окружения ANSIBLE_DEBUG_BOTOCORE_LOGS. |
| domain_name строка | Доменное имя сертификата. Если state=absent и задано domain_name, эта задача удалит все сертификаты ACM с этим доменным именем. Должен быть указан ровно один из параметров domain_name, name_tag и certificate_arn. Если state=present, этот параметр указывать нельзя. (Поскольку доменное имя закодировано в теле открытого сертификата). псевдонимы: domain | |
| ec2_url строка | URL для подключения к EC2 или облаку Eucalyptus (по умолчанию модуль использует конечные точки EC2). Игнорируется для модулей, где требуется регион. Должен быть указан для всех остальных модулей, если регион не используется. Если не задан, используется значение переменной окружения EC2_URL, если она есть. псевдонимы: aws_endpoint_url, endpoint_url | |
| name_tag строка | Уникальный идентификатор для маркировки ресурсов с помощью тегов AWS, с ключом Name. Это может быть любой набор символов, разрешенный AWS для значений тегов. Это гарантирует, что Ansible может обращаться с сертификатами идемпотентно, даже несмотря на то, что API ACM позволяет использовать дублирующие сертификаты. Если state=present, этот параметр должен быть указан. Если state=absent, необходимо указать ровно один из параметров certificate_arn, domain_name или name_tag. псевдонимы: name | |
| private_key строка | Тело PEM-закодированного закрытого ключа. Требуется, когда state=present. Игнорируется, когда state=absent. Если ваш закрытый ключ находится в файле, используйте lookup('file', 'path/to/key.pem'). | |
| profile строка | Использует профиль boto. Работает только с boto >= 2.24.0. Использование profile переопределяет aws_access_key, aws_secret_key и security_token, и поддержка одновременного указания их вместе с profile устарела.
aws_access_key, aws_secret_key и security_token будут взаимоисключающими с profile после 2022-06-01. псевдонимы: aws_profile | |
| region строка | Регион AWS для использования. Если не указан, используется значение переменной окружения AWS_REGION или EC2_REGION, если таковая имеется. См. http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region
псевдонимы: aws_region, ec2_region | |
| security_token строка | Токен безопасности AWS STS. Если не задан, используется значение переменной окружения AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN. Если задан параметр profile, этот параметр игнорируется. Передача параметров security_token и profile одновременно устарела и после 2022-06-01 параметры будут взаимоисключающими. псевдонимы: aws_security_token, access_token | |
| state строка |
| Если state=наличие, указанный открытый сертификат и закрытый ключ будут загружены, с тегом Name, равным name_tag. Если state=отсутствие, любые сертификаты в данной области с соответствующим domain_name, name_tag или certificate_arn будут удалены. |
| validate_certs булево |
| Если установлено «нет», SSL-сертификаты не будут проверены для версий boto >= 2.6.0. |
Примечания
Примечание
- Если параметры не заданы в модуле, следующие переменные среды могут быть использованы в порядке убывания приоритета
AWS_URLилиEC2_URL,AWS_PROFILEилиAWS_DEFAULT_PROFILE,AWS_ACCESS_KEY_IDилиAWS_ACCESS_KEYилиEC2_ACCESS_KEY,AWS_SECRET_ACCESS_KEYилиAWS_SECRET_KEYилиEC2_SECRET_KEY,AWS_SECURITY_TOKENилиEC2_SECURITY_TOKEN,AWS_REGIONилиEC2_REGION,AWS_CA_BUNDLE - Ansible использует файл конфигурации boto (обычно ~/.boto), если учетные данные не предоставлены. См. https://boto.readthedocs.io/en/latest/boto_config_tut.html
-
AWS_REGIONилиEC2_REGIONобычно используются для указания региона AWS, когда это необходимо, но это также можно настроить в файле конфигурации boto
Примеры
- name: upload a self-signed certificate
community.aws.aws_acm:
certificate: "{{ lookup('file', 'cert.pem' ) }}"
privateKey: "{{ lookup('file', 'key.pem' ) }}"
name_tag: my_cert # to be applied through an AWS tag as "Name":"my_cert"
region: ap-southeast-2 # AWS region
- name: create/update a certificate with a chain
community.aws.aws_acm:
certificate: "{{ lookup('file', 'cert.pem' ) }}"
privateKey: "{{ lookup('file', 'key.pem' ) }}"
name_tag: my_cert
certificate_chain: "{{ lookup('file', 'chain.pem' ) }}"
state: present
region: ap-southeast-2
register: cert_create
- name: print ARN of cert we just created
ansible.builtin.debug:
var: cert_create.certificate.arn
- name: delete the cert we just created
community.aws.aws_acm:
name_tag: my_cert
state: absent
region: ap-southeast-2
- name: delete a certificate with a particular ARN
community.aws.aws_acm:
certificate_arn: "arn:aws:acm:ap-southeast-2:123456789012:certificate/01234567-abcd-abcd-abcd-012345678901"
state: absent
region: ap-southeast-2
- name: delete all certificates with a particular domain name
community.aws.aws_acm:
domain_name: acm.ansible.com
state: absent
region: ap-southeast-2
Значения возврата
Общие значения возврата документированы здесь, следующие являются полями, уникальными для данного модуля:
| Ключ | Возвращаемое значение | Описание | |
|---|---|---|---|
| arns список / элементы=строка | при state=absent | Список ARN сертификатов в ACM, которые были удалены Пример: ['arn:aws:acm:ap-southeast-2:123456789012:certificate/01234567-abcd-abcd-abcd-012345678901'] | |
| certificate сложный | при state=present | Информация о сертификате, который был загружен | |
| arn строка | при state=present | ARN сертификата в ACM Пример: arn:aws:acm:ap-southeast-2:123456789012:certificate/01234567-abcd-abcd-abcd-012345678901 | |
| domain_name строка | при state=present | Имя домена, закодированное в общедоступном сертификате Пример: acm.ansible.com | |
Авторы
- Мэттью Дэвис (@matt-telstra) от имени Telstra Corporation Limited
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/aws/aws_acm_module.html