サーバーレスアプリエンジン (SAE) では、リソースアクセス管理 (RAM) の役割を引き受けることで、アカウント間でAlibaba Cloudイメージをプルできます。 たとえば、ユーザーAは、ユーザーBのプライベートイメージをプルするために必要な権限を持つRAMロールを引き受けることができます。このトピックでは、アカウント間でAlibaba Cloudイメージをプルする方法について説明します。
ステップ1: RAMロールの作成
ユーザーBのAlibaba Cloudアカウントを使用して、RAMロールを作成します。 RAMロールのロールタイプをAlibaba Cloudアカウントに設定し、信頼できるAlibaba CloudアカウントとしてユーザーAのAlibaba Cloudアカウントを指定します。
にログインします。RAMコンソール管理者権限を持つRAMユーザーとして
左側のナビゲーションウィンドウで、 .
On theロールページをクリックします。ロールの作成.
On theロールの作成ページを選択します。Alibaba Cloudアカウント[ロールタイプの選択] セクションで、次へ.
では、ロールの設定ステップを設定し、RAMロール名と注パラメータ、選択その他のAlibaba CloudアカウントユーザーAのAlibaba CloudアカウントIDを入力し、OK.
説明Alibaba Cloudアカウントに属するすべてのRAMユーザーではなく、特定のRAMユーザーにRAMロールを引き受けたい場合は、次のいずれかの方法を使用できます。
RAMロールの信頼ポリシーを変更します。 詳細については、「例1: RAMロールの信頼できるエンティティをAlibaba Cloudアカウントに変更する」をご参照ください。
RAMユーザーにアタッチされているロール引き受けポリシーを変更します。 詳細については、「」をご参照ください。RAMユーザーが引き受けることができるRAMロールを指定できますか?
クリック閉じる.
ステップ2: RAMロールに権限を付与する
ステップ1で作成したRAMロールの権限ポリシーを設定して、ユーザーBのプライベートイメージをプルします。この例では、イメージ関連の権限が既存のポリシーに追加されます。 ポリシーの作成方法については、「カスタムポリシーの作成」をご参照ください。
にログインします。RAMコンソールAlibaba Cloudアカウントを使用します。
左側のナビゲーションウィンドウで、 .
On theポリシーページで、管理するポリシーを見つけ、その名前をクリックします。
On theポリシードキュメントタブをクリックします。ポリシードキュメントの変更.
On theビジュアルエディタまたはJSONタブで、ポリシーのドキュメントを変更し、ポリシー情報を編集する次に.
重要RAMロールにContainer Registryに関連する権限があることを確認します。
次のスクリプトは、必要な権限を示しています。
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "cr:GetAuthorizationToken", "cr:ListInstanceEndpoint", "cr:PullRepository", "cr:GetRepository", "cr:ListRepositoryTag" ], "Resource": "*" } ] }
の値を変更します。注をクリックし、OK.
左側のナビゲーションウィンドウで、 .
On theロールページで、管理するRAMロールを見つけて、をクリックします。権限付与で、アクション列を作成します。
複数のRAMロールを選択し、RAMロールリストの下部にある [権限の付与] をクリックして、一度に複数のRAMロールに権限を付与することもできます。
では、権限付与パネルで、ビジネス要件に基づいてRAMロールに権限を付与し、OKをクリックし、完了.
手順3: RAMロールの信頼ポリシーを設定する
ユーザーB用に作成したRAMロールの信頼ポリシーを設定して、ユーザーAのSAEサービスアカウントがRAMロールを引き受けることを許可します。
にログインします。RAMコンソール管理者権限を持つRAMユーザーとして
左側のナビゲーションウィンドウで、 .
On theロールページで、作成したRAMロールの名前をクリックします。
[信頼ポリシー] タブで、[信頼ポリシーの編集] をクリックします。
Principal
要素のRAM
フィールドをService
フィールドに変更し、[信頼ポリシードキュメントの保存] をクリックします。サンプルコード:
変更前
変更後
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "RAM": [ "acs:ram::123456789012****:root" ] } } ], "Version": "1" }
上記のポリシーは、IDが123456789012 **** のAlibaba CloudアカウントのすべてのRAMユーザーとRAMロールがRAMロールを引き受けることができることを示しています。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "123456789012****@sae.aliyuncs.com" ] } } ], "Version": "1" }
上記のポリシーは、IDが123456789012 **** @ sae.aliyuncs.comのSAEサービスアカウントがRAMロールを引き受けることができることを示しています。 サービスアカウントは、IDが123456789012 **** のAlibaba Cloudアカウントに属しています。
説明この例では、
[サービス]
フィールドで指定されたサービスを使用して、アカウント間で画像をプルします。
ステップ4: SAEアプリケーションのデプロイ
RAMコンソールにログインし、[基本情報] ページでRAMロールのARNをコピーします。 アプリケーションを作成またはデプロイするときに、別のAlibaba Cloudアカウントから取得したイメージを使用し、acrAssumeRoleArnパラメーターを設定します。 [イメージの設定] セクションで、[その他のAlibaba Cloudアカウントのプライベートイメージ] タブをクリックします。 acrAssumeRoleArnフィールドに、作成したRAMロールのARNを入力します。 詳細については、以下のトピックをご参照ください。