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 diferentes Google Cloud 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 Google Cloud-cuenta de servicio administrada por. La Autorización Binaria usa un agente de servicio para interactuar con tus Google Cloud recursos, como los clústeres de GKE.
- Proyecto de política: El Google Cloud proyecto que contiene tu política de Autorización Binaria.
- Proyecto del clúster: El Google Cloud proyecto que contiene tu clúster de GKE.
- Proyecto de artefactos: El Google Cloud proyecto 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
- Accede a tu Google Cloud cuenta de. 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.
-
Instala Google Cloud CLI.
-
Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init -
Crea o selecciona un Google Cloud proyecto.
Roles necesarios para seleccionar o crear un proyecto
- Seleccionar un proyecto: Para seleccionar un proyecto, no se requiere un rol de IAM específico. Puedes seleccionar cualquier proyecto en el que se te haya otorgado un rol.
-
Crear un proyecto: Para crear un proyecto, necesitas el rol de creador de proyectos
(
roles/resourcemanager.projectCreator), que contiene elresourcemanager.projects.createpermiso. Obtén más información para otorgar roles.
-
Para crear un Google Cloud proyecto de, haz lo siguiente:
gcloud projects create PROJECT_ID
Reemplaza
PROJECT_IDpor un nombre para el Google Cloud proyecto que estás creando. -
Selecciona el Google Cloud proyecto que creaste:
gcloud config set project PROJECT_ID
Reemplaza
PROJECT_IDpor el nombre de tu Google Cloud proyecto.
-
Verifica que la facturación esté habilitada para tu Google Cloud proyecto.
Habilita la API de Binary Authorization:
Roles necesarios para habilitar las APIs
Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (
roles/serviceusage.serviceUsageAdmin), que contiene elserviceusage.services.enablepermiso. Obtén más información para otorgar roles.gcloud services enable binaryauthorization.googleapis.com
-
Instala Google Cloud CLI.
-
Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init -
Crea o selecciona un Google Cloud proyecto.
Roles necesarios para seleccionar o crear un proyecto
- Seleccionar un proyecto: Para seleccionar un proyecto, no se requiere un rol de IAM específico. Puedes seleccionar cualquier proyecto en el que se te haya otorgado un rol.
-
Crear un proyecto: Para crear un proyecto, necesitas el rol de creador de proyectos
(
roles/resourcemanager.projectCreator), que contiene elresourcemanager.projects.createpermiso. Obtén más información para otorgar roles.
-
Para crear un Google Cloud proyecto de, haz lo siguiente:
gcloud projects create PROJECT_ID
Reemplaza
PROJECT_IDpor un nombre para el Google Cloud proyecto que estás creando. -
Selecciona el Google Cloud proyecto que creaste:
gcloud config set project PROJECT_ID
Reemplaza
PROJECT_IDpor el nombre de tu Google Cloud proyecto.
-
Verifica que la facturación esté habilitada para tu Google Cloud proyecto.
Habilita la API de Binary Authorization:
Roles necesarios para habilitar las APIs
Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (
roles/serviceusage.serviceUsageAdmin), que contiene elserviceusage.services.enablepermiso. Obtén más información para otorgar roles.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-bindingPOLICY_PROJECT_ID\ --member="serviceAccount:service-$(gcloud projects describeCLUSTER_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-bindingARTIFACT_PROJECT_ID\ --member="serviceAccount:service-$(gcloud projects describeCLUSTER_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.