iam — Управление пользователями, группами, ролями и ключами IAM
Новое в версии 2.0.
- Обзор
- Требования (к хосту, на котором выполняется модуль)
- Параметры
- Примеры
- Возвращаемые значения
- Примечания
Обзор
- Позволяет управлять пользователями IAM, API-ключами пользователей, группами и ролями.
Требования (к хосту, на котором выполняется модуль)
- python >= 2.6
- boto
Параметры
| Параметр | Обязательный | По умолчанию | Варианты | Комментарии |
|---|---|---|---|---|
| access_key_ids | нет | Список ключей, на которые должно повлиять значение параметра access_key_state. | ||
| access_key_state | нет |
| В случае типа 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 | нет | При обновлении ресурс будет переименован в new_name. | ||
| new_path | нет | При обновлении ресурс будет переименован в new_path. | ||
| password | нет | При type=user и state=present, задайте пароль для входа пользователя. Также работает с обновлением. Обратите внимание, что всегда возвращает изменённое значение. | ||
| path | нет | / | При создании или обновлении укажите требуемый путь к ресурсу. Если state присутствует, текущий путь будет изменён на указанный, если они не совпадают. | |
| profile (добавлен в 1.6)
| нет | Использует профиль boto. Работает только с boto >= 2.24.0. | ||
| 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 |
| always обновит пароли, если они отличаются. on_create установит пароль только для вновь созданных пользователей. |
| validate_certs (добавлен в 1.5)
| нет | да |
| Если «нет», сертификаты SSL не будут проверены для boto-версий >= 2.6.0. |
Примеры
# 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.role, возвращённый Boto | если iam_type=role и state=present | строка | {'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-...'] |
Примечания
Примечание
- В настоящее время 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
Статус
Этот модуль помечен как stableinterface, что означает, что разработчики этого модуля гарантируют, что не будет внесено обратной совместимости интерфейса.
Для получения помощи в разработке модулей, если вы заинтересованы, прочитайте Информация о сообществе и участие в разработке, Тестирование Ansible и Разработка модулей.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.4/iam_module.html