普通にユーザーを作ります。
その時に、以下ポリシーを作成し、ユーザーにアタッチします。
このポリシーはまさにAssumeRoleをすることのみができる権限です。
1 2 3 4 5 6 7 8 9 10 |
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "*" } ] } |
次にロールを作ります。
上記で作ったユーザーがこのロールにAssumeRoleすることになります。
そのため、操作に必要な権限はこのロールにアタッチします。
信頼されたエンティティに以下を設定します。上記のユーザーからのみの操作を信頼しているという意味になります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::195341589990:user/yuta" ] }, "Action": "sts:AssumeRole", "Condition": {} } ] } |
必要なポリシーをアタッチします。
この場合は、脳死でAdministartorを付けてしまってますが、限定できるならなるべくそのほうがいいと思います。
次はCLIの設定をしていきます。
~/.aws/credentialsに以下を書きます。
1 2 3 4 5 |
[vamdemic-yuta] aws_access_key_id = AKIAxxxxxxxxxxxxxxx aws_secret_access_key = 2Ixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx region = ap-northeast-1 output = json |
~/.aws/configの方に以下を書きます。
1 2 3 |
[profile vamdemic] role_arn = arn:aws:iam::195341589990:role/assume-role source_profile = vamdemic-yuta |
適当にCLIをたたいてみて帰ってくればOK。
profileで指定するのは、AssumeRole先のプロファイルを指定します。
あくまで指定したプロファイルでCLIを実行して、source_profileに指定しているユーザーから経由してくるというイメージだと思います。
1 |
aws s3 ls --profile vamdemic |