iam – Управление пользователями, группами, ролями и ключами IAM
Описание
- Позволяет управлять пользователями IAM, API-ключами пользователей, группами и ролями.
Требования
Ниже перечислены требования к хосту, на котором будет выполняться этот модуль.
- python >= 2.6
- boto
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| access_key_ids список | Список ключей, на которые должно повлиять параметр access_key_state. | |
| access_key_state строка |
| При type = user, создаёт, удаляет, деактивирует или активирует API-ключи пользователя. Действия применяются только к указанным ключам. |
| aws_access_key строка | Ключ доступа AWS. Если не задан, используется значение переменной окружения AWS_ACCESS_KEY_ID, AWS_ACCESS_KEY или EC2_ACCESS_KEY. Псевдонимы: ec2_access_key, access_key | |
| aws_secret_key строка | Секретный ключ AWS. Если не задан, используется значение переменной окружения AWS_SECRET_ACCESS_KEY, AWS_SECRET_KEY или EC2_SECRET_KEY. Псевдонимы: ec2_secret_key, secret_key | |
| debug_botocore_endpoint_logs логический добавлен в 2.8 |
| Использует логирование botocore.endpoint для анализа уникальных (а не общих) API-вызовов «ресурс:действие» во время задачи, выводя набор в ключ resource_actions в результатах задачи. Используйте callback aws_resource_action для вывода в полный список, созданный во время выполнения playbook. Также может быть использована переменная окружения ANSIBLE_DEBUG_BOTOCORE_LOGS. |
| ec2_url строка | URL для подключения к EC2 или вашему облаку Eucalyptus (по умолчанию используется конечная точка EC2). Игнорируется для модулей, где требуется регион. Должен быть указан для всех остальных модулей, если регион не используется. Если не задан, используется значение переменной окружения EC2_URL, если таковая есть. | |
| groups список | Список групп, к которым должен принадлежать пользователь. При обновлении группы, которые не указаны, будут удалены. | |
| iam_type строка |
| Тип ресурса IAM. |
| key_count целое число | По умолчанию: 1 | Когда access_key_state = create, гарантируется наличие этого количества ключей. По умолчанию 1. |
| name строка / обязательно | Имя ресурса IAM для создания или идентификации. | |
| new_name строка | При state = update, имя ресурса IAM будет заменено на new_name. | |
| new_path строка | При state = update, путь к ресурсу IAM будет заменён на new_path. | |
| password строка | При type = user и state = present, задаёт пароль пользователя для входа. Также работает с update. Заметка: всегда возвращает изменённое значение. | |
| path строка | По умолчанию: "/" | При создании или обновлении укажите желаемый путь к ресурсу. Если state задан, текущий путь будет изменён, чтобы соответствовать переданному значению. |
| profile строка | Использует профиль boto. Работает только с boto >= 2.24.0. | |
| 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. Псевдонимы: access_token | |
| state строка / обязательно |
| Определяет создание, удаление или обновление ресурса IAM. Обратите внимание, что роли не могут быть обновлены. |
| trust_policy словарь | Встроенный (JSON или YAML) документ политики доверия, предоставляющий сущности разрешение на принятие роли. Взаимоисключающий с trust_policy_filepath. | |
| trust_policy_filepath строка | Путь к документу политики доверия, предоставляющему сущности разрешение на принятие роли. Взаимоисключающий с trust_policy. | |
| update_password строка |
| always обновит пароли, если они отличаются. on_create установит пароль только для вновь созданных пользователей. |
| validate_certs логический |
| При значении "нет", сертификаты SSL не будут проверены для версий boto >= 2.6.0. |
Примечания
Примечание
- В настоящее время boto не поддерживает удаление управляемых политик. Модуль выдаст ошибку, если у пользователя/группы/роли есть управляемые политики при попытке установить state=absent. Их необходимо удалить вручную.
- Если параметры не заданы в модуле, можно использовать следующие переменные окружения в порядке убывания приоритета
AWS_URLилиEC2_URL,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 - Ansible использует конфигурационный файл boto (обычно ~/.boto), если учётные данные не указаны. См. https://boto.readthedocs.io/en/latest/boto_config_tut.html
-
AWS_REGIONилиEC2_REGIONобычно используются для указания AWS региона, когда это требуется, но это также можно настроить в конфигурационном файле boto
Примеры
# Basic user creation example
tasks:
- name: Create two new IAM users with API keys
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.
task:
- name: Create Two Groups, Mario and Luigi
iam:
iam_type: group
name: "{{ item }}"
state: present
loop:
- Mario
- Luigi
register: new_groups
- name:
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
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-...'] |
Статус
- Этот модуль гарантирует обратную совместимость интерфейсных изменений в будущем. [stableinterface]
- Этот модуль поддерживается сообществом Ansible. [community]
Авторы
- 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.9/modules/iam_module.html