AWS Management Console上で、他アカウントのRoleにSwitchできるようになったみたいなので試してみました。
http://aws.amazon.com/releasenotes/4246484738368018
https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-usingrole-switchconsole.html
サンプルケース
アカウントAのユーザ(名:SwitchUser)が、アカウントBにあるRole(名:SwitchRole)を使って、アカウントBのリソースにアクセスするケースを想定。
手順
とっても簡単。
- アカウントBに、CrossAccountAccess用のRole(名:SwitchRole)を作成する
- アカウントAのユーザ(名:SwitchUser)に、AssumeRoleの権限を付与する
- アカウントAのユーザでロール切り替えの設定をする
- ロールの切り替え
1. CrossAccountAccess用のRole(名:SwitchRole)を作成する
Nameを決めて
Typeとして、Role for Cross-Account Access を選んで、
Provide access between AWS accounts your own を選択
アクセス元のAWSアカウントID(12桁の数値)を入力します
Roleの権限を設定します、今回はCloudWatchLogsのReadOnly権限をつけました。
最後にレビューして、Role作成です。
Role ARN でモザイクにしている部分にはアカウントBのAWSアカウントID、Trusted Entities でモザイクにしている部分にはアカウントBのAWSアカウントID、link でモザイクにしている部分には、アカウントBのエイリアス名が表示されています。
2. アカウントAのユーザ(名:SwitchUser)に、AssumeRoleの権限を付与する
SwitchUser(作成済)にPolicyを設定します。今回はUser Policyに設定しました。
Permissionは、先ほど作ったRoleのリソースに対して、STSのAssumeRoleアクションを許可します。
3. アカウントAのユーザでロール切り替えの設定をする
アカウントAにSwitchUserでログインして、Console右上のメニューからSwitch Roleを選択します。
すると、ロールの切り替え設定の画面に切り替わります。
さくっと進んで、アカウントBのアカウント(ここはアカウントIDでもエイリアスでもOKでした)とロール名を設定します。表示名はロール@アカウントで自動補完されます(便利!)。
また、RoleのSummaryから確認できる"Give this link to users who can switch roles in the console"のリンクをユーザに渡して、ログインした状態でアクセスしてもらうと、上記の画面に全て情報が入った状態で表示されます。(ロール切り替えの説明画面はスキップされます)
4. ロールの切り替え
ロールの切り替えボタンを押すと、アカウントBのRoleに切り替わりました!
画面右上に、先ほど設定したColorでロール@アカウントが表示されているのでクリックすると、今現在のアクティブアカウントやログイン元アカウントなどの情報が表示されます。
戻るときはBack to SwitchUserから戻れます。
戻ると、Role Historyが表示されていて、簡単に再度切り替えることができます!
まとめ
簡単に、他のアカウントへのリソースアクセスが可能なので、本番環境のログ閲覧Roleを作って公開するとか、メンテ用Role作って公開するとか、いろいろなケースで活用できそうです。
また、他アカウントだけでなく、自アカウントのRoleへも切り替えることができるので、ひとつのアカウントに環境が混在しており権限を分けたい時など便利に使えそうです。
最近はめっきりcliばっかりでしたが、AWS Management Consoleもどんどん使いやすくなっていい感じですね。