Создание пользователей IAM с Ansible - получение учетных данных CLI - PullRequest
0 голосов
/ 06 мая 2020

Я создаю имена пользователей с помощью модуля iam и использую опцию access_key_state: create.

Однако я хочу, чтобы моя playbook выводила Access Key и Секретный ключ доступа для каждого пользователя.

playbook.yml:

---
- name: "Starting the tasks: Creates IAM Policy, group, Role and User"
  hosts: localhost
  connection: local
  gather_facts: False
  vars_files:
    - vars/aws-credentials.yml

  tasks:

  - include: tasks/create-user.yml
    tags: user

  - include: tasks/create-group.yml
    tags: group

tasks / create-user.yml:

---
  # Create the IAM users with Console and API access
- name: Create new IAM users with API keys and console access
  iam:
    iam_type: user
    name: "{{ item }}"
    state: present
    password: "{{ lookup('password', 'passwordfile chars=ascii_letters') }}"
    access_key_state: create
    update_password: on_create
  no_log: true
  register: newusers
  loop:
    - johna
    - mariab
    - carlosc

- name: test
  debug:
    msg: "{{ credentials.results }}"

Отладка сообщение "{{ credentials.results }}" дает мне ключ доступа, но не секретный ключ доступа:

{
            "ansible_loop_var": "item",
            "changed": true,
            "created_keys": [],
            "failed": false,
            "groups": null,
            "invocation": {
                "module_args": {
                    "access_key_ids": null,
                    "access_key_state": "create",
                    "aws_access_key": null,
                    "aws_secret_key": null,
                    "debug_botocore_endpoint_logs": false,
                    "ec2_url": null,
                    "groups": null,
                    "iam_type": "user",
                    "key_count": 1,
                    "name": "carol.v",
                    "new_name": null,
                    "new_path": null,
                    "password": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER",
                    "path": "/",
                    "profile": null,
                    "region": null,
                    "security_token": null,
                    "state": "present",
                    "trust_policy": null,
                    "trust_policy_filepath": null,
                    "update_password": "always",
                    "validate_certs": true
                }
            },
            "item": "carlosc",
            "keys": {
                "AK_________FV": "Active"
            },
            "user_meta": {
                "access_keys": [
                    {
                        "access_key_id": "AK_________FV",
                        "status": "Active"
                    }
                ]
            },
            "user_name": "carlosc"
        }

Как получить секретный ключ доступа для каждого пользователя?

Обновление от 09 мая 2020 г. : для дополнительная ссылка .

1 Ответ

1 голос
/ 06 мая 2020

Плохие новости; похоже, что они намеренно выбрасывают secret_access_key в tra sh: https://github.com/ansible/ansible/blob/v2.9.7/lib/ansible/modules/cloud/amazon/iam.py#L238 -L241

Похоже, единственный способ обойти это - установить key_count: 0 в iam:, а затем используйте awscli или настраиваемый модуль ansible, чтобы сделать тот же вызов iam.create_access_key и сохранить результат

- name: create access key for {{ item }}
  command: aws iam create-access-key --user-name {{ item }}
  environment:
    AWS_REGION: '{{ the_region_goes_here }}'
    AWS_ACCESS_KEY_ID: '{{ whatever_you_called_your_access_key }}'
    AWS_SECRET_ACCESS_KEY: '{{ your_aws_secret_access_key_name_here }}'
  register: user_keys
  with_items:
  - johna
  - mariab
  - carlosc

Не стесняйтесь сообщать о проблеме, хотя вам, вероятно, придется подать его в новую коллекцию amazon.aws , поскольку этот iam.py больше не присутствует в ветке devel

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...