iam - Управление пользователями, группами, ролями и ключами IAM
Новое в версии 2.0.
Обзор
- Позволяет управлять пользователями 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. Псевдонимы: ec2_access_key, access_key | |
| aws_secret_key | Секретный ключ AWS. Если не задан, используется значение переменной окружения AWS_SECRET_ACCESS_KEY, AWS_SECRET_KEY или EC2_SECRET_KEY. Псевдонимы: ec2_secret_key, secret_key | |
| 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, задает пароль пользователя для входа. Также работает с обновлением. Обратите внимание, что всегда возвращается изменённое значение. | |
| path | По умолчанию: "/" | При создании или обновлении, укажите желаемый путь к ресурсу. Если state задан, он заменит текущий путь на указанный, если они не совпадают. |
| profile (добавлено в 1.6) | Использует профиль 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) | Токен безопасности AWS STS. Если не задан, используется значение переменной окружения AWS_SECURITY_TOKEN или EC2_SECURITY_TOKEN. Псевдонимы: access_token | |
| state обязательно |
| Создать, удалить или обновить ресурс IAM. Обратите внимание, что роли не могут быть обновлены. |
| trust_policy (добавлено в 2.2) | Встроенный (JSON или YAML) документ политики доверия, предоставляющий сущности разрешение на принятие роли. Взаимоисключительно с trust_policy_filepath. | |
| trust_policy_filepath (добавлено в 2.2) | Путь к документу политики доверия, предоставляющему сущности разрешение на принятие роли. Взаимоисключительно с trust_policy. | |
| update_password |
| always обновит пароли, если они отличаются. on_create установит пароль только для вновь созданных пользователей. |
| validate_certs bool (добавлено в 1.5) |
| При значении "no", сертификаты 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 Пример: {'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-...'] |
Статус
Этот модуль помечен как stableinterface, что означает, что разработчики гарантируют отсутствие несовместимых изменений интерфейса.
Техническое обслуживание
Этот модуль помечен как certified, что означает, что он поддерживается партнером Ansible.
Более подробная информация о поддержке модулей представлена здесь.
Список других модулей, поддерживаемых партнёрами Ansible, см. здесь.
Автор
- 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.6/modules/iam_module.html