community.aws.iam – Управление пользователями, группами, ролями и ключами IAM
Примечание
Этот плагин является частью коллекции community.aws (версия 1.3.0).
Для его установки используйте: ansible-galaxy collection install community.aws.
Для использования в книге задач, укажите: community.aws.iam.
Новое в версии 1.0.0: модуля community.aws
Обзор
- Позволяет управлять пользователями IAM, API-ключами пользователей, группами и ролями.
Требования
Ниже перечислены требования к хосту, на котором будет выполняться этот модуль.
- python >= 2.6
- boto
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| access_key_ids список / элементы=строка | Список ключей, на которые должно повлиять параметр access_key_state. | |
| access_key_state строка |
| При type=user создаёт, удаляет, деактивирует или активирует ключ(и) доступа пользователя. Обратите внимание, что действия применяются только к указанным ключам. |
| 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 | |
| debug_botocore_endpoint_logs логический тип |
| Используйте logger botocore.endpoint для анализа уникальных (а не общих) API-вызовов "ресурс:действие", выполненных во время задачи, выводя набор в ключ resource_actions в результатах задачи. Используйте callback aws_resource_action для вывода в общий список, созданный во время книги задач. Также может использоваться переменная среды ANSIBLE_DEBUG_BOTOCORE_LOGS. |
| ec2_url строка | URL для подключения к EC2 или облаку Eucalyptus (по умолчанию модуль использует адреса EC2). Игнорируется для модулей, где требуется регион. Должен быть указан для всех других модулей, если регион не используется. Если не задан, используется значение переменной среды EC2_URL, если таковая имеется. псевдонимы: aws_endpoint_url, endpoint_url | |
| groups список / элементы=строка | Список групп, к которым должен принадлежать пользователь. При state=update, корректно удалит группы, не указанные в списке. | |
| iam_type строка / обязательно |
| Тип ресурса IAM. |
| key_count целое число | Значение по умолчанию: 1 | При access_key_state=create гарантирует наличие указанного количества ключей. |
| name строка / обязательно | Имя ресурса IAM для создания или идентификации. | |
| new_name строка | При state=update заменит name на new_name для ресурса IAM. | |
| new_path строка | При state=update заменит путь на new_path для ресурса IAM. | |
| password строка | При type=user и state=present или state=update, определите пароль пользователя для входа. Примечание: всегда возвращает 'changed'. | |
| path строка | Значение по умолчанию: "/" | При создании или обновлении укажите желаемый путь к ресурсу. Если state=present, заменит текущий путь на указанный, если они не совпадают. |
| 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 security token. Если не задан, используется значение переменной среды AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN. Если задан параметр profile, этот параметр игнорируется. Одновременное использование параметров security_token и profile устарело и будет сделано взаимоисключающим после 2022-06-01. псевдонимы: aws_security_token, access_token | |
| state строка / обязательно |
| Создание, удаление или обновление ресурса IAM. Обратите внимание, что роли не могут быть обновлены. |
| trust_policy словарь | Встроенный (JSON или YAML) документ политики доверия, предоставляющий разрешение сущности на доверие роли. Взаимоисключающий с trust_policy_filepath. | |
| trust_policy_filepath строка | Путь к документу политики доверия, предоставляющему разрешение сущности на доверие роли. Взаимоисключающий с trust_policy. | |
| update_password строка |
| Когда нужно обновить пароль пользователя.
update_password=всегда гарантирует, что пароль установлен в password.
update_password=при_создании установит пароль только для новых пользователей. |
| validate_certs логический тип |
| При установке в "нет", SSL-сертификаты не будут проверяться для версий boto >= 2.6.0. |
Примечания
Примечание
- В настоящее время boto не поддерживает удаление управляемых политик, модуль выдаст ошибку, если у пользователя/группы/роли есть управляемые политики при попытке установить state=absent. Их необходимо удалить вручную.
- Если параметры не заданы в модуле, могут быть использованы следующие переменные среды в порядке убывания приоритета
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
Примеры
# Basic user creation example
- name: Create two new IAM users with API keys
community.aws.iam:
iam_type: user
name: "{{ item }}"
state: present
password: "{{ temp_pass }}"
access_key_state: create
loop:
- jcleese
- mpython
# Advanced example, create two new groups and add the pre-existing user
# jdavila to both groups.
- name: Create Two Groups, Mario and Luigi
community.aws.iam:
iam_type: group
name: "{{ item }}"
state: present
loop:
- Mario
- Luigi
register: new_groups
- name: Update user
community.aws.iam:
iam_type: user
name: jdavila
state: update
groups: "{{ item.created_group.group_name }}"
loop: "{{ new_groups.results }}"
# Example of role with custom trust policy for Lambda service
- name: Create IAM role with custom trust relationship
community.aws.iam:
iam_type: role
name: AAALambdaTestRole
state: present
trust_policy:
Version: '2012-10-17'
Statement:
- Action: sts:AssumeRole
Effect: Allow
Principal:
Service: lambda.amazonaws.com
Возвращаемые значения
Общие значения возвращаемых данных документированы здесь, ниже приведены поля, уникальные для данного модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| role_result строка | если iam_type=role и state=present | словарь IAM.role, возвращаемый Boto Пример: {'arn': 'arn:aws:iam::A1B2C3D4E5F6:role/my-new-role', 'assume_role_policy_document': '...усечено...', 'create_date': '2017-09-02T14:32:23Z', 'path': '/', 'role_id': 'AROAA1B2C3D4E5F6G7H8I', 'role_name': 'my-new-role'} |
| roles список / элементы=строка | если iam_type=role и state=present | список, содержащий имена текущих ролей Пример: ['my-new-role', 'my-existing-role-1', 'my-existing-role-2', 'my-existing-role-3', 'my-existing-role-...'] |
Авторы
- Jonathan I. Davila (@defionscode)
- Paul Seiffert (@seiffert)
© 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/iam_module.html