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

Container Service for Kubernetes:パスワードレスコンポーネントを使用したクロスアカウントのイメージのプル

最終更新日:Aug 29, 2026

Alibaba Cloud のマルチアカウント環境では、Container Service for Kubernetes (ACK) クラスターと Container Registry (ACR) Enterprise Edition インスタンスが、事業部門ごとに異なるアカウントで管理されていることがあります。 ACK クラスターが ACR Enterprise Edition インスタンスからコンテナイメージをプルしてワークロードをデプロイできるようにするには、ネットワーク接続を確保し、必要なクロスアカウント権限を付与する必要があります。 このトピックでは、aliyun-acr-credential-helper パスワードレス コンポーネントを使用して、クロスアカウントでイメージをプルする方法について説明します。

意思決定ガイド

最初に、ネットワーク接続方式とアカウントの権限付与方式を選択します。次に、選択した方式をサポートする認証情報不要コンポーネントを選択します。

詳細な手順については、「ネットワーク接続の設定」および「アカウントの権限付与と認証情報不要コンポーネントの設定」の手順に従い、その後「クロスアカウントのイメージプルの検証」を実行してください。
image
説明

このトピックにおけるクロスアカウントアクセスは、Alibaba Cloud アカウント (ルートアカウント) 間のアクセスを指し、RAM ユーザー (サブアカウント) 間のアクセスは指しません。

前提条件

  • パスワードレスコンポーネントが使用する RAM ロールに、必要な権限 が付与されていること。

  • ACK クラスターがパスワードレスコンポーネントをサポートしていること。

    • aliyun-acr-credential-helper (マネージド)

      バージョン 1.22 以降の ACK マネージドクラスターACK サーバーレスクラスター、または ACK Edge クラスター

    • aliyun-acr-credential-helper (セルフマネージド)

      バージョン 1.20 以降の ACK マネージドクラスター または ACK 専用クラスター

  • コンテナレジストリ (ACR) インスタンスは、エンタープライズ版である必要があります。

    重要
    • パスワードレスコンポーネントは、ACR Enterprise Edition インスタンスと、2024 年 9 月 8 日以前に作成された ACR Personal Edition インスタンスのみをサポートします。パスワードレスコンポーネントを使用できない場合は、「imagePullSecrets の使用方法」をご参照ください。

手順

ステップ 1:ネットワーク接続の設定

クロスアカウントでイメージをプルする場合、イメージをプルする ACK クラスターとイメージをホストする ACR Enterprise Edition インスタンスは、それぞれ異なるアカウントの VPC 内にあり、リージョンも異なる場合があります。イメージをプルする前に、ネットワーク接続を確立し、関連するドメイン名が解決できることを確認する必要があります。次のいずれかの方法を使用できます。

  • パブリック接続: ACR Enterprise Edition インスタンスにパブリックエンドポイントを設定し、ACK クラスターのパブリックネットワークアクセスを有効にします。イメージはパブリックインターネット経由で転送されます。この方法はセキュリティが低く、Elastic IP アドレスとアウトバウンドトラフィックの両方にコストが発生します。

  • VPC ピアリング接続: VPC ピアリング接続を使用して 2 つの VPC を接続し、ACK クラスターが ACR Enterprise Edition インスタンスにアクセスできるようにします。この機能は、VPC が同じリージョンにある場合は無料ですが、異なるリージョンにある場合は課金されます。この方法では、2 つの VPC に重複しない CIDR ブロックが必要です。すでに使用されている CIDR ブロックに大幅な重複がある場合は、既存のネットワークアーキテクチャの再設計が必要になる場合があります。

  • Cloud Enterprise Network (CEN) 接続: 1 つの CEN インスタンスには、1 つ以上のトランジットルーターを含めることができます。複数のトランジットルーターは、クロスリージョン接続を介して相互接続することで、異なるリージョンおよびアカウントにまたがる VPC 間の通信を実現できます。

VPC ピアリング接続と CEN の比較については、「Cloud Enterprise Network と VPC Peering Connection の違いは何ですか?」をご参照ください。

比較項目

パブリック接続

VPC ピアリング接続

Cloud Enterprise Network (CEN)

ネットワークタイプ

