iam – Управление пользователями, группами, ролями и ключами IAM
Новое в версии 2.0.
Описание
- Позволяет управлять пользователями IAM, API-ключами пользователей, группами и ролями.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- python >= 2.6
- boto
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| access_key_ids - | Список ключей, на которые должно повлиять значение параметра access_key_state. | |
| access_key_state - |
| При type="user" создаёт, удаляет, деактивирует или активирует API-ключ(и) пользователя. Действия применяются только к указанным ключам. |
| aws_access_key - | AWS access key. Если не задано, используется значение переменной окружения AWS_ACCESS_KEY_ID, AWS_ACCESS_KEY или EC2_ACCESS_KEY. Псевдонимы: ec2_access_key, access_key | |
| aws_secret_key - | AWS secret key. Если не задано, используется значение переменной окружения 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 задаётся пароль пользователя. Также работает с update. Примечание: всегда возвращается изменённое значение. | |
| 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 security token. Если не задано, используется значение переменной окружения 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 boolean добавлено в 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), если учетные данные не предоставлены. См. 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
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]
- Этот модуль поддерживается партнёром Ansible. [certified]
Авторы
- 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.7/modules/iam_module.html