株式会社サーバーワークスでは一緒に働く仲間を募集しています
マネジメントコンソールでスイッチロールができることは、皆さまご存知と思います。
IAM Userにsts:AssumeRoleの権限を与えることで、IAM Roleの権限を引き受けることができます。
AWS CLIでも、もちろん同じことができます。
1. credentialsファイルの編集
ファイル「~/.aws/credentials」が無ければ作成し、以下のように記述(追記)する。
[default]
aws_access_key_id = AKIAXXXXXXXXXXXXXXXX
aws_secret_access_key = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
※自分のIAM Userのクレデンシャルを記載
2. configファイルの編集
ファイル「~/.aws/config」が無ければ作成し、以下のように記述(追記)する。
[profile tempsession]
role_arn = <引き受けるIAMロールのARNを記載>
source_profile = default
※tempsessionはプロファイル名であり任意
※source_profile = 以降の内容は、元となるプロファイル名(「~/.aws/credentials」に記述されているもの)なのでdefault以外を指定も可
3. CLI実行
AssumeRoleしてAWS CLIを実行したいときは以下のように–profileオプションをつけて実行する。
aws s3 ls s3://bucketname --profile tempsession
#もしくは
aws --profile tempsession s3 ls s3://bucketname
あるいは環境変数AWS_DEFAULT_PROFILEを設定すれば、毎回–profileオプションを設定しなくてもよい
export AWS_DEFAULT_PROFILE=tempsession
aws s3 ls s3://bucketname