LoginSignup
2
0

More than 1 year has passed since last update.

外部ID付きでAWSのAssumeRole

Posted at

概要

外部ID(外部キー)付きでAssumeRoleをする機会があったので、メモです。

外部キーについて

AWS リソースへのアクセス権を第三者に付与するときに外部 ID を使用する方法 - AWS Identity and Access Management

  • 外部IDはAccessKeyのペアなどと違い、機密情報として扱われないので注意。
  • 外部IDはランダムな文字列が良い
  • 外部IDは該当のロールの「信頼関係」で確認できます。
  • 外部IDは「混乱した代理」問題を防ぐためにある
  • 外部IDは「CLI」もしくは「API」で利用する
    • Management Consoleからはできないので注意

CLIでのassume-roleのやり方

今回は外部IDがある時の話なので、--external-idオプションをつけます

aws sts assume-role --role-arn <引き受けたいロールのARN> --role-session-name <セッション名(なんでもいい)> --external-id <外部ID>

これを許可されたアカウントのIAM Userで叩くと、以下の情報が返ってきます

  • AccessKeyId
  • SecretAccessKey
  • SessionToken

以下のように環境変数に設定することで、引き受けたロールでcliを操作できるようになります。

export AWS_ACCESS_KEY_ID=RoleAccessKeyID
export AWS_SECRET_ACCESS_KEY=RoleSecretKey
export AWS_SESSION_TOKEN=RoleSessionToken

引き受けたことの確認

aws sts get-caller-identity

元のIAMユーザーに戻す

環境変数を削除する

unset AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN

詳しくはこちら

AWS CLI を使用して IAM ロールを引き受ける

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0