http://jawsug-cli.doorkeeper.jp/events/14646 でのハンズオン資料です。
このハンズオンでは、AWSの管理者として、ユーザベース(IAM)のポリシードキュメントを作成して、IAMグループに適用する作業を行います。
IAMのハンズオンについては、下記も参考にしてください。
- [管理者] IAMの全体設定 (Account Alias、パスワードポリシー)
http://qiita.com/tcsh/items/912f8060d221cf12a9fb - [管理者] IAMグループとIAMユーザの作成
http://qiita.com/tcsh/items/ce2e83430905587806a7 - [一般ユーザ] IAMユーザの認証情報管理
http://qiita.com/tcsh/items/1200b84de8b708cb3a3f - [管理者] IAMグループとIAMユーザの削除
http://qiita.com/tcsh/items/3cd4d8dac52b4ba5c30a
前提条件
- IAMへのフルアクセス権限
- ポリシードキュメントの作成
==============================
グループポリシーは、IAMポリシードキュメントの仕様に従って、JSON形式で記述します。
グループポリシーの設定は、適用対象となるIAMグループとJSONファイルを指定して行います。
$ IAM_GROUP_FILE=group-policy.json
(ポリシージェネレータで生成したものを貼り付けます。)
[注意] ブラケット({}や[])のインデント位置が開きと閉じで同じでない場合、下記のエラーが出るようです。
A client error (MalformedPolicyDocument) occurred when calling the PutGroupPolicy operation: The policy is not in the valid JSON format.
JSONファイルを作成したら、フォーマットが壊れてないか必ず確認します。
$ cat ${IAM_GROUP_FILE} | json_verify
JSON is valid
json_verifyでエラーが出たときはjsonlintでチェックします。
$ cat ${IAM_GROUP_FILE} | jsonlint
- IAMグループの作成
===================
ポリシーを適用するIAMグループを作成します。
2.1. IAMグループの作成
グループ名を決定します。
$ IAM_GROUP_NAME=operators
グループを作成します。
$ aws iam create-group --group-name ${IAM_GROUP_NAME}
{
"Group": {
"Path": "/",
"CreateDate": "2014-09-07T08:52:09.308Z",
"GroupId": "AGPAI5KIHK7xxxxxxxxxx",
"Arn": "arn:aws:iam::XXXXXXXXXXXX:group/operators",
"GroupName": "operators"
}
}
2.2. IAMグループの一覧
作成したグループが存在することを確認します。
$ aws iam list-groups
{
"Groups": [
{
"Path": "/",
"CreateDate": "2014-09-07T08:52:09Z",
"GroupId": "AGPAI5KIHK7xxxxxxxxxx",
"Arn": "arn:aws:iam::XXXXXXXXXXXX:group/operators",
"GroupName": "operators"
},
{
"Path": "/",
"CreateDate": "2014-09-07T03:37:40Z",
"GroupId": "AGPAJYZGCT6xxxxxxxxxx",
"Arn": "arn:aws:iam::XXXXXXXXXXXX:group/admin",
"GroupName": "admin"
}
]
}
JSON形式では見辛いので、table形式でグループ名だけを表示してみましょう。
$ aws iam list-groups --query 'Groups[].GroupName' --output table
---------------
| ListGroups |
+-------------+
| operators |
| admin |
+-------------+
2.3. IAMグループの詳細確認
get系コマンドでは、その対象の詳細情報を確認することができます。
$ aws iam get-group --group-name ${IAM_GROUP_NAME}
{
"Group": {
"Path": "/",
"CreateDate": "2014-09-07T08:52:09Z",
"GroupId": "AGPAI5KIHK7xxxxxxxxxx",
"Arn": "arn:aws:iam::XXXXXXXXXXXX:group/operators",
"GroupName": "operators"
},
"Users": []
}
2.4. グループポリシーが未適用(初期状態)であることを確認
IAMグループは、作成直後はグループポリシーが空になっています。
(何の権限も持ちません。)
$ aws iam list-group-policies --group-name ${IAM_GROUP_NAME}
{
"PolicyNames": []
}
2.5. グループポリシーの適用
$ aws iam put-group-policy --group-name ${IAM_GROUP_NAME} --policy-name "${IAM_GROUP_NAME}" --policy-document file://${IAM_GROUP_FILE}
(戻り値なし)
2.6. グループポリシーの一覧
グループにポリシーが適用されたことを確認しましょう。
$ aws iam list-group-policies --group-name ${IAM_GROUP_NAME}
2.7. グループポリシーの詳細確認
get系コマンドでは、その対象の詳細情報を確認することができます。
$ aws iam get-group-policy --group-name ${IAM_GROUP_NAME} --policy-name ${IAM_GROUP_NAME}
以上で、IAMグループの作成と設定は完了です。
IAMユーザの作成、IAMグループへのIAMユーザの追加については、
http://qiita.com/tcsh/items/ce2e83430905587806a7
を参考にしてください。