Usar la comprobación de la actualización de imágenes

En esta página se muestra cómo usar la comprobación de la actualización de imágenes de la validación continua (VC) de la autorización binaria para comprobar la actualización de las imágenes asociadas a los pods que se ejecutan en clústeres de Google Kubernetes Engine (GKE) en los que la VC está habilitada. Para ello, CV comprueba cuándo se subió la imagen al registro de imágenes.

Esta comprobación solo admite repositorios de Artifact Registry y Container Registry.

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
  • Google Kubernetes Engine

Para generar una estimación de costes basada en el uso previsto, utiliza la calculadora de precios.

Antes de empezar

  1. 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.
  2. Install the Google Cloud CLI.

  3. Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

  4. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  5. 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 the resourcemanager.projects.create permission. Learn how to grant roles.
    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with 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_ID with your Google Cloud project name.

  6. Verify that billing is enabled for your Google Cloud project.

  7. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    gcloud services enable artifactregistry.googleapis.com binaryauthorization.googleapis.com cloudbuild.googleapis.com container.googleapis.com
  8. Install the Google Cloud CLI.

  9. Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

  10. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  11. 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 the resourcemanager.projects.create permission. Learn how to grant roles.
    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with 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_ID with your Google Cloud project name.

  12. Verify that billing is enabled for your Google Cloud project.

  13. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    gcloud services enable artifactregistry.googleapis.com binaryauthorization.googleapis.com cloudbuild.googleapis.com container.googleapis.com
  14. Asegúrate de que la CLI de gcloud esté actualizada a la última versión.
  15. Instala la herramienta de línea de comandos kubectl.
  16. 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.
  17. 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 ejecuta los productos en proyectos diferentes, debe asignar roles tal como se describe en esta sección.

    Para asegurarte de que el agente de servicio de autorización binaria del proyecto de la política tenga los permisos necesarios para evaluar la comprobación de la frescura de la imagen de CV, pide a tu administrador que conceda al agente de servicio de autorización binaria del proyecto de la política los siguientes roles de gestión de identidades y accesos:

    • Si el proyecto del clúster es diferente del proyecto de la política, haz lo siguiente: Evaluador de políticas de autorización binaria (roles/binaryauthorization.policyEvaluator) en el agente de servicio de autorización binaria del proyecto del clúster para que pueda acceder al proyecto de la política.
    • Si tu proyecto de Artifact Registry (el proyecto que almacena tus imágenes) es diferente del proyecto de la política: Lector de Artifact Registry (roles/artifactregistry.reader) en el agente de servicio de Binary Authorization del proyecto de la política para que pueda acceder al proyecto de la certificación
    • Si tu proyecto de Artifact Registry es diferente del proyecto de tu clúster, haz lo siguiente: Lector de Artifact Registry (roles/artifactregistry.reader) en el agente de servicio de autorización binaria del proyecto del clúster para que pueda acceder a los metadatos de la imagen en el proyecto de Artifact Registry.

    Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar acceso a proyectos, carpetas y organizaciones.

    Es posible que tu administrador también pueda conceder los permisos necesarios al agente de servicio de autorización binaria del proyecto de la política a través de roles personalizados u otros roles predefinidos.

    Otorgar roles con la CLI de gcloud

    Para asegurarte de que el agente de servicio de Autorización binaria de cada proyecto tiene los permisos necesarios para evaluar esta comprobación, concede los siguientes roles de gestión de identidades y accesos al agente de servicio de Autorización binaria de cada proyecto.

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

    Asigna el rol Evaluador de políticas de autorización binaria (roles/binaryauthorization.policyEvaluator) al agente de servicio de autorización binaria del proyecto del clúster en el proyecto de la 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