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
Accéder à la page IAM.
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.
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 la console Google Cloud, 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 :
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
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