Artifact Registry est le service recommandé pour gérer les images de conteneurs. Container Registry demeure compatible, mais ne recevra que les correctifs de sécurité critiques. En savoir plus sur la transition vers Artifact Registry.

Compte de service Container Registry

L'agent de service Container Registry est un compte de service géré par Google qui agit au nom de Container Registry lors de l'interaction avec les services Google Cloud.

Pour appliquer le principe de sécurité du moindre privilège, ce compte de service se voit attribuer le rôle d'agent de service Container Registry dans les projets pour lesquels l'API Container Registry a été activée après le 5 octobre 2020. Ce rôle dispose des autorisations suivantes :

  • Publier les sujets : pubsub.topics.publish
  • Lire les LCA d'objets de stockage : storage.objects.getIamPolicy
  • Lires les données et les métadonnées d'objets de stockage : storage.objects.get
  • Répertorier les objets de stockage dans un bucket et lire les métadonnées d'objets : storage.objects.list

Auparavant, le compte de service Container Registry disposait du rôle Éditeur. Étant donné que le rôle Éditeur bénéficie des autorisations pour créer et supprimer la plupart des ressources d'un projet, nous vous recommandons de limiter les autorisations si votre compte de service Container Registry possède ce rôle.

Trouver l'ID du compte de service

Le compte de service Container Registry possède l'ID suivant:

service-[PROJECT_NUMBER]@containerregistry.iam.gserviceaccount.com

Pour trouver le compte de service, consultez la liste des comptes principaux qui ont accès à votre projet.

Console

  1. Accéder à la page IAM.

  2. Pour ajouter des comptes gérés par Google à la liste des comptes principaux, cochez la case Inclure les attributions de rôles fournies par Google.

  3. Pour filtrer la liste, saisissez containerregistry dans le champ Filtre.

gcloud

Exécutez la commande suivante pour répertorier les comptes principaux contenant la chaîne containerregistry:

gcloud projects get-iam-policy PROJECT-ID \
    --flatten="bindings[].members"
    --filter="containerregistry"

Remplacez PROJECT-ID par l'ID de votre projet Google Cloud.

Vérifier les autorisations actuelles

Pour vérifier les autorisations actuelles de votre compte de service Container Registry, exécutez la commande suivante :

gcloud projects get-iam-policy PROJECT-ID  \
    --flatten="bindings[].members" \
    --format='table(bindings.role)' \
    --filter="bindings.members:service-PROJECT-NUMBER@containerregistry.iam.gserviceaccount.com"

Où :

  • PROJECT-ID est l'ID du projet Google Cloud.
  • PROJECT-NUMBER est le numéro du projet Google Cloud.

Vous pouvez obtenir l'ID et le numéro du projet dans Google Cloud Console ou à l'aide des commandes suivantes:

PROJECT=$(gcloud config get-value project)
echo $PROJECT && gcloud projects list --filter="$PROJECT" --format="value(PROJECT_NUMBER)"

Modifier les autorisations

Pour accorder le rôle d'Agent de service Container Registry et révoquer le rôle d'Éditeur, procédez comme suit :

  1. Attribuez le rôle d'Agent de service Container Registry à l'aide de la commande suivante :

    gcloud projects add-iam-policy-binding PROJECT-ID \
    --member=serviceAccount:service-PROJECT-NUMBER@containerregistry.iam.gserviceaccount.com --role=roles/containerregistry.ServiceAgent
    
  2. Révoquez le rôle d'Éditeur à l'aide de la commande suivante :

    gcloud projects remove-iam-policy-binding PROJECT-ID \
    --member=serviceAccount:service-PROJECT-NUMBER@containerregistry.iam.gserviceaccount.com --role=roles/editor