技術雑記帳兼日記帳

AWS、Python、Terraformの使い方をコッソリ

AWS Certified Solutions Architect - Professional その1

今回は勉強のためにAssumeRoleを試してみました。

AWSアカウント(A)からのアカウント(B)に対して操作』を許可するケースを簡単にまとめてみました。

B側操作

・ロール作成で、AWSアカウントを選択し、許可したいAWSアカウントID(A)を指定する。
・アカウントIDを指定したら、許可したい操作をポリシー単位で選択する。

A側操作(今回はコンソール)

・下記のコマンドを実行する

aws sts assume-role \
--role-arn "arn:aws:iam::<B側のアカウントID>:role/<ロール名>" 
--role-session-name <sessionName>

こうすると、AccessKeyId、SecretAccessKey、SessionTokenが取得できるのでexportする。

export AWS_ACCESS_KEY_ID =  <assume-roleで取得したAccessKeyId>
export AWS_SECRET_ACCESS_KEY = <assume-roleで取得したSecretAccessKey>
export AWS_SESSION_TOKEN = <assume-roleで取得したSessionToken>

これでB側のアカウントの操作が可能になる。

まとめ

最小特権の原則(PoLP)に沿わないと簡単に他アカウントのAWSリソースをぶち壊す可能性を秘めている。