community.aws.iam – Управление пользователями, группами, ролями и ключами IAM
Примечание
Этот плагин является частью коллекции community.aws (версия 1.3.0).
Для его установки используйте: ansible-galaxy collection install community.aws.
Для использования в книге задач укажите: community.aws.iam.
Новое в версии 1.0.0: of community.aws
Обзор
- Позволяет управлять пользователями IAM, API-ключами пользователей, группами и ролями.
Требования
Ниже перечислены требования к хосту, на котором будет выполняться этот модуль.
- python >= 2.6
- boto
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| access_key_ids список / элементы=строка | Список ключей, на которые будет воздействовать параметр access_key_state. | |
| access_key_state строка |
| При типе пользователя, создаёт, удаляет, деактивирует или активирует ключи доступа пользователя. Действия применяются только к указанным ключам. |
| 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 Bundle читается со стороны модуля и может потребоваться явное копирование с контроллера, если выполнение не происходит локально. | |
| 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 | |
| debug_botocore_endpoint_logs булево |
| Используйте логгер botocore.endpoint для анализа уникальных (а не общих) API-вызовов "ресурс:действие", произведённых во время задачи, выводимые в ключ resource_actions результатов задачи. Используйте обратный вызов 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, задаётся пароль пользователя для входа. Обратите внимание, что всегда будет возвращаться «изменено». | |
| 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. Если не задан, используется значение переменной окружения 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=роль и 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=роль и 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–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/aws/iam_module.html