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 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 origen.
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 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
- 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.
-
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
- Selecciona 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 el permisoresourcemanager.projects.create. Obtén más información para otorgar roles.
-
Crea un Google Cloud proyecto:
gcloud projects create PROJECT_ID
Reemplaza
PROJECT_IDpor un nombre para el proyecto Google Cloud que estás creando. -
Selecciona el proyecto Google Cloud que creaste:
gcloud config set project PROJECT_ID
Reemplaza
PROJECT_IDpor el nombre de tu proyecto de Google Cloud .
-
Verifica que la facturación esté habilitada para tu proyecto de Google Cloud .
Habilita la API de Autorización Binaria:
Roles necesarios para habilitar las APIs
Para habilitar APIs, necesitas el permiso
serviceusage.services.enable. Si creaste el proyecto, es probable que ya tengas este permiso a través del rol de propietario (roles/owner). De lo contrario, puedes obtener este permiso a través del rol de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin). 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
- Selecciona 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 el permisoresourcemanager.projects.create. Obtén más información para otorgar roles.
-
Crea un Google Cloud proyecto:
gcloud projects create PROJECT_ID
Reemplaza
PROJECT_IDpor un nombre para el proyecto Google Cloud que estás creando. -
Selecciona el proyecto Google Cloud que creaste:
gcloud config set project PROJECT_ID
Reemplaza
PROJECT_IDpor el nombre de tu proyecto de Google Cloud .
-
Verifica que la facturación esté habilitada para tu proyecto de Google Cloud .
Habilita la API de Autorización Binaria:
Roles necesarios para habilitar las APIs
Para habilitar APIs, necesitas el permiso
serviceusage.services.enable. Si creaste el proyecto, es probable que ya tengas este permiso a través del rol de propietario (roles/owner). De lo contrario, puedes obtener este permiso a través del rol de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin). 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.