デフォルトでは、OSS リソースは所有者のみがアクセスできます。長期的な認証情報を共有することなく、他の Alibaba Cloud アカウントから自社の OSS リソースにアクセスさせるには、Resource Access Management (RAM) ロールを作成し、必要な OSS 権限を付与したうえで、当該アカウントの RAM ユーザーにそのロールを引き受けさせます。
シナリオ
本チュートリアルでは、以下の 2 つのアカウントを使用します:
会社 A — OSS リソースの所有者であり、RAM ロールを作成します。
会社 B — これらのリソースにアクセスする必要があり、ロールを引き受ける RAM ユーザーを提供します。
事前準備
開始する前に、以下の制約事項をご確認ください:
デフォルトでは、会社 A が RAM ロールを作成すると、会社 B のアカウント内のすべての RAM ユーザーおよび RAM ロールがそのロールを引き受けられます。特定のユーザーまたはロールのみにアクセスを制限するには、作成後に RAM ロールの信頼ポリシーを変更してください。詳細については、「例 1:RAM ロールの信頼できるエンティティを Alibaba Cloud アカウントに変更する」をご参照ください。
このチュートリアルで使用される AliyunOSSReadOnlyAccess ポリシーは、OSS リソースに対する読み取り専用の権限を付与します。特定のバケットまたはディレクトリへのアクセスを制限するには、代わりにカスタムポリシーを作成してください。詳細については、「RAM ポリシー」をご参照ください。
手順 1:会社 A が RAM ロールを作成し、OSS 権限を付与する
RAM コンソールに、会社 A のアカウントでログインします。
左側ナビゲーションウィンドウで、ID > ロール を選択します。
ロール ページで、ロールの作成 をクリックします。
ロールの作成 ページで、プリンシパルの種類 を クラウドアカウント に設定し、プリンシパル名 を 他社アカウント に指定したうえで、会社 B の Alibaba Cloud アカウント ID を入力し、OK をクリックします。
本例では、会社 B のアカウント ID は
17464958576******です。ロールの作成 ダイアログボックスで、ロール名 を入力し、OK をクリックします。
本例では、ロール名は
admin-ossです。ロール ページで、
admin-ossロールの 操作 列にある 権限の付与 をクリックします。権限の付与 パネルで、AliyunOSSReadOnlyAccess ポリシーを選択し、権限の付与 をクリックします。
手順 2:会社 B が RAM ユーザーを作成し、ロールの引き受け権限を付与する
RAM コンソールに、会社 B のアカウントでログインします。
左側ナビゲーションウィンドウで、ID > ユーザー を選択します。
ユーザー ページで、ユーザーの作成 をクリックします。
ユーザー アカウント情報 セクションで、ログイン名 および 表示名 を入力します。
アクセスモード セクションで、コンソールアクセス を選択し、ログインパスワードの設定、パスワードの再設定、多要素認証 (MFA) の有効化 を要件に応じて設定します。
注: [カスタムパスワードのリセット] を [ログオンパスワードの設定] に選択した場合、パスワードは複雑さ要件を満たす必要があります。詳細については、「RAM ユーザーのパスワードポリシーを設定する」をご参照ください。
OK をクリックします。
ユーザー ページで、作成した RAM ユーザーの 操作 列にある 権限の追加 をクリックします。
権限の付与 パネルで、ポリシー種別ドロップダウンリストから システムポリシー を選択し、AliyunSTSAssumeRoleAccess を選択して、権限の付与 をクリックします。
手順 3:会社 B の RAM ユーザーが RAM ロールを引き受ける
Company B の RAM ユーザーとして Alibaba Cloud 管理コンソールにログインします。詳細については、「Alibaba Cloud 管理コンソールに RAM ユーザーとしてログインする」をご参照ください。
右上隅のプロフィール画像にポインターを合わせ、アイデンティティの切り替え をクリックします。
ロールの切り替え ページで、以下の情報を入力し、送信 をクリックします:
項目 値 アカウントエイリアス/デフォルトドメイン名 会社 A のアカウントエイリアス、デフォルトドメイン名、または UID。本例では、デフォルトドメイン名 178810717******.onaliyun.comを使用しています。ロール名 admin-ossOSS コンソールにログインし、会社 A の OSS リソースにアクセスおよび管理します。
アクセスの確認
ロールを引き受けた後、クロスアカウントアクセスが正しく機能していることを確認します:
OSS コンソールで、会社 A のバケットが一覧表示されていることを確認します。
いずれかのバケットを開き、オブジェクトの一覧表示ができることを確認します。
バケットが表示されない場合、または権限エラーが発生した場合は、以下の点をご確認ください:
会社 A の RAM ロールに AliyunOSSReadOnlyAccess ポリシーがアタッチされていること(手順 1)。
会社 B の RAM ユーザーに AliyunSTSAssumeRoleAccess ポリシーがアタッチされていること(手順 2)。
ロールの切り替え ページで入力したアカウントエイリアス、デフォルトドメイン名、または UID およびロール名が正しいこと(手順 3)。
次のステップ
本チュートリアルでは簡易性を重視し、単一のシステムポリシーを使用しています。本番環境では、以下の点を検討してください:
ロールの引き受け対象を制限する:デフォルトでは、会社 B のアカウント内のすべての RAM ユーザーおよび RAM ロールが
admin-ossロールを引き受けることができます。信頼ポリシーを更新して、特定の RAM ユーザーのみにアクセスを制限してください。詳細については、「例 1:RAM ロールの信頼できるエンティティを Alibaba Cloud アカウントに変更する」をご参照ください。最小権限アクセスのためにカスタムポリシーを使用する: AliyunOSSReadOnlyAccess を、特定のバケットまたはディレクトリにのみアクセスを許可するカスタムポリシーに置き換えます。詳細については、「RAM ポリシー」をご参照ください。
代替アプローチ: RAM ロールではなくバケットレベルでアクセスを設定するには、チュートリアル: 別の Alibaba Cloud アカウント内の RAM ユーザーをバケットポリシーを追加して承認するをご参照ください。