Tous les produits
Search
Centre de documentation

Container Registry:Pull images across accounts with the password-free component

Dernière mise à jour :Aug 28, 2026

Dans un environnement multi-comptes Alibaba Cloud, un cluster ACK et une instance ACR Enterprise Edition peuvent être gérés par des comptes différents appartenant à des unités commerciales distinctes. Pour permettre à un cluster ACK de tirer des images de conteneur depuis une instance ACR Enterprise Edition et de déployer des charges de travail, vous devez garantir la connectivité réseau et accorder les autorisations inter-comptes requises. Cette rubrique explique comment utiliser le composant sans mot de passe aliyun-acr-credential-helper pour tirer des images entre comptes.

Guide de décision

Commencez par sélectionner une méthode de connexion réseau et une méthode d'autorisation de compte. Ensuite, choisissez un composant sans identifiant qui prend en charge les méthodes sélectionnées.

Pour obtenir les étapes détaillées, suivez les instructions dans Configurer les connexions réseau et Configurer l'autorisation de compte et le composant sans identifiant , puis Vérifier le tirage d'images inter-comptes .
image
Remarque

Dans cette rubrique, l'accès inter-comptes fait référence à l'accès entre différents comptes Alibaba Cloud (comptes racine), et non entre utilisateurs RAM (sous-comptes).

Prérequis

  • Le rôle RAM utilisé par le composant sans mot de passe a reçu les autorisations requises.

  • Votre cluster ACK doit prendre en charge le composant sans mot de passe.

    • aliyun-acr-credential-helper (géré)

      Version 1.22 ou ultérieure des clusters ACK managés, des clusters ACK serverless ou des clusters ACK Edge

    • aliyun-acr-credential-helper (auto-géré)

      Version 1.20 ou ultérieure des clusters ACK managés ou des clusters ACK dédiés

  • L'instance Container Registry (ACR) doit être une instance Enterprise Edition.

    Important
    • Le composant sans mot de passe prend uniquement en charge les instances ACR Enterprise Edition et les instances ACR Personal Edition créées le 8 septembre 2024 ou avant cette date. Si vous ne pouvez pas utiliser le composant sans mot de passe, consultez la section Comment utiliser imagePullSecrets ?.

Procédure

Étape 1 : Configurer les connexions réseau

Lorsque vous tirez une image entre différents comptes, le cluster ACK qui tire l'image et l'instance ACR Enterprise Edition qui héberge l'image se trouvent dans des VPC distincts appartenant à des comptes différents. Ils peuvent également être situés dans des régions différentes. Avant de tirer l'image, vous devez établir la connectivité réseau et vous assurer que les noms de domaine pertinents peuvent être résolus. Vous pouvez utiliser l'une des méthodes suivantes :

  • Connexion publique : Configurez un endpoint public pour l'instance ACR Enterprise Edition et activez l'accès au réseau public pour le cluster ACK. L'image est transférée via Internet public. Cette méthode est moins sécurisée et engendre des coûts pour l'adresse IP élastique ainsi que pour le trafic sortant.

  • Appairage de VPC : Utilisez un appairage de VPC pour connecter les deux VPC, ce qui permet au cluster ACK d'accéder à l'instance ACR Enterprise Edition. Cette fonctionnalité est gratuite si les VPC se trouvent dans la même région, mais facturée s'ils sont dans des régions différentes. Cette méthode exige que les deux VPC aient des blocs CIDR non chevauchants. S'il existe un chevauchement important des blocs CIDR déjà utilisés, vous devrez peut-être repenser votre architecture réseau existante.

  • Connexion Cloud Enterprise Network (CEN) : Une instance CEN peut contenir un ou plusieurs routeurs de transit. Plusieurs routeurs de transit peuvent être interconnectés via des connexions interrégionales pour permettre la communication entre VPC dans différentes régions et comptes.

Pour une comparaison entre les appairages de VPC et CEN, consultez Quelles sont les différences entre Cloud Enterprise Network et l'appairage de VPC ?

Élément de comparaison

Connexion publique

Appairage de VPC

Cloud Enterprise Network (CEN)

Type de réseau

Public

Privé

Privé

Facturation

