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 string | AWS ключ доступа. Если не задан, используется значение переменной окружения AWS_ACCESS_KEY_ID, AWS_ACCESS_KEY или EC2_ACCESS_KEY. Псевдонимы: ec2_access_key, access_key | |
| aws_secret_key string | AWS секретный ключ. Если не задан, используется значение переменной окружения AWS_SECRET_ACCESS_KEY, AWS_SECRET_KEY или EC2_SECRET_KEY. Псевдонимы: ec2_secret_key, secret_key | |
| debug_botocore_endpoint_logs boolean добавлено в 2.8 |
| Использует логирование botocore.endpoint для анализа уникальных (а не общих) API-вызовов «ресурс:действие» во время задачи, выводя набор в ключ resource_actions результатов задачи. Используйте обратный вызов aws_resource_action для вывода полного списка, сделанного во время выполнения playbook. Также может использоваться переменная окружения ANSIBLE_DEBUG_BOTOCORE_LOGS. |
| ec2_url string | 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 string | Использует профиль boto. Работает только с boto >= 2.24.0. | |
| region string | AWS регион для использования. Если не указан, используется значение переменной окружения AWS_REGION или EC2_REGION, если таковое есть. См. http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region
Псевдонимы: aws_region, ec2_region | |
| security_token string | 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 |
| При значении "нет", сертификаты 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=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. [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.8/modules/iam_module.html