iam_policy - Управление политиками IAM для пользователей, групп и ролей
Новое в версии 2.0.
Обзор
- Позволяет загружать или удалять политики IAM для пользователей, групп или ролей IAM.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- python >= 2.6
- boto
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| 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, если она есть. | |
| iam_name обязательно | Имя ресурса IAM, на который вы хотите нацелить действия с политиками. Другими словами, имя пользователя, группы или роли. | |
| iam_type обязательно |
| Тип ресурса IAM |
| policy_document | Путь к файлу политики в формате JSON (исключающий policy_json) | |
| policy_json | Политика в формате JSON как строка (исключающий policy_document, см. https://github.com/ansible/ansible/issues/7005#issuecomment-42894813, как правильно использовать) | |
| policy_name обязательно | Имя метки политики для создания или удаления. | |
| 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 | |
| skip_duplicates | По умолчанию: "/" | По умолчанию модуль ищет политики, соответствующие переданному документу. Если совпадение есть, новый объект политики с теми же правилами не будет создан. Это можно переопределить, задав значение false, что позволит создать два объекта политики с разными именами, но одинаковыми правилами. |
| state обязательно |
| Определяет, нужно ли создать или удалить политику IAM. |
| validate_certs bool (добавлен в 1.5) |
| При значении "no" сертификаты SSL для boto версии >= 2.6.0 не будут проверяться. |
Примечания
Примечание
- В настоящее время boto не поддерживает удаление управляемых политик, поэтому модуль не будет работать при удалении/добавлении управляемых политик.
- Если параметры не заданы в модуле, могут быть использованы следующие переменные среды в порядке убывания приоритета
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
Примеры
# Create a policy with the name of 'Admin' to the group 'administrators'
- name: Assign a policy called Admin to the administrators group
iam_policy:
iam_type: group
iam_name: administrators
policy_name: Admin
state: present
policy_document: admin_policy.json
# Advanced example, create two new groups and add a READ-ONLY policy to both
# groups.
- name: Create Two Groups, Mario and Luigi
iam:
iam_type: group
name: "{{ item }}"
state: present
with_items:
- Mario
- Luigi
register: new_groups
- name: Apply READ-ONLY policy to new groups that have been recently created
iam_policy:
iam_type: group
iam_name: "{{ item.created_group.group_name }}"
policy_name: "READ-ONLY"
policy_document: readonlypolicy.json
state: present
with_items: "{{ new_groups.results }}"
# Create a new S3 policy with prefix per user
- name: Create S3 policy from template
iam_policy:
iam_type: user
iam_name: "{{ item.user }}"
policy_name: "s3_limited_access_{{ item.prefix }}"
state: present
policy_json: " {{ lookup( 'template', 's3_policy.json.j2') }} "
with_items:
- user: s3_user
prefix: s3_user_prefix
Статус
Этот модуль помечен как stableinterface, что означает, что разработчики гарантируют отсутствие несовместимых изменений интерфейса.
Обслуживание
Этот модуль помечен как community, что означает, что его поддерживает сообщество Ansible. Подробную информацию см. в разделе Обслуживание и поддержка модулей.
Список других модулей, поддерживаемых сообществом Ansible, см. в разделе здесь.
Автор
- Jonathan I. Davila (@defionscode)
Подсказка
Если вы обнаружите ошибки в этом документе, вы можете отредактировать его для улучшения.
© 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_policy_module.html