Des frais sont facturés selon les méthodes de facturation des adresses IP élastiques.

  • Aucun frais n'est facturé si les VPC du cluster ACK et de l'instance ACR Enterprise Edition se trouvent dans la même région.

  • Si les VPC se trouvent dans des régions différentes, Cloud Data Transfer (CDT) facture des frais pour le trafic sortant.

Des frais sont facturés selon les règles de facturation de CEN.

Fonctionnalités clés

Ne nécessite aucune modification de votre architecture réseau existante. Pour des raisons de sécurité, vous devez configurer des règles entrantes et sortantes ainsi que des politiques de contrôle d'accès.

  • Les images sont transférées via un réseau privé pour une sécurité accrue. Aucun frais n'est facturé si les VPC se trouvent dans la même région.

  • Cette méthode exige que les deux VPC aient des blocs CIDR non chevauchants. S'il existe un chevauchement important des blocs CIDR déjà utilisés, vous devrez peut-être repenser votre architecture réseau existante.

  • Les images sont transférées via un réseau privé pour une sécurité accrue.

  • CEN est conçu pour les environnements de production d'entreprise ayant des exigences de sécurité élevées.

Procédure de configuration

  1. Configurer un endpoint public pour l'instance ACR

    Configurez une politique de contrôle d'accès public pour gérer et accéder à distance de manière sécurisée à l'instance ACR Enterprise Edition.
  2. Activer l'accès au réseau public pour le cluster ACK

    Configurez l'accès au réseau public pour le cluster ACK afin de tirer des images depuis l'instance ACR Enterprise Edition.
  1. Activer la résolution de nom de domaine privé pour l'instance ACR

    Après avoir connecté l'instance ACR Enterprise Edition au VPC, vous pouvez accéder à l'instance au sein du VPC en utilisant son nom de domaine privé. Après la configuration, obtenez l'ID du VPC et l'adresse IP privée de l'instance ACR Enterprise Edition.
  2. Obtenir le nom de domaine et l'adresse IP de l'instance ACR

    Obtenez le nom de domaine et l'adresse IP du service d'authentification utilisé pour accéder à l'instance ACR Enterprise Edition, ainsi que le nom de domaine et l'adresse IP du bucket OSS associé.
  3. Créer un appairage de VPC et configurer une table de routage

    Vous devez ajouter des entrées de routage pointant vers le VPC pair aux deux extrémités de l'appairage de VPC pour permettre la communication privée entre les VPC du cluster ACK et de l'instance ACR Enterprise Edition. À l'extrémité du cluster ACK de l'appairage de VPC, vous devez également configurer des entrées de routage pour l'adresse IP du service d'authentification et l'adresse IP du bucket OSS associé.
  4. Résoudre le nom de domaine de l'instance ACR pour le cluster ACK

    Utilisez des méthodes telles que l'ajout d'un enregistrement DNS privé ou l'utilisation d'un script de données personnalisées du pool de nœuds pour modifier par lot le fichier /etc/hosts. Cela permet de résoudre le nom de domaine de l'instance ACR vers son adresse IP privée, permettant au cluster ACK de transférer le trafic vers le VPC de l'instance ACR via les entrées de routage configurées.
  1. Activer la résolution de nom de domaine privé pour l'instance ACR

    Après avoir connecté l'instance ACR Enterprise Edition au VPC, vous pouvez accéder à l'instance au sein du VPC en utilisant son nom de domaine privé. Après la configuration, obtenez l'ID du VPC et l'adresse IP privée de l'instance ACR Enterprise Edition.
  2. Obtenir le nom de domaine et l'adresse IP de l'instance ACR

    Obtenez le nom de domaine et l'adresse IP du service d'authentification utilisé pour accéder à l'instance ACR Enterprise Edition, ainsi que le nom de domaine et l'adresse IP du bucket OSS associé.
  3. Configurer la communication VPC entre comptes à l'aide de CEN

    Connectez le VPC de l'instance ACR Enterprise Edition au routeur de transit de sa région. Connectez le VPC du cluster ACK au routeur de transit de sa région. Ensuite, utilisez une connexion interrégionale pour permettre la communication entre les deux routeurs de transit.
  4. Configurer les tables de routage du VPC et du routeur de transit

    Dans les tables de routage du VPC du cluster ACK et du routeur de transit, vous devez également configurer des entrées de routage pour l'adresse IP du service d'authentification et l'adresse IP du bucket OSS associé.
  5. Résoudre le nom de domaine de l'instance ACR pour le cluster ACK

    Utilisez des méthodes telles que l'ajout d'un enregistrement DNS privé ou l'utilisation d'un script de données personnalisées du pool de nœuds pour modifier par lot le fichier /etc/hosts. Cette étape permet de résoudre le nom de domaine de l'instance ACR vers son adresse IP privée pour le cluster ACK, permettant au trafic d'être transféré vers le VPC de l'instance ACR via les entrées de routage CEN.