パブリック

プライベート

プライベート

課金

Elastic IP アドレスの課金方法に基づいて料金が発生します。

  • ACK クラスターと ACR Enterprise Edition インスタンスの VPC が同じリージョンにある場合、料金は発生しません。

  • VPC が異なるリージョンにある場合、Cloud Data Transfer (CDT) によってアウトバウンドトラフィックに課金されます。

CEN の課金ルールに基づいて料金が発生します。

主な特徴

既存のネットワークアーキテクチャを変更する必要はありません。セキュリティのために、インバウンドルールとアウトバウンドルール、およびアクセス制御ポリシーを設定する必要があります。

  • イメージはプライベートネットワーク経由で転送されるため、セキュリティが向上します。 VPC が同じリージョンにある場合、料金は発生しません。

  • この方法では、2 つの VPC に重複しない CIDR ブロックが必要です。 すでに使用されている CIDR ブロックに大幅な重複がある場合は、既存のネットワークアーキテクチャの再設計が必要になる場合があります。

  • イメージはプライベートネットワーク経由で転送されるため、セキュリティが向上します。

  • CEN は、高いセキュリティ要件が求められるエンタープライズ本番環境向けに設計されています。

設定手順

  1. ACR インスタンスのパブリックエンドポイントを設定

    パブリックアクセス制御ポリシーを設定して、ACR Enterprise Edition インスタンスをリモートで安全に管理およびアクセスします。
  2. ACK クラスターのパブリックネットワークアクセスを有効化

    ACK クラスターのパブリックネットワークアクセスを設定し、ACR Enterprise Edition インスタンスからイメージをプルできるようにします。
  1. ACR インスタンスのプライベートドメイン名の名前解決を有効化

    ACR Enterprise Edition インスタンスを VPC に接続した後、プライベートドメイン名を使用して VPC 内からインスタンスにアクセスできます。設定後、 VPC ID と ACR Enterprise Edition インスタンスのプライベート IP アドレスを取得します。
  2. ACR インスタンスのドメイン名と IP アドレスを取得

    ACR Enterprise Edition インスタンスへのアクセスに使用する認証サービスのドメイン名と IP アドレス、および関連する OSS バケットのドメイン名と IP アドレスを取得します。
  3. VPC ピアリング接続を作成し、ルートテーブルを設定

    ACK クラスターと ACR Enterprise Edition インスタンスの VPC 間でプライベート通信を有効にするには、VPC ピアリング接続の両端で、ピア VPC へのルートエントリを追加する必要があります。 ACK クラスター側の VPC ピアリング接続では、認証サービスの IP アドレスと関連する OSS バケットの IP アドレスのルートエントリも設定する必要があります。
  4. ACK クラスターの ACR インスタンスのドメイン名を解決

    プライベート DNS レコードの追加ノードプールのカスタムデータスクリプトなどの方法で、 /etc/hosts ファイルを一括変更します。これにより、ACR インスタンスのドメイン名がプライベート IP アドレスに解決され、 ACK クラスターは設定されたルートエントリを介して ACR インスタンスの VPC にトラフィックを転送できるようになります。
  1. ACR インスタンスのプライベートドメイン名の名前解決を有効化

    ACR Enterprise Edition インスタンスを VPC に接続した後、プライベートドメイン名を使用して VPC 内からインスタンスにアクセスできます。設定後、 VPC ID と ACR Enterprise Edition インスタンスのプライベート IP アドレスを取得します。
  2. ACR インスタンスのドメイン名と IP アドレスを取得

    ACR Enterprise Edition インスタンスへのアクセスに使用する認証サービスのドメイン名と IP アドレス、および関連する OSS バケットのドメイン名と IP アドレスを取得します。
  3. CEN を使用してクロスアカウント VPC 通信を設定

    ACR Enterprise Edition インスタンスの VPC をそのリージョンのトランジットルーターに接続します。 ACK クラスターの VPC をそのリージョンのトランジットルーターに接続します。次に、クロスリージョン接続を使用して、2 つのトランジットルーター間の通信を有効にします。
  4. VPC とトランジットルーターのルートテーブルを設定

    ACK クラスターの VPC とトランジットルーターのルートテーブルでは、認証サービスの IP アドレスと関連する OSS バケットの IP アドレスのルートエントリも設定する必要があります。
  5. ACK クラスターの ACR インスタンスのドメイン名を解決

    プライベート DNS レコードの追加ノードプールのカスタムデータスクリプトなどの方法で、 /etc/hosts ファイルを一括変更します。このステップにより、 ACK クラスターで ACR インスタンスのドメイン名がプライベート IP アドレスに解決され、 CEN ルートエントリを介して ACR インスタンスの VPC にトラフィックを転送できるようになります。

