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リソースをぶち壊す可能性を秘めている。