AssumeRoleのスクリプトをもう少し便利にしました

2017.07.31

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、臼田です。

入社前にはこんなにAssumeRoleを使うとは思っていませんでした。

以前にAssumeRoleのためのスクリプトを下記で公開しましたが、更に更新しました。

AWSCLI(AWS SDK)のAssumeRoleでロールを切り替えるときに使えるスクリプトを作りました

AssumeRoleのスクリプトを少し便利にしました

変更点

スクリプトはこちらにあります。

主な変更点は2点あります。

  • AssumeRole設定後に、下記設定情報を出力する
    • aws sts get-caller-identity
    • aws configure list
  • デフォルトのRoleを定義することによりAssumeRole時のRoleを省略出来るようにした

順に見ていきます。

追加の出力情報

下記が追加で表示されます。

{
    "Account": "000000000000",
    "UserId": "SAMPLEXXXXXXXXXXXXXXX:targetname",
    "Arn": "arn:aws:sts::000000000000:assumed-role/targetrole/targetname"
}
      Name                    Value             Type    Location
      ----                    -----             ----    --------
   profile                <not set>             None    None
access_key     ****************XXXX              env
secret_key     ****************XXXX              env
    region           ap-northeast-1      config-file    ~/.aws/config

aws sts get-caller-identityでアカウント情報などが見やすく表示され、aws configure listでリージョンが確認できます。

※作業対象のリージョンの確認は重要です

Roleの省略

これまでだと、最低限のオプションで下記のようになっていました。

$ source ~/set_assume.sh -i 000000000000 -r your_role_name -n targetname

それが、今回の修正でもう少し短くすることができました。

$ source ~/set_assume.sh -i 000000000000 -n targetname

ただし、Roleを省略するためにデフォルトのRoleを環境変数として定義しておく必要があります。

$ echo "export AWS_SETSTS_DEFAULT_ROLE=your_role_name" >> ~/.bash_profile

これは、どのAWSアカウントに対しても同じRole名が利用されている前提ですが、条件が合えばより使いやすいと思います。

最後に

普段何度も行う事は常に簡単に素早く出来るようにしたいですよね。

引き続き、便利なスクリプトを作って業務効率化していきたいです。