Configura el acceso entre proyectos en GKE

En esta página, se muestra cómo otorgar acceso a la Autorización Binaria a las políticas y a las imágenes de contenedor que existen en proyectos de Google Cloud diferentes de los de tu proyecto actual. Por ejemplo, si implementas imágenes en tu clúster de Google Kubernetes Engine (GKE) desde un repositorio de Artifact Registry o Container Registry (obsoleto) que pertenece a otro proyecto, deberás otorgar al servicio de autorización binaria en tu proyecto acceso a los metadatos de imágenes en el repositorio de código fuente.

Terminología

En este documento, se usan los siguientes términos:

  • Agente de servicio: Una cuenta de servicio administrada por Google Cloud. La Autorización Binaria usa un agente de servicio para interactuar con tus recursos de Google Cloud, como los clústeres de GKE.
  • Proyecto de política: el proyecto de Google Cloud que contiene tu política de Autorización Binaria.
  • Proyecto del clúster: El proyecto de Google Cloud que contiene tu clúster de GKE.
  • Proyecto de artefactos: El proyecto de Google Cloud que contiene tu repositorio de Artifact Registry o Container Registry (obsoleto).

Situaciones que requieren acceso entre proyectos

Debes otorgar permisos entre proyectos en situaciones como las siguientes:

  • El proyecto de tu política es diferente del proyecto del clúster.
  • El proyecto del clúster es diferente del proyecto del artefacto.

Antes de comenzar

  1. Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. Instala Google Cloud CLI.
  3. Para inicializar la CLI de gcloud, ejecuta el siguiente comando:

    gcloud init
  4. Crea o selecciona un proyecto de Google Cloud.

    • Crea un proyecto de Google Cloud:

      gcloud projects create PROJECT_ID

      Reemplaza PROJECT_ID por un nombre para el proyecto de Google Cloud que estás creando.

    • Selecciona el proyecto de Google Cloud que creaste:

      gcloud config set project PROJECT_ID

      Reemplaza PROJECT_ID por el nombre del proyecto de Google Cloud.

  5. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

  6. Habilita la API de Binary Authorization:

    gcloud services enable binaryauthorization.googleapis.com
  7. Instala Google Cloud CLI.
  8. Para inicializar la CLI de gcloud, ejecuta el siguiente comando:

    gcloud init
  9. Crea o selecciona un proyecto de Google Cloud.

    • Crea un proyecto de Google Cloud:

      gcloud projects create PROJECT_ID

      Reemplaza PROJECT_ID por un nombre para el proyecto de Google Cloud que estás creando.

    • Selecciona el proyecto de Google Cloud que creaste:

      gcloud config set project PROJECT_ID

      Reemplaza PROJECT_ID por el nombre del proyecto de Google Cloud.

  10. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

  11. Habilita la API de Binary Authorization:

    gcloud services enable binaryauthorization.googleapis.com

El proyecto del clúster es diferente del proyecto de política

Otorga al agente de servicio de Autorización Binaria en el proyecto del clúster la función Evaluador de políticas de autorización binaria (roles/binaryauthorization.policyEvaluator) en el proyecto de política.

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

Reemplaza lo siguiente:

  • POLICY_PROJECT_ID: El ID del proyecto que contiene tu política.
  • CLUSTER_PROJECT_ID: El ID del proyecto del clúster.

Proyecto de clúster diferente al proyecto de artefacto

Otorga al agente de servicio de autorización binaria en el proyecto del clúster la función de lector de Artifact Registry (roles/artifactregistry.reader) en el proyecto de artefacto.

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

Reemplaza lo siguiente:

  • ARTIFACT_PROJECT_ID: El ID del proyecto que contiene tu repositorio de Artifact Registry.
  • CLUSTER_PROJECT_ID: El ID del proyecto que ejecuta tus clústeres de GKE.