Cómo comenzar a usar Software Delivery Shield

En este documento, se describe cómo habilitar las API para Software Delivery Shield y los permisos necesarios a fin de ver las estadísticas de seguridad. Software Delivery Shield es una solución de seguridad de cadena de suministro de software completamente administrada en Google Cloud.

Habilitar las API necesarias para obtener estadísticas

Para recopilar y ver estadísticas de la cadena de suministro de software, se requieren las siguientes API:

  • API de Container Analysis para almacenar metadatos que otros servicios de Google Cloud generan y usan.
  • API de Container Scanning para analizar imágenes de contenedor almacenadas en Artifact Registry en busca de vulnerabilidades y otros metadatos Si habilitas esta API, se habilitará automáticamente la API de Container Analysis.
  • Artifact Registry para almacenar tus artefactos de compilación. 1
  • Cloud Build para generar metadatos de origen de compilación.
  • La API de Container Security para analizar las cargas de trabajo en ejecución en busca de vulnerabilidades del SO (solo GKE).

Debes ejecutar la API de Container Scanning en el mismo proyecto de Google Cloud que Artifact Registry. Puedes ejecutar otros servicios de Google Cloud que usan el registro en proyectos diferentes.

1 La API de Container Scanning habilita automáticamente Container Registry. Software Delivery Shield proporciona datos limitados para las funciones existentes y no admite algunas funciones en la vista previa privada. Si actualmente usas Container Registry, considera hacer la transición a Artifact Registry.

A fin de habilitar las API necesarias para generar y ver estadísticas, haz lo siguiente:

Consola

Usa todos los servicios del mismo proyecto

Habilita las API obligatorias juntas.

Habilita las API

Usa proyectos independientes

  1. Habilita Container Scanning y Artifact Registry en el proyecto en el que deseas ejecutar Artifact Registry.

    Habilita las API

  2. Habilita la API de Cloud Build en los proyectos en los que ejecutas Cloud Build.

    Habilita Cloud Build

  3. Habilita la API de seguridad de contenedores en proyectos en los que ejecutas GKE.

    Habilita la seguridad de los contenedores

Google Cloud CLI

Usa todos los servicios del mismo proyecto

Habilita las API obligatorias juntas.

gcloud services enable containerscanning.googleapis.com \
    cloudbuild.googleapis.com \
    artifactregistry.googleapis.com \
    containersecurity.googleapis.com

Usa proyectos independientes

  1. Habilita Container Scanning y Artifact Registry en el proyecto en el que deseas ejecutar Artifact Registry. Reemplaza AR_PROJECT por el ID del proyecto de Google Cloud que corresponda.

    gcloud services enable containerscanning.googleapis.com \
        artifactregistry.googleapis.com \
        --project=AR_PROJECT
    
  2. Habilita la API de Cloud Build en los proyectos en los que ejecutas Cloud Build. Reemplaza BUILD_PROJECT por el ID del proyecto de Google Cloud que corresponda.

    gcloud services enable cloudbuild.googleapis.com \
        --project=BUILD_PROJECT
    
  3. Habilita la API de seguridad de contenedores en proyectos en los que ejecutas GKE. Reemplaza GKE_PROJECT por el ID del proyecto de Google Cloud que corresponda.

    gcloud services enable containersecurity.googleapis.com \
         --project=BUILD_PROJECT
    

Habilitaste las API mínimas necesarias para generar y ver estadísticas en los paneles del Escudo de entrega de software y en el panel de postura de seguridad de GKE en Google Cloud Console.

Puedes habilitar las API para otros servicios desde la biblioteca de API o el comando gcloud services enable.

Otorga permisos para ver estadísticas

Para ver las estadísticas del Escudo de entrega de software en Google Cloud Console, debes tener las siguientes funciones o una función con permisos equivalentes:

Estos permisos proporcionan acceso a las estadísticas, pero no lo hacen para realizar otras acciones, como la ejecución de compilaciones en Cloud Build.

  • Si quieres obtener detalles sobre los permisos necesarios para un servicio específico, consulta la documentación de ese servicio.
  • Para obtener información sobre cómo otorgar permisos, consulta la documentación de la administración de identidades y accesos en Otorga permisos a los proyectos.

De forma predeterminada, muchos servicios tienen permisos predeterminados para otros servicios en el mismo proyecto, pero no pueden acceder a los recursos en otro proyecto. Si ejecutas servicios en diferentes proyectos de Google Cloud o si usas funciones de IAM o cuentas de servicio personalizadas, debes otorgar los permisos adecuados por tu cuenta.

Ejemplo 1

Cloud Build, Artifact Registry, Container Analysis y Cloud Run se ejecutan en el mismo proyecto. Cada servicio usa la cuenta de servicio predeterminada para actuar en nombre del servicio, y los permisos predeterminados no se modifican. Todos los servicios pueden funcionar en conjunto sin cambios en los permisos, pero debes otorgar permisos a los usuarios que necesiten ver las estadísticas del proyecto.

Permisos entre servicios

No se requieren cambios:

  • La cuenta de servicio predeterminada de Cloud Build tiene permisos para subir y descargar contenido con Artifact Registry y leer datos de estadísticas de Container Analysis a fin de que el servicio pueda firmar imágenes de contenedor con procedencia de compilación y enviarlas a Artifact Registry.
  • Las revisiones de Cloud Run usan la cuenta de servicio predeterminada de Compute Engine para implementaciones, que tienen permisos a fin de descargar imágenes de Artifact Registry y leer datos de estadísticas desde Container Analysis.
Permisos de usuario para ver estadísticas

Debes otorgar a los usuarios de Cloud Build y Cloud Run las funciones necesarias para ver las estadísticas.

Ejemplo 2

Cuando Artifact Registry y Container Analysis se ejecutan en un proyecto separado de otros servicios de Google Cloud, debes otorgar permisos de forma explícita para toda la actividad entre proyectos. Considera la siguiente configuración del proyecto:

  • Cloud Build se ejecuta en el proyecto A
  • Artifact Registry y Container Analysis se ejecutan en el proyecto B
  • Cloud Run se ejecuta en el proyecto C
Permisos entre servicios

Cloud Build y Cloud Run no pueden acceder a los recursos en otros proyectos sin otorgar acceso explícito a las cuentas de servicio que actúan en nombre de estos servicios. Debes otorgar los permisos de Artifact Registry y los permisos de Container Analysis adecuados en el proyecto B, en el que se almacenan los artefactos y los metadatos de los artefactos.

Para Cloud Build, debes otorgar estas funciones en el proyecto B:

  • El escritor de Artifact Registry (roles/artifactregistry.writer) otorga permisos para subir y descargar.
  • El visualizador de casos de Container Analysis (roles/containeranalysis.occurrences.viewer) otorga permisos para mostrar estadísticas.

Para Cloud Run, debes otorgar estas funciones en el proyecto B:

  • Lector de Artifact Registry (roles/artifactregistry.reader) otorga permisos para descargar implementaciones.
  • El visualizador de casos de Container Analysis (roles/containeranalysis.occurrences.viewer) otorga permisos para mostrar estadísticas.
Permisos de usuario para ver estadísticas

En el proyecto B, debes otorgar a los usuarios de Cloud Build y Cloud Run las estadísticas de la vista de funciones necesarias.

¿Qué sigue?