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.
Usa proyectos independientes
Habilita Container Scanning y Artifact Registry en el proyecto en el que deseas ejecutar Artifact Registry.
Habilita la API de Cloud Build en los proyectos en los que ejecutas Cloud Build.
Habilita la API de seguridad de contenedores en proyectos en los que ejecutas GKE.
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
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
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
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:
- Visualizador de Cloud Build (
roles/cloudbuild.builds.viewer
): Consulta las estadísticas de una compilación. - Visualizador de casos de Container Analysis (
roles/containeranalysis.occurrences.viewer
): Ve las vulnerabilidades, la procedencia de la compilación y otra información de dependencia. - Visualizador de Cloud Run (
roles/run.viewer
): Consulta las estadísticas de una revisión de Cloud Run. - Visualizador de clústeres de Kubernetes Engine (
roles/container.clusterViewer
): Consulta las estadísticas de un clúster de GKE.
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.
- El escritor de Artifact Registry (
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.
- Lector de Artifact Registry (
- 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?
- Obtén más información sobre los servicios del Escudo de entrega de software en la descripción general
- Obtén información sobre las prácticas de seguridad de la cadena de suministro de software y cómo Software Delivery Shield puede ayudarte a implementarlas.