[AWS] AWS CLI でスイッチロールする

AWSアカウントAにユーザを作成し、AWSアカウントBでスイッチロールすることで、AWSアカウントBにはユーザを作成する必要がありません。AWSのコンソール、CLI どちらでもスイッチロールすることができます。

AWSアカウントAにユーザを追加

AWSアカウントAにユーザを作成し、AWS CLIを利用できるように設定します。

AWSコンソールでスイッチロール

コンソールで SwitchRole の設定をします。

スイッチ元のAWSアカウントID(A)111122223333
スイッチ先のAWSアカウントID(B)999988887777
スイッチ先に設定する Role 名SwitchRoleAccountB
スイッチ先に設定する Profile 名production

AWS CLI のスイッチロール

~/.aws/config に設定を追加します。default は設定済みのため、profile production を追加します。
role_arn にはスイッチ先のARNを指定します。
source_profile はスイッチ元の Profile 名を指定します。

[default]
region = ap-northeast-1
output = json
[profile production]
role_arn = arn:aws:iam::999988887777:role/SwitchRoleAccountB
source_profile = default

aws configure list –profile production で assume-role となっていればOKです。

$ aws configure list --profile production
      Name                    Value             Type    Location
      ----                    -----             ----    --------
   profile               production           manual    --profile
access_key     ****************xxxx      assume-role
secret_key     ****************xxxx      assume-role
    region                <not set>             None    None

AWS CLI を利用する場合は、–profile production と Profile を指定すれば、スイッチロールされた権限で利用することが可能です。

AWSAWS,AWS CLI,AWS IAM

Posted by kidatti