手順2:権限付与とパスワードレスコンポーネントの設定

以下の 3 つの権限付与方法を使用すると、静的認証情報を使用せずにクロスアカウントでイメージをプルできます。要件に最も適した方法を選択してください。

比較項目

RRSA

Worker RAM ロール

RAM ユーザーの AccessKey

クラスタータイプ

v1.22 以降の ACK Basic クラスターACK Pro クラスターACK Edge クラスター、および ACK Serverless Pro クラスターをサポートします。

v1.20 以降の ACK Basic クラスターACK Pro クラスター、および ACK dedicated クラスターをサポートします。

v1.20 以降の ACK Basic クラスターACK Pro クラスター、および ACK dedicated クラスターをサポートします。

サポートされるコンポーネント

  • aliyun-acr-credential-helper マネージドコンポーネント

  • aliyun-acr-credential-helper コンポーネント

    v23.02.06.1-74e2172-aliyun 以降にアップグレードする必要があります。

これらのコンポーネントの違いに関する詳細については、「パスワードレスコンポーネントの比較」をご参照ください。

aliyun-acr-credential-helper コンポーネント

aliyun-acr-credential-helper コンポーネント

権限の粒度

Pod レベル (きめ細かい)

クラスターレベル (中程度の粒度)

アカウントレベル (粗い粒度)

セキュリティ

高。この方法は、きめ細かい権限管理と分離を提供します。Security Token Service (STS) からの一時的な認証情報を使用し、AccessKey ペアのハードコーディングを回避します。

中。すべての Pod が同じ権限を共有するため、過剰な権限につながる可能性があります。

低。AccessKey ペアが漏洩するリスクが高いです。

適用シナリオ

厳格な権限管理を必要とする、セキュリティに敏感なサービスや本番環境に適しています。

権限要件が均一なシナリオ、たとえば中程度の権限管理が必要な開発環境やテスト環境に適しています。

迅速なデプロイやデモ環境に適しています。

RRSA

アカウント A の Container Service for Kubernetes (ACK) クラスターで、特定の ServiceAccount が アカウント B の RAM ロールを引き受けるように設定します。この RAM ロールには必要な権限が付与されており、ACK クラスターは静的認証情報を使用せずに アカウント B の ACR インスタンスからプライベートイメージをプルできます。

説明

パスワードレスコンポーネントで RAM Roles for Service Accounts (RRSA) 機能を有効にするには、まずクラスターで RRSA を有効にし、次にコンポーネントで RRSA を設定する必要があります。これらの手順を誤った順序で実行した場合、RRSA 機能を有効にするには、パスワードレスコンポーネントの Pod を削除する必要があります。

