En esta página se muestra cómo usar la comprobación de directorios de confianza de la validación continua (VC) de la autorización binaria para comprobar que las imágenes asociadas a los pods que se ejecutan en clústeres de Google Kubernetes Engine (GKE) con la VC habilitada se han desplegado desde directorios de confianza.
Costes
En esta guía se utilizan los siguientes servicios de Google Cloud :
- Autorización binaria, pero CV está disponible sin coste económico durante la fase de vista previa
- GKE
Para generar una estimación de costes basada en el uso previsto, utiliza la calculadora de precios.
Antes de empezar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
Install the Google Cloud CLI.
-
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init -
Create or select a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_IDwith a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_IDwith your Google Cloud project name.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Artifact Registry, Binary Authorization, Google Kubernetes Engine APIs:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.gcloud services enable artifactregistry.googleapis.com
binaryauthorization.googleapis.com container.googleapis.com -
Install the Google Cloud CLI.
-
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init -
Create or select a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_IDwith a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_IDwith your Google Cloud project name.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Artifact Registry, Binary Authorization, Google Kubernetes Engine APIs:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.gcloud services enable artifactregistry.googleapis.com
binaryauthorization.googleapis.com container.googleapis.com - Asegúrate de que la CLI de gcloud esté actualizada a la última versión.
- Instala la herramienta de línea de comandos
kubectl. - Si tus políticas de autorización binaria y tus clústeres de GKE están en proyectos diferentes, asegúrate de que la autorización binaria esté habilitada en ambos proyectos.
-
Si el proyecto del clúster es diferente del proyecto de la política:
Evaluador de políticas de autorización binaria (
roles/binaryauthorization.policyEvaluator): el agente de servicio de autorización binaria del proyecto del clúster para que pueda acceder al proyecto de la política. Obtén el agente de servicio de autorización binaria del proyecto del clúster:
PROJECT_NUMBER=$(gcloud projects list --filter="projectId:CLUSTER_PROJECT_ID" \ --format="value(PROJECT_NUMBER)") CLUSTER_SERVICE_ACCOUNT="service-$PROJECT_NUMBER@gcp-sa-binaryauthorization.iam.gserviceaccount.com"Sustituye
CLUSTER_PROJECT_IDpor el ID del proyecto del clúster.Permite que CV evalúe la política en el clúster:
gcloud projects add-iam-policy-binding POLICY_PROJECT_ID \ --member="serviceAccount:$CLUSTER_SERVICE_ACCOUNT" \ --role='roles/binaryauthorization.policyEvaluator'Sustituye
POLICY_PROJECT_IDpor el ID del proyecto que contiene tu política.Crea el archivo YAML de la política de directorios de confianza:
cat > /tmp/my-policy.yaml <<EOF gkePolicy: checkSets: checks: trustedDirectoryCheck: trustedDirPatterns: - PATTERN1 - PATTERN2 displayName: CHECK_DISPLAY_NAME displayName: CHECK_SET_DISPLAY_NAME EOFHaz los cambios siguientes:
PATTERN1: un elemento de lista con un patrón de directorioPATTERN2: un elemento de lista con un patrón de directorioCHECK_DISPLAY_NAME: nombre visible opcional para la comprobación del directorio de confianzaCHECK_SET_DISPLAY_NAME: un nombre visible opcional para la comprobación del directorio de confianza
Estos son algunos ejemplos de patrones:
asia-east1-docker.pkg.dev/my-project/my-repo: solo confía en este repositorioeurope-central1-docker.pkg.dev/my-project/my-repo/test*: solo confía en este repositorio y en los repositorios que se encuentren inmediatamente debajo de él y que empiecen portest.us-central1-docker.pkg.dev/my-project/my-repo/**: solo confía en este repositorio y en todos los repositorios que contiene.
Crea la política de la plataforma:
Antes de usar cualquiera de los datos de los comandos que se indican a continuación, haz las siguientes sustituciones:
- POLICY_ID: ID de política de plataforma
que elijas. Si la política está en otro proyecto, puedes usar el nombre de recurso completo:
projects/POLICY_PROJECT_ID/platforms/gke/policies/POLICY_ID. - POLICY_PATH: ruta al archivo de la política.
- POLICY_PROJECT_ID: ID del proyecto de la política.
Ejecuta el siguiente comando:
Linux, macOS o Cloud Shell
gcloud beta container binauthz policy create POLICY_ID \ --platform=gke \ --policy-file=POLICY_PATH \ --project=POLICY_PROJECT_ID
Windows (PowerShell)
gcloud beta container binauthz policy create POLICY_ID ` --platform=gke ` --policy-file=POLICY_PATH ` --project=POLICY_PROJECT_ID
Windows (cmd.exe)
gcloud beta container binauthz policy create POLICY_ID ^ --platform=gke ^ --policy-file=POLICY_PATH ^ --project=POLICY_PROJECT_ID
- POLICY_ID: ID de política de plataforma
que elijas. Si la política está en otro proyecto, puedes usar el nombre de recurso completo:
CLUSTER_NAME: nombre del clúster.LOCATION: la ubicación (por ejemplo,us-central1oasia-south1).POLICY_PROJECT_ID: el ID del proyecto en el que se almacena la política.POLICY_ID: el ID de la política.CLUSTER_PROJECT_ID: el ID del proyecto del clúster.
Roles obligatorios
En esta sección se explica cómo asignar roles a esta comprobación.
Información general
Si ejecutas todos los productos que se mencionan en esta guía en el mismo proyecto, no tienes que definir ningún permiso. Autorización binaria configura los roles correctamente cuando la habilitas. Si ejecutas los productos en proyectos diferentes, debes asignar el rol tal como se describe en esta sección.
Para asegurarte de que el agente de servicio de Autorización Binaria del proyecto de clúster tiene los permisos necesarios para evaluar la comprobación del directorio de confianza de CV, pide a tu administrador que le conceda los siguientes roles de gestión de identidades y accesos en el proyecto:
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar acceso a proyectos, carpetas y organizaciones.
Tu administrador también puede conceder al agente de servicio de Autorización Binaria del proyecto del clúster los permisos necesarios a través de roles personalizados u otros roles predefinidos.
Otorgar roles con la CLI de gcloud
Si el proyecto en el que ejecutas el clúster es diferente del proyecto en el que reside la política, haz lo siguiente para conceder permiso al agente de servicio de Autorización Binaria del proyecto del clúster para que acceda a la política en el proyecto de la política.
Crear una política de la plataforma
Para crear una política de plataforma de CV con una comprobación de directorio de confianza, siga estos pasos:
Habilitar CV
Puedes crear un clúster o actualizar uno que ya tengas para usar la monitorización de CV con políticas de plataforma basadas en comprobaciones.
Crear un clúster que use la monitorización de CV
En esta sección, crearás un clúster que solo use la monitorización de CV con políticas de plataforma basadas en comprobaciones.
Antes de usar cualquiera de los datos de los comandos que se indican a continuación, haz las siguientes sustituciones:
Ejecuta el siguiente comando:
Linux, macOS o Cloud Shell
gcloud beta container