ユーザーロールでのクロスアカウントアクセスについて

皆さん、こんにちは。ソリューションアーキテクトの Q (@joe_qiubinbin)です。Alibaba Cloud上でシステムを構築される際に、複数アカウントのRAMユーザーの管理やアカウント間のアクセスなどの悩みがありますでしょうか。本日はResource Access Management(以下、RAM)のちょっとした便利な機能 、ユーザーロールでのクロスアカウントアクセスについて、ご紹介したいと思っています。

RAMロール

RAMロールには、ユーザーロールサービスロールがあります。それぞれの使い方は下記の通りになっております。

 ユーザーロール  このロールを割り当てることで、信頼済みの Alibaba Cloud アカウントのサブユーザーがクラウドリソースにアクセスできるようになります。割当対象アカウントとして現在の Alibaba Cloud アカウントと別のアカウントとも可能です。
 サービスロール  このロールを割り当てることで、信頼済みのクラウドサービスからクラウドリソースにアクセスできるようになります。
下記に示す通り、ユーザーロールを利用して、( ① )コンソールと( ② )Command Line Interfaceなどで他アカウントへアクセスすることが可能です。今回は①のコンソールから他アカウントへアクセスする方法をご紹介します。

前提条件

今回利用するアカウントとロールは下記の通りです。

●アカウントA(5450********6520) アカウントエリアス: sbcloud-ca23 RAMユーザー: qiu RAMユーザーの権限: AdministratorAccess

●アカウントB(5568********6773) アカウントエリアス: jobbin RAMロール: switchRoleSbc ロール権限: AliyunECSReadOnlyAccess

ユーザーロールの作成は、公式ドキュメント (ユーザーロールの作成)にてご確認ください。

コンソールから別アカウントへのアクセス

アカウントAからアカウントBへアクセスする際には、SwitchRoleという概念があります。

SwitchRole 実際のユーザーは、コンソールで SwitchRole 操作を実行することにより、現在のログイン ID からロール ID に切り替えることができます。コンソールにログインした後、信頼できるアクターとして自身が指定されているロールに切り替えることができます。これにより、ロール ID を使用して、クラウドリソースを操作できます。ロール ID に切り替えると、ユーザーの実際の ID のアクセス権限は使用できなくなります。ロールを使用する必要がなくなったら、そのロールから元のログイン ID に切り替えることができます。

ログイン手順

1: アカウントAにログイン後、下記のように、画面の右上にユーザーのアイコンがあります。 2: アイコンにマウスオーバーすると、アカウントの情報が表示されます。 3: 「スイッチID」をクリックし、「ロール変更」画面が表示されます。 4: アカウントBのエンタプライズ別名(アカウントIDもしくはエリアス名)とロール名(switchRoleSbc)を入力して、「変更」ボタンを押すと、アカウントBのコンソール画面が表示されます。 5: ロールswitchRoleSbcには、ECSの閲覧権限AliyunECSReadOnlyAccessを付与されていますので、ECSの管理画面にいくと、ECSの情報が表示されます。 その一方、ECSインスタンスの起動や作成など、権限が付与されていない操作をしようとすると、エラー画面が表示されます。

その他

ユーザーロールを利用すれば、別のアカウントへのアクセスが簡単にできますが、下記3つ注意点があります。 1: RootアカウントはSwitchRoleができません。実際にRootアカウントでログインした場合、アイコンにマウスオーバーしても、「スイッチID」のリンクが表示されません。 2: 多段SwitchRole(例: Account A → Account B → Account C)ができません。

最後

今回はコンソールから別のアカウントへログインする方法をご紹介させていただきました。複数アカウントを利用される際に、RAMユーザーの管理はややこしくなりがちですが、是非SwitchRoleの活用を一度検討してみてください。