image
  1. アカウント A で、ACK クラスターの RRSA 機能を有効にし、ロールの引き受け権限を持つ RAM ロールを作成します。

    1. ACK クラスターの RRSA 機能を有効にします。

      1. ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。

      2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、[クラスター情報] をクリックします。

      3. [基本情報] タブの [セキュリティと監査] セクションで、[RRSA OIDC] の横にある [有効化] をクリックします。

      4. [RRSA の有効化] ダイアログボックスで、[確認] をクリックします。クラスターのステータスが [更新中] から [実行中] に変わるまで待ちます。これで RRSA が有効になりました。

      5. RRSA を有効にした後、[セキュリティと監査] セクションの [RRSA OIDC] の横にある [有効] ラベルにカーソルを合わせます。OIDC プロバイダーの URL と Alibaba Cloud リソースネーム (ARN) が表示されます。

    2. OIDC ID プロバイダー用の RAM ロールを作成し、その信頼ポリシーを以下の内容で更新します。

      • <oidc_issuer_url> を、前の手順で取得した OIDC プロバイダーの URL に置き換えます。

      • <oidc_provider_arn> を、前の手順で取得した OIDC プロバイダーの ARN に置き換えます。

      {
        "Statement": [
          {
            "Action": "sts:AssumeRole",
            "Condition": {
              "StringEquals": {
                "oidc:aud": "sts.aliyuncs.com",
                "oidc:iss": "<oidc_issuer_url>",
                "oidc:sub": "system:serviceaccount:kube-system:aliyun-acr-credential-helper"
              }
            },
            "Effect": "Allow",
            "Principal": {
              "Federated": [
                "<oidc_provider_arn>"
              ]
            }
          }
        ],
        "Version": "1"
      }
    3. AliyunSTSAssumeRoleAccess 権限ポリシーをロールにアタッチしてロールの引き受け権限を付与し、その ARN を記録します。詳細については、「RAM ロールの権限管理」をご参照ください。

      1. ロールの詳細ページの 権限付与 タブで、新規権限 をクリックします。

      2. 新規権限 パネルの ポリシー で、[AliyunSTSAssumeRoleAccess] ポリシーを見つけて選択し、権限を付与 をクリックします。

      3. ロールの詳細ページの 基本情報 セクションで、RAM ロールの ARN を表示して記録します。詳細な手順については、「RAM ロールの ARN を表示する方法」をご参照ください。

  2. アカウント B で、プライベートイメージをプルする権限を持つ RAM ロールを作成し、アカウント A の RAM ロールが引き受けられるように設定します。

    1. 信頼できる Alibaba Cloud アカウント用の RAM ロールを作成します。信頼ポリシーを以下のスクリプトで編集し、アカウント A のロールによる引き受けを許可します。

      {
        "Statement": [
          {
            "Action": "sts:AssumeRole",
            "Effect": "Allow",
            "Principal": {
              "RAM": [
                "<アカウント A で作成したロールの ARN>"
              ]
            }
          }
        ],
        "Version": "1"
      }
    2. 以下の内容でカスタム権限ポリシーを作成し、それを RAM ロールにアタッチして、インスタンス情報の取得とイメージのプル権限を付与します。

      {
          "Version": "1",
          "Statement": [
              {
                  "Action": [
                      "cr:GetAuthorizationToken",
                      "cr:ListInstanceEndpoint",
                      "cr:PullRepository"
                  ],
                  "Resource": "*",
                  "Effect": "Allow"
              }
          ]
      }
    3. RAM ロールの最大セッション期間を設定します。値は 3,600〜43,200 秒の範囲で設定します。デフォルトは 3,600 秒です。

      この値が、後述するコンポーネント設定の expireDuration パラメーターと一致することを確認してください。expireDuration の値は、最大セッション期間を超えることはできません。
    4. ロールの詳細ページの 基本情報 セクションで、RAM ロールの ARN を表示して記録します。

  3. アカウント A で、ACK クラスターにパスワードレスコンポーネントをインストールし、その設定を変更します。

    以下のコンポーネントの違いに関する詳細については、「パスワードレスコンポーネントの比較」をご参照ください。

    マネージドコンポーネント

    1. ACK コンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。

    2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、[操作] > [アドオン] を選択します。

    3. アドオン管理 ページで、セキュリティ タブをクリックし、aliyun-acr-credential-helper (マネージド) カードを見つけて、インストール をクリックします

    4. [aliyun-acr-credential-helper のパラメーター設定] ダイアログボックスで、[RRSA の有効化] を選択します。次に、追加 をクリックし、以下のパラメーターを入力して OK をクリックします。

      ACR Enterprise Edition インスタンスの設定:

      パラメーター

      説明

      instanceId

      ACR インスタンスの ID。複数の ID を指定するには、コンマ (,) で区切ります。

      cri-XXXXX

      regionId

      ACR インスタンスのリージョン ID。

      cn-hangzhou

      domains

      ACR インスタンスへのアクセスに使用されるドメイン名。ACR インスタンスのすべてのアクセスドメイン名 (パブリックおよび VPC) を入力します。特定のドメイン名を指定するには、コンマ (,) で区切ります。

      XXXXX-registry.cn-hangzhou.cr.aliyuncs.com

      assumeRoleARN

      アカウント B で作成した RAM ロールの ARN。

      acs:ram::100XXXXXXXX9630:role/XXXX

      expireDuration

      クロスアカウントアクセス用の一時的な認証情報の有効期間。アカウント B で作成した RAM ロールの最大セッション期間を入力します。

      3600

      rrsaRoleARN

      アカウント A で作成した RAM ロールの ARN。

      acs:ram::128XXXXXXXXXX09011:role/XXXX

      rrsaOIDCProviderRoleARN

      ACK クラスターのプロバイダー ARN。アカウント A の ACK クラスターの RRSA OIDC ID プロバイダーの プロバイダー ARN を入力します。

      acs:ram::128XXXXXXXXXX09011:oidc-provider/ack-rrsa-c8864XXXXXXXXXXXXXXXXXX99356a636

      その他のパラメーターについては、「コンポーネント設定」をご参照ください。

    aliyun-acr-credential-helper

    1. ACK コンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。

    2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、[操作] > [アドオン] を選択します。

    3. アドオン管理 ページの セキュリティ タブで、[aliyun-acr-credential-helper] コンポーネントを見つけ、インストール をクリックします。表示されるダイアログボックスで、[tokenMode] オプションを [auto] に設定し、OK をクリックします。

    4. パスワードレスコンポーネントの ConfigMap を変更します。

      1. 左側メニューで、設定 > ConfigMap を選択します。

      2. ConfigMap ページで、[名前空間] ドロップダウンリストから [名前空間] を選択します。次に、[acr-configuration] を見つけ、YAML の編集 列の [YAML の編集] をクリックします。

        data:
          service-account: "default"
          watch-namespace: "all"
          expiring-threshold: "15m"
          notify-email: "c*@example.com"
          acr-registry-info: |
            - instanceId: "cri-xxx"                                   # ACR インスタンス ID。
              regionId: "cn-hangzhou"                                 # ACR インスタンスのリージョン ID。
              domains: "xxxxx-registry.cn-hangzhou.cr.aliyuncs.com"   # ACR インスタンスのアクセスドメイン名。
              rrsaRoleARN: "<アカウント A で作成したロールの ARN>"
              rrsaOIDCProviderRoleARN: "<アカウント A の ACK コンソールのクラスター基本情報ページにある OIDC プロバイダーの ARN>"
              assumeRoleARN: "<アカウント B で作成したロールの ARN>"
              expireDuration: 3600                                    # アカウント B の RAM ロールの最大セッション期間。デフォルト:3600。             
          rrsa: |
            enable: true                                              # パスワードレスコンポーネントの RRSA 機能を有効にします。

