Ansible을 사용하여 AWS IAM 사용자 그룹 생성 및 관리

이전 부분에는 IAM 사용자가 있습니다. 이제 IAM 사용자 그룹으로 이동합니다. IAM 사용자 그룹은 그룹이 아닌 두 명 이상의 IAM 사용자를 구성원으로 구성합니다(그룹은 다른 그룹으로 구성될 수 없기 때문). 그룹 수준에서 여러 사용자에 대해 동일한 권한을 보다 쉽게 ​​관리할 수 있습니다. 이는 IAM 사용자에 대한 정책과 같은 권한 부여를 관리하는 모범 사례입니다.

IAM 사용자 그룹에는 community.aws.iam_group 모듈을 사용합니다.


1. 기존 사용자와 함께 그룹을 구성원으로 만듭니다.
인벤토리에 추가할 변수:

      group_new_members: 
        - { name: "{{ group1 }}", members: ["{{ user1 }}","{{ user2 }}"] }


일:
(참고: 사용자를 구성원으로 추가하지 않고 그룹만 생성하려는 경우 사용자 매개변수를 제거할 수 있습니다.)

    - name: create group and add existing users as members
      community.aws.iam_group:
        name: "{{ item.name }}"
        state: present
        users: "{{ item.members }}"
      loop: "{{ group_new_members }}"
      tags:
        - iam_group_new_members


플레이북을 실행합니다.

$ ansible-playbook -i host.yml iam.yml -t iam_group_new_members

PLAY [iam] *************************************************************************

TASK [create group and add existing users as members] ******************************
changed: [localhost] => (item={'name': 'developer', 'members': ['nurul', 'rama']})


사용자가 포함된 그룹이 생성되었는지 확인해 봅시다!

$ aws iam get-group --group-name developer | grep UserName
            "UserName": "nurul",
            "UserName": "rama",



2. 그룹을 생성하고 관리형 정책을 연결합니다.
앞에서 언급했듯이 그룹 수준은 IAM 사용자에 대한 권한 또는 정책을 관리하는 모범 사례 중 하나입니다. Ansible을 사용하면 확실히 할 수 있습니다.
인벤토리에 추가할 변수:

      group_new_policy:
        - { name: "{{ group2 }}", policy: arn:aws:iam::aws:policy/IAMReadOnlyAccess }


일:

    - name: create group + attach managed policy
      community.aws.iam_group:
        name: "{{ item.name }}"
        managed_policies: "{{ item.policy }}"
        state: present
      loop: "{{ group_new_policy }}"
      tags:
        - iam_group_new_policy


플레이북을 실행합니다.

$ ansible-playbook -i host.yml iam.yml -t iam_group_new_policy

PLAY [iam] *************************************************************************

TASK [create group + attach managed policy] ****************************************
changed: [localhost] => (item={'name': 'programmer', 'policy': 'arn:aws:iam::aws:policy/IAMReadOnlyAccess'})



3. 기존 사용자와 함께 그룹을 구성원으로 생성하고 관리형 정책을 연결합니다.
첫 번째 작업에서는 그룹을 만들고 사용자를 추가할 수 있으며, 두 번째 작업에서는 사용자 추가를 관리형 정책 연결로 대체하여 다른 작업을 수행합니다. 모든 작업이 개별적으로 실행되었지만 둘 다 필요한 경우 어떻게 해야 합니까? 우린 할 수있어. 방법은 다음과 같습니다.

인벤토리에 아래 변수 추가:

      group_new_policy_members:
        - { name: "{{ group3 }}", policy: arn:aws:iam::aws:policy/IAMReadOnlyAccess, members: ["{{ user1 }}","{{ user2 }}"] }


일:

    - name: create group with users as members + attach managed policy
      community.aws.iam_group:
        name: "{{ item.name }}"
        managed_policies: "{{ item.policy }}"
        users: "{{ item.members }}"
        state: present
      loop: "{{ group_new_policy_members }}"
      tags:
        - iam_group_new_policy_members


플레이북을 실행합니다.

$ ansible-playbook -i host.yml iam.yml -t iam_group_new_policy_members

PLAY [iam] *************************************************************************

TASK [create group with users as members + attach managed policy] ******************
changed: [localhost] => (item={'name': 'engineer', 'policy': 'arn:aws:iam::aws:policy/IAMReadOnlyAccess', 'members': ['nurul', 'rama']})



$ aws iam get-group --group-name engineer | grep UserName
            "UserName": "nurul",
            "UserName": "rama",


위의 모든 작업은 생성, 생성 및 생성에 관한 것이 아닙니다. 그룹 관리에도 사용할 수 있습니다. 예를 들어 기존 사용자를 기존 그룹의 구성원으로 추가하려고 합니다. 그런 다음 위의 첫 번째 작업을 사용하여 그렇게 할 수 있습니다.

파트 3은 여기까지입니다. 이 게시물에 대한 여러분의 사랑에 감사드리며 유용하다고 생각되면 공유해 주세요. 고맙습니다. 4부의 IAM 역할을 계속하겠습니다.

참조: https://docs.ansible.com/ansible/latest/collections/community/aws/iam_group_module.html

좋은 웹페이지 즐겨찾기