すべてのプロダクト
Search
ドキュメントセンター

Serverless App Engine:アカウント間でAlibaba Cloudイメージをプルする

最終更新日:Sep 05, 2024

サーバーレスアプリエンジン (SAE) では、リソースアクセス管理 (RAM) の役割を引き受けることで、アカウント間でAlibaba Cloudイメージをプルできます。 たとえば、ユーザーAは、ユーザーBのプライベートイメージをプルするために必要な権限を持つRAMロールを引き受けることができます。このトピックでは、アカウント間でAlibaba Cloudイメージをプルする方法について説明します。

ステップ1: RAMロールの作成

ユーザーBのAlibaba Cloudアカウントを使用して、RAMロールを作成します。 RAMロールのロールタイプをAlibaba Cloudアカウントに設定し、信頼できるAlibaba CloudアカウントとしてユーザーAのAlibaba Cloudアカウントを指定します。

  1. にログインします。RAMコンソール管理者権限を持つRAMユーザーとして

  2. 左側のナビゲーションウィンドウで、アイデンティティ > ロール.

  3. On theロールページをクリックします。ロールの作成.

  4. On theロールの作成ページを選択します。Alibaba Cloudアカウント[ロールタイプの選択] セクションで、次へ.

  5. では、ロールの設定ステップを設定し、RAMロール名パラメータ、選択その他のAlibaba CloudアカウントユーザーAのAlibaba CloudアカウントIDを入力し、OK.

    説明

    Alibaba Cloudアカウントに属するすべてのRAMユーザーではなく、特定のRAMユーザーにRAMロールを引き受けたい場合は、次のいずれかの方法を使用できます。

  6. クリック閉じる.

ステップ2: RAMロールに権限を付与する

ステップ1で作成したRAMロールの権限ポリシーを設定して、ユーザーBのプライベートイメージをプルします。この例では、イメージ関連の権限が既存のポリシーに追加されます。 ポリシーの作成方法については、「カスタムポリシーの作成」をご参照ください。

  1. にログインします。RAMコンソールAlibaba Cloudアカウントを使用します。

  2. 左側のナビゲーションウィンドウで、権限 > ポリシー.

  3. On theポリシーページで、管理するポリシーを見つけ、その名前をクリックします。

  4. On theポリシードキュメントタブをクリックします。ポリシードキュメントの変更.

  5. On theビジュアルエディタまたはJSONタブで、ポリシーのドキュメントを変更し、ポリシー情報を編集する次に.

    重要

    RAMロールにContainer Registryに関連する権限があることを確認します。

    次のスクリプトは、必要な権限を示しています。

    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "cr:GetAuthorizationToken",
                    "cr:ListInstanceEndpoint",
                    "cr:PullRepository",
                    "cr:GetRepository",
                    "cr:ListRepositoryTag"
                ],
                "Resource": "*"
            }
        ]
    }
  6. の値を変更します。をクリックし、OK.

  7. 左側のナビゲーションウィンドウで、アイデンティティ > ロール.

  8. On theロールページで、管理するRAMロールを見つけて、をクリックします。権限付与で、アクション列を作成します。

    image

    複数のRAMロールを選択し、RAMロールリストの下部にある [権限の付与] をクリックして、一度に複数のRAMロールに権限を付与することもできます。

  9. では、権限付与パネルで、ビジネス要件に基づいてRAMロールに権限を付与し、OKをクリックし、完了.

手順3: RAMロールの信頼ポリシーを設定する

ユーザーB用に作成したRAMロールの信頼ポリシーを設定して、ユーザーAのSAEサービスアカウントがRAMロールを引き受けることを許可します。

  1. にログインします。RAMコンソール管理者権限を持つRAMユーザーとして

  2. 左側のナビゲーションウィンドウで、アイデンティティ > ロール.

  3. On theロールページで、作成したRAMロールの名前をクリックします。

  4. [信頼ポリシー] タブで、[信頼ポリシーの編集] をクリックします。 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を入力します。 詳細については、以下のトピックをご参照ください。