こんにちは!Tamaです!
今回はAWS CLIからのIAMユーザーの作成とポリシーの作成、アタッチを紹介します!
CLIの導入についてはこちらで紹介しております。[http://recipe.kc-cloud.jp/archives/3571]
ユーザーの作成
まずはIAMユーザーを発行します。
1 |
<pre class="lang:default decode:true " ># aws iam create-user --user-name [ユーザー名]</pre> |
このままではユーザーを使えないためアクセスキーを生成します。
1 |
# aws iam create-access-key --user-name [ユーザー名] |
AccessKeyIdとSecretAccessKeyを記録しておきます。
AccessKeyIdは後で確認することができますがSecretAccessKeyは確認できないので大切に保管しておきましょう。
アクセスキーは1ユーザーにつき2つまで保有できます。新たに発行するには削除する必要があります。
1 |
# aws iam delete-access-key --access-key-id [AccessKeyId] |
ポリシーの作成
次にユーザーに付与するポリシーを作成します。
JSON形式で記述したポリシーファイルを用意します。
今回はS3への全権アクセスポリシーを作成しました。
1 2 3 4 5 6 7 8 9 10 11 |
<pre class="lang:default decode:true " >policy.json { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:*", "Resource": "*" } ] }</pre> |
作成したjsonファイルをポリシーとして登録します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# aws iam create-policy --policy-name [ユーザー名] --policy-document file://policy.json { "Policy": { "PolicyName": "test-policy", "CreateDate": "2016-07-04T04:47:58.909Z", "AttachmentCount": 0, "IsAttachable": true, "PolicyId": "ANPAIXHJLRBZJ4P7OEMVQ", "DefaultVersionId": "v1", "Path": "/", "Arn": "arn:aws:iam::****:policy/test-policy", "UpdateDate": "2016-07-04T04:47:58.909Z" } } |
作成したポリシードキュメントを確認するにはget-policy
ではなくget-policy-versionで確認することができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# aws iam get-policy-version --policy-arn arn:aws:iam::****:policy/test-policy --version-id v1 { "PolicyVersion": { "CreateDate": "2016-07-04T04:47:58Z", "VersionId": "v1", "Document": { "Version": "2012-10-17", "Statement": [ { "Action": "s3:*", "Resource": "*", "Effect": "Allow" } ] }, "IsDefaultVersion": true } } |
ポリシーのアタッチ
作成したポリシーをユーザーにアタッチします。
1 |
# aws iam attach-user-policy --user-name [ユーザー名] --policy-arn arn:aws:iam::****:policy/test-policy |
作成したユーザーのプロファイルを登録してCLIからS3を覗いてみましょう。
1 2 3 4 5 |
# aws configure --profile test_user AWS Access Key ID [None]: AKIAJCCAF2MUSOLBINGA AWS Secret Access Key [None]: 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 Default region name [None]: ap-northeast-1 Default output format [None]: json |
まずはS3コマンド
1 2 |
# aws s3 ls s3:// --profile test_user 2016-01-21 02:10:20 test7056 |
EC2コマンドを試してみると・・
1 2 3 |
# aws ec2 describe-instances --profile test_user A client error (UnauthorizedOperation) occurred when calling the DescribeInstances operation: You are not authorized to perform this operation. |
ちゃんとS3だけ権限が付与されていることが分かります。
今回は以上になります!
お疲れさまでした!
今回はポリシーの作成から行いましたがユーザー固有のポリシーとして登録できるput-user-policyコマンドもあります。
他ユーザーでも使いそうなポリシーはcreate-policy、特定のバケットへの許可など1ユーザーのみ使用するポリシーはput-user-policyコマンド使うなど用途によって使い分けてみてはいかがでしょうか。
またお会いしましょう!