Worker RAM ロール

アカウント A の ACK クラスターで、クラスターのデフォルトの Worker RAM ロールが、イメージをプルする権限を持つ アカウント B の RAM ロールを引き受けるように設定します。これにより、ACK クラスターは アカウント B のプライベートイメージにアクセスしてプルできるようになります。

image
  1. アカウント A で、クラスターの Worker RAM ロールを表示し、ロールの引き受け権限を付与します。

    1. ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。

    2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、[クラスター情報] をクリックします。

    3. クラスター情報 ページの 基本情報 タブをクリックします。クラスターリソース セクションで、[Worker RAM ロール]の右側にあるリンクをクリックします。

    4. AliyunSTSAssumeRoleAccess 権限ポリシーをロールにアタッチしてロールの引き受け権限を付与し、その ARN を記録します。詳細については、「RAM ロールの権限管理」をご参照ください。

      1. ロールの詳細ページの 権限付与 タブで、新規権限 をクリックします。

      2. 新規権限 パネルの ポリシー で、[AliyunSTSAssumeRoleAccess] ポリシーを見つけて選択し、権限を付与 をクリックします。

      3. ロールの詳細ページの 基本情報 セクションで、RAM ロールの ARN を表示して記録します。詳細な手順については、「RAM ロールの ARN を表示する方法」をご参照ください。

  2. アカウント B で、プライベートイメージをプルする権限を持つ RAM ロールを作成し、アカウント A の ACK クラスターの Worker RAM ロールが引き受けられるように設定します。

    1. 信頼できる Alibaba Cloud アカウント用の RAM ロールを作成します。

    2. 以下の内容でカスタム権限ポリシーを作成し、それを RAM ロールにアタッチして、インスタンス情報の取得とイメージのプル権限を付与します。

      {
          "Version": "1",
          "Statement": [
              {
                  "Action": [
                      "cr:GetAuthorizationToken",
                      "cr:ListInstanceEndpoint",
                      "cr:PullRepository"
                  ],
                  "Resource": "*",
                  "Effect": "Allow"
              }
          ]
      }
    3. RAM ロールの詳細ページで、トラスト規則 タブをクリックし、[編集トラスト規則]。これにより、アカウント A の ACK クラスターの Worker RAM ロールが アカウント B の RAM ロールを引き受けることができます。

      {
        "Statement": [
          {
            "Action": "sts:AssumeRole",
            "Effect": "Allow",
            "Principal": {
              "RAM": [
                "<アカウント A で作成したロールの ARN>"
              ]
            }
          }
        ],
        "Version": "1"
      }
    4. ロールの詳細ページの 基本情報 セクションで、RAM ロールの ARN を表示して記録します。詳細な手順については、「RAM ロールの ARN を表示する方法」をご参照ください。

  3. アカウント A で、ACK クラスターにパスワードレスコンポーネントをインストールし、その設定を変更します。

    1. ACK コンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。

    2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、[操作] > [アドオン] を選択します。

    3. アドオン管理 ページの セキュリティ タブで、[aliyun-acr-credential-helper] コンポーネントを見つけ、インストール をクリックします。表示されるダイアログボックスで、[tokenMode] オプションを [workerRole] に設定し、OK をクリックします。

    4. パスワードレスコンポーネントの ConfigMap を変更します。

      1. 左側メニューで、設定 > ConfigMap を選択します。

      2. ConfigMap ページで、[名前空間] ドロップダウンリストから [名前空間] を選択します。次に、[acr-configuration] を見つけ、YAML の編集 列の [YAML の編集] をクリックします。

        data:
            service-account: "default"
            watch-namespace: "all"
            expiring-threshold: "15m"
            notify-email: "c*@example.com"
            acr-registry-info: |
              - instanceId: "cri-xxx"                                    # ACR Enterprise Edition インスタンス ID。
                regionId: "cn-hangzhou"                                  # ACR Enterprise Edition のリージョン ID。
                domains: "xxxxx-registry.cn-hangzhou.cr.aliyuncs.com"    # ACR Enterprise Edition のアクセスドメイン名。
                assumeRoleARN: "<アカウント B で作成したロールの ARN>"
                expireDuration: 3600                                     # アカウント B の RAM ロールの最大セッション期間。デフォルト:3600。

