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

2017.03.22

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

こんにちは、臼田です。

先日作成したAssumeRoleを行うスクリプトをもう少し便利にしてみました。

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

更新内容

既存ではset_assume.shの引数としてarnを直接記述していました。

しかし、このarnは決まったパターンにAWSアカウントIDとroleを組み合わせているだけなので、それぞれを引数で取れるようになりました。

使用例を記載します。

変更前

$ source set_assume.sh -a arn:aws:iam::000000000000:role/targetrole -n swr-test

変更後

$ source set_assume.sh -i 0000-0000-0000 -r targetrole -n swr-test

わざわざarnを自分で作らなくていいので、少し使いやすくなっているかと思います。

また、AWSアカウントIDは、よく12桁の数字がハイフン区切りで4桁ずつ表記されることが多いですが、ハイフンありでもなしでも動作するようになっています。

例えば、私はマネジメントコンソールのロールの表示から、利用したいAWSアカウントIDとロールをコピーします。

switch_role_console_select

このような場合、特にハイフンありでも処理できると楽になります。

利用方法

既存のスクリプトではarnの引数とセッション名(任意の名前)が必須の引数でしたが、今回のスクリプトではarnの代わりにAWSアカウントID+ロール名を利用しても問題ありません。

下記のようにヘルプも更新しております。

This script can get and set AssumeRole Credentials.
usage: source set_assume.sh [option]
Options:
# '-i and -r' or '-a' is required
# e.g. -a = arn:aws:iam::-i:role/-r
-i: account id in arn
-r: assume role name in arn
-a: role-arn
-n: role-session-name (required)
-s: serial-number
-t: token-code

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

https://github.com/cm-usuda-keisuke/set_assume

さいごに

本当は、もう少し便利にしたいなーと思っています。

例えば、履歴からAssumeRoleするとかはほしいと感じていますが、それローカルに保持していいの?とかポリシ面を少し気にしているので、実装を渋っています。

いいアイデアをご存じの方がいらっしゃったら教えてください!