Configurer l'accès entre projets dans GKE

Cette page explique comment accorder une autorisation binaire aux règles et aux images de conteneurs existant dans des projets Google Cloud différents de votre projet actuel. Par exemple, si vous déployez des images dans votre cluster Google Kubernetes Engine (GKE) à partir d'un dépôt Artifact Registry ou Container Registry (obsolète) appartenant à un autre projet, vous devez accorder au service d'autorisation binaire de votre projet l'accès aux métadonnées d'image dans le dépôt source.

Terminologie

Ce document utilise les termes suivants :

  • Agent de service : compte de service géré par Google Cloud. L'autorisation binaire utilise un agent de service pour interagir avec vos ressources Google Cloud, telles que les clusters GKE.
  • Projet de règles : projet Google Cloud qui contient votre règle d'autorisation binaire.
  • Projet de clusters : projet Google Cloud qui contient votre cluster GKE.
  • Projet d'artefacts : projet Google Cloud contenant votre dépôt Artifact Registry ou Container Registry (obsolète).

Scénarios nécessitant un accès entre projets

Vous devez accorder des autorisations entre projets dans les situations suivantes :

  • Votre projet de règles est différent de votre projet de clusters.
  • Votre projet de clusters est différent de votre projet d'artefacts.

Avant de commencer

  1. Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
  2. Installez Google Cloud CLI.
  3. Pour initialiser gcloudCLI, exécutez la commande suivante :

    gcloud init
  4. Créez ou sélectionnez un projet Google Cloud.

    • Créez un projet Google Cloud :

      gcloud projects create PROJECT_ID

      Remplacez PROJECT_ID par le nom du projet Google Cloud que vous créez.

    • Sélectionnez le projet Google Cloud que vous avez créé :

      gcloud config set project PROJECT_ID

      Remplacez PROJECT_ID par le nom de votre projet Google Cloud.

  5. Vérifiez que la facturation est activée pour votre projet Google Cloud.

  6. Activer l'API Binary Authorization :

    gcloud services enable binaryauthorization.googleapis.com
  7. Installez Google Cloud CLI.
  8. Pour initialiser gcloudCLI, exécutez la commande suivante :

    gcloud init
  9. Créez ou sélectionnez un projet Google Cloud.

    • Créez un projet Google Cloud :

      gcloud projects create PROJECT_ID

      Remplacez PROJECT_ID par le nom du projet Google Cloud que vous créez.

    • Sélectionnez le projet Google Cloud que vous avez créé :

      gcloud config set project PROJECT_ID

      Remplacez PROJECT_ID par le nom de votre projet Google Cloud.

  10. Vérifiez que la facturation est activée pour votre projet Google Cloud.

  11. Activer l'API Binary Authorization :

    gcloud services enable binaryauthorization.googleapis.com

Projet de clusters différent du projet de règles

Accordez à l'agent de service d'autorisation binaire du projet de clusters le rôle Évaluateur des règles d'autorisation binaire (roles/binaryauthorization.policyEvaluator) sur le projet de règles.

gcloud projects add-iam-policy-binding POLICY_PROJECT_ID \
  --member="serviceAccount:service-$(gcloud projects describe CLUSTER_PROJECT_ID --format='value(projectNumber)')@gcp-sa-binaryauthorization.iam.gserviceaccount.com" \
  --role=roles/binaryauthorization.policyEvaluator

Remplacez les éléments suivants :

  • POLICY_PROJECT_ID : ID du projet contenant votre règle.
  • CLUSTER_PROJECT_ID : ID de projet du cluster.

Projet de clusters différent du projet d'artefacts

Accordez à l'agent de service d'autorisation binaire du projet de clusters le rôle Lecteur Artifact Registry (roles/artifactregistry.reader) sur le projet d'artefacts.

gcloud projects add-iam-policy-binding ARTIFACT_PROJECT_ID \
    --member="serviceAccount:service-$(gcloud projects describe CLUSTER_PROJECT_ID --format='value(projectNumber)')@gcp-sa-binaryauthorization.iam.gserviceaccount.com" \
    --role=roles/artifactregistry.reader

Remplacez les éléments suivants :

  • ARTIFACT_PROJECT_ID : ID du projet contenant votre dépôt Artifact Registry.
  • CLUSTER_PROJECT_ID : ID du projet qui exécute vos clusters GKE.