RAM ユーザーの AccessKey

アカウント A の ACK クラスターで、パスワードレスコンポーネントが アカウント B の RAM ユーザーの AccessKey ID (AK) と AccessKey Secret (SK) を保存し、アカウント B からプライベートイメージをプルします。この方法は設定が簡単ですが、AccessKey ペアがプレーンテキストで保存されるため、セキュリティ上のリスクがあります。

  1. アカウント B で RAM ユーザーを作成し、そのユーザーが必要な [cr.*] 権限を持っていることを確認します。

    1. RAM ユーザーを作成します。

    2. 以下の内容でカスタム権限ポリシーを作成し、それを RAM ユーザーにアタッチして、インスタンス情報の取得とイメージのプル権限を付与します。

      {
          "Version": "1",
          "Statement": [
              {
                  "Action": [
                      "cr:GetAuthorizationToken",
                      "cr:ListInstanceEndpoint",
                      "cr:PullRepository"
                  ],
                  "Resource": "*",
                  "Effect": "Allow"
              }
          ]
      }
    3. AccessKey ペアを作成し、AccessKey IDAccessKey Secret を記録します。

  2. アカウント A で、ACK クラスターにパスワードレスコンポーネントをインストールし、その設定を変更します。

    1. ACK コンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。

    2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、[クラスター情報] をクリックします。

    3. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、[操作] > [アドオン] を選択します。

    4. アドオン管理 ページの セキュリティ タブで、[aliyun-acr-credential-helper] コンポーネントを見つけ、インストール をクリックします。表示されるダイアログボックスで、[tokenMode] オプションを [auto] に設定し、OK をクリックします。

    5. パスワードレスコンポーネントの ConfigMap を変更します。

      1. 左側メニューで、設定 > ConfigMap を選択します。

      2. ConfigMap ページで、[名前空間] ドロップダウンリストから [名前空間] を選択します。次に、[acr-configuration] を見つけ、YAML の編集 列の [YAML の編集] をクリックします。

      3. data:
            service-account: "default"
            watch-namespace: "all"
            expiring-threshold: "15m"
            notify-email: "c*@example.com"
            acr-registry-info: |
              - instanceId: ""                        # ACR Enterprise Edition インスタンス ID。この方法では通常、指定は不要です。             
                regionId: "cn-hangzhou"               # ACR Enterprise Edition のリージョン ID。    
                customAccessKey: "xxxxx"              # アカウント B の RAM ユーザーの AccessKey ID。
                customAccessKeySecret: "xxxxxx"       # アカウント B の RAM ユーザーの AccessKey Secret。

