Spec-Zone.ru › Ansible 2.4

iam — Управление пользователями, группами, ролями и ключами IAM

Новое в версии 2.0.

  • Обзор
  • Требования (к хосту, на котором выполняется модуль)
  • Параметры
  • Примеры
  • Возвращаемые значения
  • Примечания
    • Статус

Обзор

  • Позволяет управлять пользователями IAM, API-ключами пользователей, группами и ролями.

Требования (к хосту, на котором выполняется модуль)

  • python >= 2.6
  • boto

Параметры

Параметр Обязательный По умолчанию Варианты Комментарии
access_key_ids
нет
Список ключей, на которые должно повлиять значение параметра access_key_state.
access_key_state
нет
  • create
  • remove
  • active
  • inactive
В случае типа 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
да
  • user
  • group
  • role
Тип ресурса 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
да
  • present
  • absent
  • update
Создать, удалить или обновить ресурс IAM. Обратите внимание, что роли не могут быть обновлены.
trust_policy
(добавлен в 2.2)
нет
Встроенный (JSON или YAML) документ политики доверия, предоставляющий сущности разрешение на принятие роли. Взаимоисключающий с trust_policy_filepath.
trust_policy_filepath
(добавлен в 2.2)
нет
Путь к документу политики доверия, предоставляющему сущности разрешение на принятие роли. Взаимоисключающий с trust_policy.
update_password
нет always
  • always
  • on_create
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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API