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
Обзор
- Импортировать и удалять сертификаты в службе Certificate Manager (AWS ACM) Amazon Web Services.
- В настоящее время этот модуль не взаимодействует с сертификатами, предоставляемыми 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 путь | Расположение пакета CA для проверки SSL-сертификатов. Используется только для модулей, основанных на boto3. Примечание: Пакет CA считывается на стороне модуля и может потребоваться явное копирование с контроллера, если он не выполняется локально. | |
| aws_config словарь | Словарь для изменения конфигурации botocore. Параметры можно найти по адресу https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html#botocore.config.Config. Для модулей boto используется только ключ 'user_agent'. См. http://boto.cloudhackers.com/en/latest/boto_config_tut.html#boto для дополнительной конфигурации 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 булево |
| Использовать логгер botocore.endpoint для анализа уникальных (а не общих) API-вызовов «ресурс:действие» во время выполнения задачи, выводя набор в ключ resource_actions в результатах задачи. Используйте обратный вызов aws_resource_action для вывода полного списка, сделанного в ходе выполнения книги задач. Переменная окружения 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=present, указанный открытый сертификат и закрытый ключ будут загружены с тегом Name, равным name_tag. Если state=absent, любые сертификаты в данной области с соответствующим 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 | Список ARNs сертификатов в 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 | |
Авторы
- Matthew Davis (@matt-telstra) от имени Telstra Corporation Limited
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/community/aws/aws_acm_module.html