Étape 2 : Configurer l'autorisation et le composant sans mot de passe

Les trois méthodes d'autorisation suivantes vous permettent de tirer des images entre comptes sans utiliser d'identifiants statiques. Choisissez la méthode qui correspond le mieux à vos besoins.

Élément de comparaison

RRSA

Rôle RAM Worker

AccessKey utilisateur RAM

Type de cluster

Prend en charge les clusters ACK Basic, les clusters ACK Pro, les clusters ACK Edge et les clusters ACK Serverless Pro en version v1.22 et ultérieure.

Prend en charge les clusters ACK Basic, les clusters ACK Pro et les clusters ACK dédiés en version v1.20 et ultérieure.

Prend en charge les clusters ACK Basic, les clusters ACK Pro et les clusters ACK dédiés en version v1.20 et ultérieure.

Composants pris en charge

  • Composant géré aliyun-acr-credential-helper

  • Composant aliyun-acr-credential-helper

    Doit être mis à niveau vers la version v23.02.06.1-74e2172-aliyun ou ultérieure.

Pour plus d'informations sur les différences entre ces composants, consultez la section Comparaison des composants sans mot de passe.

Composant aliyun-acr-credential-helper

Composant aliyun-acr-credential-helper

Granularité des permissions

Niveau Pod (granularité fine)

Niveau Cluster (granularité moyenne)

Niveau Compte (granularité grossière)

Sécurité

Élevée. Cette méthode offre un contrôle et une isolation des permissions à granularité fine. Elle utilise des identifiants temporaires provenant de STS (Security Token Service) et évite le codage en dur des paires AccessKey.

Moyenne. Tous les Pods partagent les mêmes permissions, ce qui peut entraîner des privilèges excessifs.

Faible. Risque élevé de fuite de paires AccessKey.

Scénarios applicables

Convient aux services sensibles à la sécurité et aux environnements de production nécessitant un contrôle strict des permissions.

Convient aux scénarios avec des exigences de permissions uniformes, tels que les environnements de développement et de test nécessitant un contrôle modéré des permissions.

Convient aux déploiements rapides ou aux environnements de démonstration.

RRSA

Dans le cluster ACK sous le Compte A, vous configurez un ServiceAccount spécifique pour assumer un rôle RAM du Compte B. Ce rôle RAM reçoit les permissions nécessaires, permettant au cluster ACK de tirer des images privées depuis l'instance ACR du Compte B sans utiliser d'identifiants statiques.

Remarque

Pour activer la fonctionnalité RRSA (RAM Roles for Service Accounts) pour le composant sans mot de passe, vous devez d'abord activer RRSA pour le cluster, puis configurer RRSA pour le composant. Si vous effectuez ces étapes dans le mauvais ordre, vous devez supprimer le Pod du composant sans mot de passe pour activer la fonctionnalité RRSA.

