を使用してAWSのIAMのユーザーを作成し、管理
10374 ワード
では、iamユーザから始めましょう.私が第1部に言及したように、あなたはAWS(ルート)アカウントを作成した後にあなたが必要とする最初のサービスです.AWSで何をしたいのかroot rootアカウントを使うのは本当に安全ではありません.そんなことをするな
さて、ログインプロファイルとアクセスキーである資格情報と共にIAMユーザを作成します.それから、あなたの会社が新しい従業員を持っていて、AWSを通してアクセスを必要とするので、あなたはいくつかのIAMユーザーをつくる必要があります.ここでは、我々はansibleを使用するつもりです.それはここで使用可能な使用の主なポイントです.我々は複数のタスクを1つだけクリックして複数のユーザーを作成するために使用することができます!わあ、どうやって行くの?我々は、変数とタグを再生する必要があります!
IAMのユーザーのために、我々は使用する
1 .ユーザ
ループは、変数の複数の値に対して同じタスクを再生します.インベントリに戻ると、変数を定義します.これは、タスクの値よりも在庫の値を変更する方が良いです.それで、それはあなたを混乱させません.在庫は、次のような追加の変数が必要です.
タグは、我々が実行するタスクを選択する自由を与える.たとえば、私はただ資格情報なしでユーザーを作成したいだけです.それで、私はちょうど 2 .ユーザのアクセスキーを作成する
3 .ユーザのパスワードを作成する
上記のタスクを実行した後、4ユーザーと一緒にパスワードとアクセスキーがあります.リセットパスワードは、各ユーザーに必要なことを覚えて、チェックしましょう!
動く.パスワードを入力した後にリセットパスワード命令が表示されます.
4 .ユーザの作成と管理ポリシーの作成
ユーザーの作成に加えて、ユーザーを作成し、マネージポリシーをアタッチできます.まあ、これは最高の練習ではないが、ここで私は、我々はこれを行うことができますが表示されます.
この変数をインベントリーに追加します.
ユーザーAiraのアクセスキーを作成します.変数の更新とタスクの特定のタグの使用を忘れないでください.
セットアップiamユーザー.追加できます
ポリシーアクセスを確認します
それは第2部です.私はこのポストに対するあなたの愛に感謝します、そして、あなたが役に立つならば、共有してください.ありがとう.IAMユーザーグループのパート3に移動しましょう.
参照:https://docs.ansible.com/ansible/latest/collections/community/aws/iam_user_module.html
さて、ログインプロファイルとアクセスキーである資格情報と共にIAMユーザを作成します.それから、あなたの会社が新しい従業員を持っていて、AWSを通してアクセスを必要とするので、あなたはいくつかのIAMユーザーをつくる必要があります.ここでは、我々はansibleを使用するつもりです.それはここで使用可能な使用の主なポイントです.我々は複数のタスクを1つだけクリックして複数のユーザーを作成するために使用することができます!わあ、どうやって行くの?我々は、変数とタグを再生する必要があります!
IAMのユーザーのために、我々は使用する
community.aws.iam_user
モジュールです.1 .ユーザ
- name: create user
community.aws.iam_user:
name: "{{ item }}"
state: present
loop: "{{ user_new }}"
tags:
- iam_user_new ### create user + pass + key
- iam_user_only ### create user only
- iam_user_key ### create user + key
- iam_user_pass ### create user + pass
このタスクは新しいユーザを作成します.ご覧の通り変数を使いますuser_new
と4つのタグ.使い方を教えてあげましょう. user1: nurul
user2: rama
user3: beny
user4: rahman
user_new:
- "{{ user1 }}"
- "{{ user2 }}"
- "{{ user3 }}"
- "{{ user4 }}"
user_key:
- { name: "{{ user1 }}" }
- { name: "{{ user2 }}" }
- { name: "{{ user3 }}" }
- { name: "{{ user4 }}" }
user_pass:
- { name: "{{ user1 }}", pass: "{{ temp_pass }}" }
- { name: "{{ user2 }}", pass: "{{ temp_pass }}" }
- { name: "{{ user3 }}", pass: "{{ temp_pass }}" }
- { name: "{{ user4 }}", pass: "{{ temp_pass }}" }
iam_user_only
タグ.その後、パスワードだけでユーザーを作成したい.一緒に行きましょうiam_user_pass
タグ.それは私たちがタグで遊ぶ方法です. - name: create user's key
shell: 'aws iam create-access-key --user-name "{{ item.name }}" >> key_list.txt'
loop: "{{ user_key }}"
tags:
- iam_user_new
- iam_user_key
- iam_user_key_only
- name: list user's key
shell: 'cat key_list.txt | grep "UserName\|AccessKeyId\|SecretAccessKey" | sed "s/,$//"'
register: list_key
tags:
- iam_user_new
- iam_user_key
- debug:
var: list_key.stdout_lines
tags:
- iam_user_new
- iam_user_key
アクセスキーの場合、シェルコマンドと組み合わせます.実際にそれを作成するモジュールがありますcommunity.aws.iam_access_key
そして、このように見えます. - name: create user's key
community.aws.iam_access_key:
user_name: "{{ item }}"
state: present
loop: "{{ user_key }}"
tags:
- iam_user_new
- iam_user_key
しかし、私たちはアクセスキーと秘密のアクセスキー情報も必要とするので、私はシェルコマンドで行く最初のオプションで行くつもりです、2番目のものが出力を与えていないので、我々はCLIを使用するので、我々はコンソールでできるように直接アクセスキーファイルをダウンロードすることができません.それで、私はアクセスキーを作成するために3つの仕事を結合して、ファイルに出力を保存して、我々が必要とする価値を示します.そういうわけだ!3 .ユーザのパスワードを作成する
- name: create user's password
command: aws iam create-login-profile --user-name "{{ item.name }}" --password "{{ item.pass }}" --password-reset-required
loop: "{{ user_pass }}"
tags:
- iam_user_new
- iam_user_pass
今、私はすべてのタスクを使用してPlayBookを実行しますiam_user_new
タグとパスワードとアクセスキーと一緒に4新しいユーザーを作成します.$ ansible-playbook -i host.yml iam.yml -t iam_user_new
PLAY [iam] *************************************************************************
TASK [create user] *****************************************************************
changed: [localhost] => (item=nurul)
changed: [localhost] => (item=rama)
changed: [localhost] => (item=beny)
changed: [localhost] => (item=rahman)
TASK [create user's key] ***********************************************************
changed: [localhost] => (item={'name': 'nurul'})
changed: [localhost] => (item={'name': 'rama'})
changed: [localhost] => (item={'name': 'beny'})
changed: [localhost] => (item={'name': 'rahman'})
TASK [list user's key] *************************************************************
changed: [localhost]
TASK [debug] ***********************************************************************
ok: [localhost] => {
"list_key.stdout_lines": [
" \"UserName\": \"nurul\"",
" \"AccessKeyId\": \"AKIAZ44MXOFLL5MRZWON\"",
" \"SecretAccessKey\": \"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\"",
" \"UserName\": \"rama\"",
" \"AccessKeyId\": \"AKIAZ44MXOFLL36LYJKV\"",
" \"SecretAccessKey\": \"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\"",
" \"UserName\": \"beny\"",
" \"AccessKeyId\": \"AKIAZ44MXOFLCMV33DHV\"",
" \"SecretAccessKey\": \"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\"",
" \"UserName\": \"rahman\"",
" \"AccessKeyId\": \"AKIAZ44MXOFLDJASSSVD\"",
" \"SecretAccessKey\": \"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\""
]
}
TASK [create user's password] ******************************************************
changed: [localhost] => (item={'name': 'nurul', 'pass': 'passwordup2U!'})
changed: [localhost] => (item={'name': 'rama', 'pass': 'passwordup2U!'})
changed: [localhost] => (item={'name': 'beny', 'pass': 'passwordup2U!'})
changed: [localhost] => (item={'name': 'rahman', 'pass': 'passwordup2U!'})
注意*:他の誰にもアクセスキーを表示しないでください.これは私が後で削除しようとする例です.上記のタスクを実行した後、4ユーザーと一緒にパスワードとアクセスキーがあります.リセットパスワードは、各ユーザーに必要なことを覚えて、チェックしましょう!
動く.パスワードを入力した後にリセットパスワード命令が表示されます.
4 .ユーザの作成と管理ポリシーの作成
ユーザーの作成に加えて、ユーザーを作成し、マネージポリシーをアタッチできます.まあ、これは最高の練習ではないが、ここで私は、我々はこれを行うことができますが表示されます.
この変数をインベントリーに追加します.
user_new_policy:
- { name: "{{ user5 }}", policy: arn:aws:iam::aws:policy/IAMFullAccess }
課題: - name: create a user and attach a managed policy
community.aws.iam_user:
name: "{{ item.name }}"
managed_policies: "{{ item.policy }}"
state: present
loop: "{{ user_new_policy }}"
tags:
- iam_user_new_policy
それでは、脚本を使いますiam_user_new_policy
タグ.$ ansible-playbook -i host.yml iam.yml -t iam_user_new_policy
PLAY [iam] *************************************************************************
TASK [create a user and attach a managed policy] ***********************************
changed: [localhost] => (item={'name': 'aira', 'policy': 'arn:aws:iam::aws:policy/IAMFullAccess'})
さて、今私たちは1つ以上のユーザーとAiraIAMFullAccess
ポリシーを添付.確かめましょう! user_key:
# - { name: "{{ user1 }}" }
# - { name: "{{ user2 }}" }
# - { name: "{{ user3 }}" }
# - { name: "{{ user4 }}" }
- { name: "{{ user5 }}" }
$ ansible-playbook -i host.yml iam.yml -t iam_user_key_only
PLAY [iam] *************************************************************************
TASK [create user's key] ***********************************************************
changed: [localhost] => (item={'name': 'aira'})
$ cat key_list.txt | grep -A3 aira | grep -v Status
"UserName": "aira",
"AccessKeyId": "AKIAZ44MXOFLNSZ6RO3F",
"SecretAccessKey": "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"
--profile
デフォルトのユーザとして使用しない場合.$ aws configure --profile aira
AWS Access Key ID [None]: AKIAZ44MXOFLNSZ6RO3F
AWS Secret Access Key [None]: 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
Default region name [None]:
Default output format [None]:
$ cat ~/.aws/credentials | grep -A2 aira
[aira]
aws_access_key_id = AKIAZ44MXOFLNSZ6RO3F
aws_secret_access_key = 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
$ aws iam create-user --user-name test --profile aira | grep UserName
"UserName": "test",
$ aws iam delete-user --user-name test --profile aira
$ aws iam get-user --user-name test --profile aira
An error occurred (NoSuchEntity) when calling the GetUser operation: The user with name test cannot be found.
動く.あなたが見ることができるように我々は作成し、ユーザーを削除できます.それは第2部です.私はこのポストに対するあなたの愛に感謝します、そして、あなたが役に立つならば、共有してください.ありがとう.IAMユーザーグループのパート3に移動しましょう.
参照:https://docs.ansible.com/ansible/latest/collections/community/aws/iam_user_module.html
Reference
この問題について(を使用してAWSのIAMのユーザーを作成し、管理), 我々は、より多くの情報をここで見つけました https://dev.to/aws-builders/chapter-2-iam-user-58d6テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol