iam - Управление пользователями, группами, ролями и ключами IAM
Новая версия 2.0.
Обзор
- Позволяет управлять пользователями IAM, ключами API пользователей, группами и ролями.
Требования
Ниже приведены требования к хосту, на котором выполняется этот модуль.
- python >= 2.6
- boto
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| access_key_ids | Список ключей, на которые должно повлиять значение параметра access_key_state. | |
| access_key_state |
None | При type = user, создаёт, удаляет, деактивирует или активирует ключ(и) доступа пользователя. Обратите внимание, что действия применяются только к указанным ключам. |
| aws_access_key | Значение по умолчанию: None | Ключ доступа AWS. Если не задан, используется значение переменной окружения AWS_ACCESS_KEY_ID, AWS_ACCESS_KEY или EC2_ACCESS_KEY. Псевдонимы: ec2_access_key, access_key |
| aws_secret_key | Значение по умолчанию: None | Секретный ключ AWS. Если не задан, используется значение переменной окружения AWS_SECRET_ACCESS_KEY, AWS_SECRET_KEY или EC2_SECRET_KEY. Псевдонимы: ec2_secret_key, secret_key |
| ec2_url | Значение по умолчанию: None | URL для подключения к EC2 или вашему облаку Eucalyptus (по умолчанию модуль использует конечные точки EC2). Игнорируется для модулей, где требуется регион. Должен быть указан для всех остальных модулей, если регион не используется. Если не задан, используется значение переменной окружения EC2_URL, если она задана. |
| groups | Значение по умолчанию: None | Список групп, к которым должен принадлежать пользователь. При обновлении удаляет группы, отсутствующие в списке. |
| iam_type обязательно |
None | Тип ресурса IAM |
| key_count | Значение по умолчанию: 1 | При access_key_state = create гарантирует наличие указанного количества ключей. По умолчанию 1. |
| name обязательно | Имя ресурса IAM для создания или идентификации | |
| new_name | Значение по умолчанию: None | При state = update заменяет имя ресурса IAM на new_name. |
| new_path | Значение по умолчанию: None | При state = update заменяет путь ресурса IAM на new_path. |
| password | Значение по умолчанию: None | При type = user и state присутствует, определяет пароль входа пользователя. Также работает с обновлением. Обратите внимание, что всегда возвращает изменённое значение. |
| path | Значение по умолчанию: / | При создании или обновлении укажите желаемый путь ресурса. Если state присутствует, он заменит текущий путь, чтобы соответствовать переданному значению. |
| profile (добавлено в 1.6) | Значение по умолчанию: None | Использует профиль 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 (добавлено в 1.6) | Значение по умолчанию: None | Токен безопасности AWS STS. Если не задан, используется значение переменной окружения AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN. Псевдонимы: access_token |
| state обязательно |
None | Создать, удалить или обновить ресурс IAM. Обратите внимание, что роли не могут быть обновлены. |
| trust_policy (добавлено в 2.2) | Значение по умолчанию: None | Встроенный (JSON или YAML) документ политики доверия, предоставляющий сущности разрешение на допуск к роли. Взаимоисключающее с trust_policy_filepath. |
| trust_policy_filepath (добавлено в 2.2) | Значение по умолчанию: None | Путь к документу политики доверия, предоставляющему сущности разрешение на допуск к роли. Взаимоисключающее с trust_policy. |
| update_password |
| always обновит пароли, если они отличаются. on_create установит пароль только для вновь созданных пользователей. |
| validate_certs (добавлено в 1.5) |
| При значении "нет" сертификаты 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), если данные для аутентификации не предоставлены. См. http://boto.readthedocs.org/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
with_items:
- 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
with_items:
- Mario
- Luigi
register: new_groups
- name:
iam:
iam_type: user
name: jdavila
state: update
groups: "{{ item.created_group.group_name }}"
with_items: "{{ 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=role и state=present | словарь IAM.role, возвращаемый Boto Пример: {'assume_role_policy_document': '...усечено...', 'role_name': 'my-new-role', 'create_date': '2017-09-02T14:32:23Z', 'path': '/', 'arn': 'arn:aws:iam::A1B2C3D4E5F6:role/my-new-role', 'role_id': 'AROAA1B2C3D4E5F6G7H8I'} |
| roles список | если iam_type=role и state=present | список, содержащий имена текущих ролей Пример: ['my-new-role', 'my-existing-role-1', 'my-existing-role-2', 'my-existing-role-3', 'my-existing-role-...'] |
Статус
Этот модуль помечен как stableinterface, что означает, что разработчики этого модуля гарантируют отсутствие несовместимых изменений интерфейса.
Автор
- 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.5/modules/iam_module.html