image
  1. Sous le Compte A, activez la fonctionnalité RRSA pour le cluster ACK et créez un rôle RAM avec des permissions d'assumption de rôle.

    1. Activez la fonctionnalité RRSA pour le cluster ACK.

      1. Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.

      2. Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur Cluster Information.

      3. Dans l'onglet Basic Information, dans la section Security and Auditing, cliquez sur Enable à côté de RRSA OIDC.

      4. Dans la boîte de dialogue Enable RRSA, cliquez sur Confirm. Attendez que l'état du cluster passe de Updating à Running. RRSA est désormais activé.

      5. Une fois RRSA activé, survolez l'étiquette Enabled à côté de RRSA OIDC dans la section Security and Auditing. L'URL et le nom de ressource Alibaba Cloud (ARN) du fournisseur OIDC s'affichent.

    2. Créer un rôle RAM pour un fournisseur d'identité OIDC et mettez à jour sa stratégie de confiance avec le contenu suivant.

      • Remplacez <oidc_issuer_url> par l'URL du fournisseur OIDC que vous avez obtenue à l'étape précédente.

      • Remplacez <oidc_provider_arn> par l'ARN du fournisseur OIDC que vous avez obtenu à l'étape précédente.

      {
        "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. Attachez la stratégie d'autorisation AliyunSTSAssumeRoleAccess au rôle pour lui accorder les autorisations d'assumer un rôle, puis notez son ARN. Pour plus d'informations, consultez Gérer les autorisations d'un rôle RAM.

      1. Sur la page des détails du rôle, sous l'onglet Authorization, cliquez sur Authorize.

      2. Dans le panneau Authorize, sous Policies, recherchez et sélectionnez la stratégie AliyunSTSAssumeRoleAccess, puis cliquez sur OK.

      3. Sur la page des détails du rôle, dans la section Basic Information, consultez et notez l'ARN du rôle RAM. Pour obtenir des instructions détaillées, consultez Comment afficher l'ARN d'un rôle RAM ?

  2. Sous Account B, créez un rôle RAM disposant des autorisations nécessaires pour tirer des images privées, et configurez-le de manière à ce qu'il puisse être assumé par le rôle RAM du Account A.

    1. Créer un rôle RAM pour un compte Alibaba Cloud de confiance. Modifiez la stratégie de confiance avec le script suivant pour autoriser l'assumption de rôle par le rôle du Account A.

      {
        "Statement": [
          {
            "Action": "sts:AssumeRole",
            "Effect": "Allow",
            "Principal": {
              "RAM": [
                "<ARN of the role created in Account A>"
              ]
            }
          }
        ],
        "Version": "1"
      }
    2. Créer une stratégie d'autorisation personnalisée avec le contenu suivant et attachez-la au rôle RAM pour accorder les autorisations permettant d'obtenir les informations de l'instance et de tirer des images.

      {
          "Version": "1",
          "Statement": [
              {
                  "Action": [
                      "cr:GetAuthorizationToken",
                      "cr:ListInstanceEndpoint",
                      "cr:PullRepository"
                  ],
                  "Resource": "*",
                  "Effect": "Allow"
              }
          ]
      }
    3. Définir la durée maximale de session pour le rôle RAM sur une valeur comprise entre 3 600 et 43 200 secondes. La valeur par défaut est de 3 600 secondes.

      Assurez-vous que cette valeur correspond au paramètre expireDuration dans la configuration du composant décrite ci-après. La valeur de expireDuration ne peut pas dépasser la durée maximale de session.
    4. Sur la page des détails du rôle, dans la section Basic Information, consultez et notez l'ARN du rôle RAM.

  3. Sous Account A, installez le composant sans mot de passe pour le cluster ACK et modifiez sa configuration.

    Pour plus d'informations sur les différences entre les composants suivants, consultez Comparaison des composants sans mot de passe .

    Composant géré

    1. Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.

    2. Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur Add-ons .

    3. Sur la page Add-ons, cliquez sur l'onglet Security, recherchez la carte aliyun-acr-credential-helper (managed), puis cliquez sur Install.

    4. Dans la boîte de dialogue aliyun-acr-credential-helper Parameter Configuration, sélectionnez Enable RRSA. Ensuite, cliquez sur Add, saisissez les paramètres suivants et cliquez sur Confirm.

      Configuration de l'instance ACR Enterprise Edition :

      Parameter

      Description

      Example

      instanceId

      L'ID de l'instance ACR. Pour spécifier plusieurs ID, séparez-les par des virgules (,).

      cri-XXXXX

      regionId

      L'ID de région de l'instance ACR.

      cn-hangzhou

      domains

      Les noms de domaine utilisés pour accéder à l'instance ACR. Saisissez tous les noms de domaine d'accès (public et VPC) de l'instance ACR. Pour spécifier des noms de domaine spécifiques, séparez-les par des virgules (,).

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

      assumeRoleARN

      L'ARN du rôle RAM que vous avez créé dans le Account B.

      acs:ram::100XXXXXXXX9630:role/XXXX

      expireDuration

      La période de validité des identifiants temporaires pour l'accès intercomptes. Saisissez la durée maximale de session du rôle RAM que vous avez créé sous le Account B.

      3600

      rrsaRoleARN

      L'ARN du rôle RAM que vous avez créé dans le Account A.

      acs:ram::128XXXXXXXXXX09011:role/XXXX

      rrsaOIDCProviderRoleARN

      L'ARN du fournisseur du cluster ACK. Saisissez l'ARN du fournisseur du fournisseur d'identité RRSA OIDC pour le cluster ACK sous le Account A.

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

      Pour plus d'informations sur les autres paramètres, consultez Configuration du composant .

    aliyun-acr-credential-helper

    1. Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.

    2. Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur Add-ons .

    3. Sur la page Add-ons, cliquez sur l'onglet Security, recherchez le composant aliyun-acr-credential-helper et cliquez sur Install. Dans la boîte de dialogue qui s'affiche, définissez l'option tokenMode sur auto, puis cliquez sur OK.

    4. Modifiez le ConfigMap du composant sans mot de passe.

      1. Dans le volet de navigation de gauche, choisissez Configurations > ConfigMaps.

      2. Sur la page ConfigMaps, sélectionnez kube-system dans la liste déroulante Namespace. Ensuite, recherchez acr-configuration et cliquez sur Edit YAML dans la colonne Actions. Mettez à jour la configuration en vous basant sur l'exemple suivant.

        data:
          service-account: "default"
          watch-namespace: "all"
          expiring-threshold: "15m"
          notify-email: "c*@example.com"
          acr-registry-info: |
            - instanceId: "cri-xxx"                                   # ACR instance ID.
              regionId: "cn-hangzhou"                                 # ACR instance region ID.
              domains: "xxxxx-registry.cn-hangzhou.cr.aliyuncs.com"   # ACR instance access domain name.
              rrsaRoleARN: "<ARN of the role created under Account A>"
              rrsaOIDCProviderRoleARN: "<OIDC Provider ARN from the cluster's Basic Information page in the ACK console under Account A>"
              assumeRoleARN: "<ARN of the role created under Account B>"
              expireDuration: 3600                                    # Maximum session duration for the RAM role under Account B. Default: 3600.             
          rrsa: |
            enable: true                                              # Enable the RRSA feature for the password-free component. 

Rôle RAM Worker

Dans le cluster ACK sous le Account A, configurez le rôle RAM Worker par défaut du cluster pour qu'il assume un rôle RAM du Account B disposant des autorisations nécessaires pour tirer des images. Cela permet au cluster ACK d'accéder aux images privées du Account B et de les tirer.

image
  1. Sous le Account A, affichez le rôle RAM Worker du cluster et accordez-lui les autorisations d'assumer un rôle.

    1. Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.

    2. Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur Cluster Information.

    3. Sur la page Cluster Information, cliquez sur l'onglet Basic Information. Dans la section Cluster Resources, cliquez sur le lien situé à droite de Worker RAM Role.

    4. Attachez la stratégie d'autorisation AliyunSTSAssumeRoleAccess au rôle pour lui accorder les autorisations d'assumer un rôle, puis notez son ARN. Pour plus d'informations, consultez Gérer les autorisations d'un rôle RAM.

      1. Sur la page des détails du rôle, sous l'onglet Authorization, cliquez sur Authorize.

      2. Dans le panneau Authorize, sous Policies, recherchez et sélectionnez la stratégie AliyunSTSAssumeRoleAccess, puis cliquez sur OK.

      3. Sur la page des détails du rôle, dans la section Basic Information, consultez et notez l'ARN du rôle RAM. Pour obtenir des instructions détaillées, consultez Comment afficher l'ARN d'un rôle RAM ?

  2. Sous le Account B, créez un rôle RAM disposant des autorisations nécessaires pour tirer des images privées, et configurez-le de manière à ce qu'il puisse être assumé par le rôle RAM Worker du cluster ACK dans le Account A.

    1. Créer un rôle RAM pour un compte Alibaba Cloud de confiance.

    2. Créer une stratégie d'autorisation personnalisée avec le contenu suivant et attachez-la au rôle RAM pour accorder les autorisations permettant d'obtenir les informations de l'instance et de tirer des images.

      {
          "Version": "1",
          "Statement": [
              {
                  "Action": [
                      "cr:GetAuthorizationToken",
                      "cr:ListInstanceEndpoint",
                      "cr:PullRepository"
                  ],
                  "Resource": "*",
                  "Effect": "Allow"
              }
          ]
      }
    3. Sur la page des détails du rôle RAM, cliquez sur l'onglet Trust Policy et Edit Trust Policy avec le contenu suivant. Cela permet au rôle RAM Worker du cluster ACK dans le Account A d'assumer le rôle RAM dans le Account B.

      {
        "Statement": [
          {
            "Action": "sts:AssumeRole",
            "Effect": "Allow",
            "Principal": {
              "RAM": [
                "<ARN of the role created under Account A>"
              ]
            }
          }
        ],
        "Version": "1"
      }
    4. Sur la page des détails du rôle, dans la section Basic Information, consultez et notez l'ARN du rôle RAM. Pour obtenir des instructions détaillées, consultez Comment afficher l'ARN d'un rôle RAM ?

  3. Sous le Account A, installez le composant sans mot de passe pour le cluster ACK et modifiez sa configuration.

    1. Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.

    2. Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur Add-ons .

    3. Sur la page Add-ons, cliquez sur l'onglet Security, recherchez le composant aliyun-acr-credential-helper et cliquez sur Install. Dans la boîte de dialogue qui s'affiche, définissez l'option tokenMode sur workerRole, puis cliquez sur Confirm.

    4. Modifiez le ConfigMap du composant sans mot de passe.

      1. Dans le volet de navigation de gauche, choisissez Configurations > ConfigMaps.

      2. Sur la page ConfigMaps, sélectionnez kube-system dans la liste déroulante Namespace. Ensuite, recherchez acr-configuration et cliquez sur Edit YAML dans la colonne Actions. Mettez à jour la configuration en vous basant sur l'exemple suivant.

        data:
            service-account: "default"
            watch-namespace: "all"
            expiring-threshold: "15m"
            notify-email: "c*@example.com"
            acr-registry-info: |
              - instanceId: "cri-xxx"                                    # ACR Enterprise Edition instance ID.
                regionId: "cn-hangzhou"                                  # ACR Enterprise Edition region ID.
                domains: "xxxxx-registry.cn-hangzhou.cr.aliyuncs.com"    # ACR Enterprise Edition access domain name.
                assumeRoleARN: "<ARN of the role created under Account B>"
                expireDuration: 3600                                     # Maximum session duration for the RAM role under Account B. Default: 3600.

Clé d'accès utilisateur RAM

Dans le cluster ACK sous le Account A, le composant sans mot de passe stocke l'ID de clé d'accès (AK) et la clé d'accès secrète (SK) d'un utilisateur RAM du Account B pour tirer des images privées depuis le Account B. Bien que cette méthode soit simple à configurer, elle présente un risque de sécurité car la paire de clés d'accès est stockée en texte clair.

  1. Sous le Account B, créez un utilisateur RAM et assurez-vous qu'il dispose des autorisations cr.** nécessaires.

    1. Créer un utilisateur RAM.

    2. Créer une stratégie d'autorisation personnalisée avec le contenu suivant et attachez-la à l'utilisateur RAM pour accorder les autorisations permettant d'obtenir les informations de l'instance et de tirer des images.

      {
          "Version": "1",
          "Statement": [
              {
                  "Action": [
                      "cr:GetAuthorizationToken",
                      "cr:ListInstanceEndpoint",
                      "cr:PullRepository"
                  ],
                  "Resource": "*",
                  "Effect": "Allow"
              }
          ]
      }
    3. Créer une paire de clés d'accès et notez l'AccessKey ID et l'AccessKey Secret.

  2. Sous le Account A, installez le composant sans mot de passe pour le cluster ACK et modifiez sa configuration.

    1. Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.

    2. Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur Cluster Information.

    3. Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur Add-ons .

    4. Sur la page Add-ons, cliquez sur l'onglet Security, recherchez le composant aliyun-acr-credential-helper et cliquez sur Install. Dans la boîte de dialogue qui s'affiche, définissez l'option tokenMode sur auto, puis cliquez sur OK.

    5. Modifiez le ConfigMap du composant sans mot de passe.

      1. Dans le volet de navigation de gauche, choisissez Configurations > ConfigMaps.

      2. Sur la page ConfigMaps, sélectionnez kube-system dans la liste déroulante Namespace. Ensuite, recherchez acr-configuration et cliquez sur Edit YAML dans la colonne Actions. Mettez à jour la configuration en vous basant sur l'exemple suivant.

      3. data:
            service-account: "default"
            watch-namespace: "all"
            expiring-threshold: "15m"
            notify-email: "c*@example.com"
            acr-registry-info: |
              - instanceId: ""                        # ACR Enterprise Edition instance ID.             
                regionId: "cn-hangzhou"               # ACR Enterprise Edition region ID.    
                customAccessKey: "xxxxx"              # AccessKey ID of the RAM user under Account B.
                customAccessKeySecret: "xxxxxx"       # AccessKey Secret of the RAM user under Account B. 

Étape 3 : Vérifier le tirage d'images entre comptes

Remarque

Cette procédure de vérification est fournie à titre d'exemple. Pour des instructions détaillées, consultez les rubriques Créer une image et Créer une charge de travail.

  1. Dans l'instance ACR Enterprise Edition du Compte B, récupérez l'Public endpoint ou l'adresse VPC de l'image de conteneur, selon vos besoins.

    Accédez à la page Basic Information du dépôt d'images cible. Les adresses des endpoints sont affichées sur le côté droit de la page.

  2. Dans le cluster ACK du Compte A, accédez à Workloads > Deployments et créez une charge de travail en utilisant l'image de conteneur.

    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 # Specify the ACR image address from Account B 
            ports:
            - containerPort: 80
  3. Un événement Pod affichant le message Successfully pulled image "XXX" in XXXs (XXXs including waiting). Image size: XXX bytes. indique que le composant sans mot de passe a correctement tiré l'image entre les comptes.

    Sur la page des détails de la charge de travail, dans l'onglet Pods, vérifiez que le statut du Pod est Running et que la colonne Image affiche l'adresse du dépôt d'images inter-comptes, par exemple test332-registry.cn-hangzhou.cr.aliyuncs.com/instance/test:v1.

FAQ

Résoudre les conflits d'adresses IP dans le bloc CIDR 100.0.0.0/8

Les adresses IP des domaines d'authentification et d'OSS se résolvent vers le bloc CIDR 100.0.0.0/8. Si votre réseau interne utilise cette plage, des conflits d'adresses IP surviendront.

Conflit de nom de domaine d'authentification

Pour résoudre ce conflit, activez la prise en charge du domaine d'authentification par l'instance. Cela vous permet d'accéder au service en utilisant uniquement le nom de domaine de l'instance.

  1. Connectez-vous à la console Container Registry.

  2. Dans la barre de navigation supérieure, sélectionnez une région.

  3. Sur la page Instances, cliquez sur l'instance Enterprise Edition que vous souhaitez gérer.

  4. Dans le volet de navigation de gauche de la page de gestion de l'instance, choisissez Repository > Domain. Sur la page Domain, activez l'option Instance Taking over Authentication Domain Name.

    Important

    Pour activer la prise en charge du domaine d'authentification, vous devez soumettre un ticket afin d'ajouter votre instance Enterprise Edition à la liste d'autorisation.

  5. Dans la boîte de dialogue Confirm to Enable Instance Taking over Authentication Domain Name, cliquez sur Confirm.

Conflit de nom de domaine OSS

Pour résoudre ce conflit, accédez aux ressources OSS via un réseau privé en utilisant PrivateLink, puis pointez le nom de domaine OSS vers le nom de domaine PrivateLink à l'aide d'un enregistrement CNAME.