iam_role – Управление ролями AWS IAM
Новое в версии 2.3.
Обзор
- Управление ролями AWS IAM
Требования
Ниже приведены требования к хосту, на котором будет выполняться этот модуль.
- boto
- boto3
- botocore
- python >= 2.6
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| assume_role_policy_document - | Документ политики доверия, предоставляющий субъекту разрешение на принятие роли. Этот параметр обязателен, когда state=present. | |
| 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 | |
| boundary - добавлен в 2.7 | Добавляет ARN управляемой политики IAM, чтобы ограничить разрешения, которые эта роль может передать ролям/пользователям IAM, которые она создаёт. Границы не могут быть заданы для профилей экземпляров, поэтому, если этот параметр указан, create_instance_profile должно быть false.Это предназначено для ролей/пользователей, имеющих разрешение на создание новых объектов IAM. Дополнительную информацию о границах см. на https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html Псевдонимы: boundary_policy_arn | |
| create_instance_profile boolean добавлен в 2.5 |
| Создает профиль экземпляра IAM вместе с ролью |
| description - добавлен в 2.5 | Укажите описание новой роли | |
| ec2_url - | URL для подключения к EC2 или вашему облаку Eucalyptus (по умолчанию модуль использует конечные точки EC2). Игнорируется для модулей, где регион необходим. Должен быть указан для всех других модулей, если регион не используется. Если не задан, используется значение переменной среды EC2_URL, если она есть. | |
| managed_policy - | Список ARN управляемых политик или, начиная с Ansible 2.4, список либо ARN управляемых политик, либо дружественных имён. Для встраивания внутренней политики используйте iam_policy. Для удаления существующих политик используйте пустой элемент списка. Псевдонимы: managed_policies | |
| name - / обязательно | Имя создаваемой роли. | |
| path - | По умолчанию: "/" | Путь к роли. Дополнительную информацию о путях см. на http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html. |
| profile - добавлен в 1.6 | Использует профиль boto. Работает только с boto >= 2.24.0. | |
| purge_policies boolean добавлен в 2.5 |
| Отсоединяет любые управляемые политики, не указанные в параметре "managed_policy". Установите в значение false, если вы хотите прикрепить политики где-то ещё. |
| 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 |
| validate_certs boolean добавлен в 1.5 |
| Если установлено в "no", сертификаты SSL не будут проверены для версий boto >= 2.6.0. |
Примечания
Примечание
- Если параметры не установлены в модуле, можно использовать следующие переменные окружения в порядке убывания приоритета
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
Примеры
# Note: These examples do not set authentication details, see the AWS Guide for details.
- name: Create a role with description
iam_role:
name: mynewrole
assume_role_policy_document: "{{ lookup('file','policy.json') }}"
description: This is My New Role
- name: "Create a role and attach a managed policy called 'PowerUserAccess'"
iam_role:
name: mynewrole
assume_role_policy_document: "{{ lookup('file','policy.json') }}"
managed_policy:
- arn:aws:iam::aws:policy/PowerUserAccess
- name: Keep the role created above but remove all managed policies
iam_role:
name: mynewrole
assume_role_policy_document: "{{ lookup('file','policy.json') }}"
managed_policy:
-
- name: Delete the role
iam_role:
name: mynewrole
assume_role_policy_document: "{{ lookup('file', 'policy.json') }}"
state: absent
Возвращаемые значения
Общие значения возврата описаны в здесь, следующие поля уникальны для этого модуля:
| Ключ | Возвращаемое значение | Описание | |
|---|---|---|---|
| iam_role сложный | успешно | словарь, содержащий данные роли IAM | |
| arn строка | всегда | имя Amazon Resource Name (ARN), определяющее роль Пример: arn:aws:iam::1234567890:role/mynewrole | |
| assume_role_policy_document строка | всегда | политика, предоставляющая сущности разрешение на принятие роли Пример: {'statement': [{'action': 'sts:AssumeRole', 'effect': 'Allow', 'principal': {'service': 'ec2.amazonaws.com'}, 'sid': ''}], 'version': '2012-10-17'} | |
| attached_policies список | всегда | список словарей, содержащих имя и ARN управляемых политик IAM, прикреплённых к роли Пример: [{'policy_arn': 'arn:aws:iam::aws:policy/PowerUserAccess', 'policy_name': 'PowerUserAccess'}] | |
| create_date строка | всегда | дата и время создания роли в формате даты и времени ISO 8601 Пример: 2016-08-14T04:36:28+00:00 | |
| path строка | всегда | путь к роли Пример: / | |
| role_id строка | всегда | устойчивая и уникальная строка, идентифицирующая роль Пример: ABCDEFF4EZ4ABCDEFV4ZC | |
| role_name строка | всегда | наглядное имя, идентифицирующее роль Пример: myrole | |
Статус
- Данный модуль не гарантирует обратной совместимости интерфейса. [preview]
- Данный модуль поддерживается сообществом Ansible. [community]
Авторы
- Rob White (@wimnat)
Подсказка
Если вы обнаружите какие-либо проблемы в этой документации, вы можете отредактировать этот документ, чтобы улучшить его.
© 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_role_module.html