ステップ 3: アカウント間のイメージプルの検証

説明

この検証プロセスはデモンストレーション目的のみです。詳細な手順については、「イメージのビルド」および「ワークロードの作成」をご参照ください。

  1. アカウント B の ACR Enterprise Edition インスタンスで、必要に応じてコンテナイメージのインターネットまたはVPCアドレスを取得します。

    対象のイメージリポジトリの [基本情報] ページに移動します。エンドポイントアドレスは、ページの右側に表示されます。

  2. アカウント A 配下の ACK クラスターで、ワークロード > 展開 に移動し、コンテナイメージを使用してワークロードを作成します。

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx-deployment-basic
      labels:
        app: nginx
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: ******.cn-hangzhou.cr.aliyuncs.com/instance/instancetest:v1 # アカウント B の ACR イメージアドレスを指定します
            ports:
            - containerPort: 80
  3. イメージ "XXX" のプルに成功しました (XXX 秒)。(待機時間を含む XXX 秒)。イメージサイズ: XXX バイト。」というメッセージを含む Pod イベントは、パスワード不要のコンポーネントがアカウント間でイメージのプルに成功したことを示します。

    ワークロードの詳細ページの [Pods] タブで、Pod のステータスが [Running] であること、および[イメージ]列に test332-registry.cn-hangzhou.cr.aliyuncs.com/instance/test:v1 などのクロスアカウントのイメージリポジトリアドレスが表示されていることを確認します。

よくある質問

100.0.0.0/8 CIDR ブロックにおける IP 競合の解決

認証ドメインと OSS ドメインの IP アドレスは、100.0.0.0/8 の CIDR ブロックに解決されます。内部ネットワークもこの範囲を使用している場合、IP アドレスの競合が発生します。

認証ドメイン名の競合

インスタンスに認証ドメインを引き継がせることで、認証ドメインの競合を解決できます。これにより、インスタンスのドメイン名のみを使用してサービスにアクセスできます。

  1. Container Registryコンソールにログインします。

  2. 上部のナビゲーションバーで、リージョンを選択します。

  3. [インスタンス] ページで、管理するEnterprise Editionインスタンスをクリックします。

  4. インスタンス管理ページの左側のナビゲーションウィンドウで、リポジトリ > ドメイン を選択します。ドメイン ページで、認証ドメイン名をインスタンスに引き継ぐ スイッチをオンにします。

    重要

    認証ドメインのインスタンス引き継ぎ機能を使用するには、チケットを送信して、Enterprise Edition インスタンスを許可リストに追加する必要があります。

  5. 認証ドメイン名のインスタンスへの引き継ぎを有効にする ダイアログボックスでOK をクリックします。

OSS ドメイン名の競合

PrivateLink を使用してプライベートネットワーク経由で OSS リソースにアクセスし、CNAME レコードを使用して OSS ドメイン名を PrivateLink ドメイン名に向けることができます。