【AWS】AWSCLIでAssumeRoleするときの設定

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