Questo documento descrive come abilitare le API per Software Delivery Shield e le autorizzazioni necessarie per visualizzare gli insight sulla sicurezza. Software Delivery Shield è una soluzione completamente gestita per la sicurezza delle catene di fornitura su Google Cloud.
Abilita le API richieste per gli insight
Per raccogliere e visualizzare gli insight relativi alla catena di fornitura del software, sono necessarie le seguenti API:
- l'API Container Analysis per archiviare i metadati che altri servizi Google Cloud generano e utilizzano.
- Container Scanning API per eseguire la scansione delle immagini container archiviate in Artifact Registry per rilevare vulnerabilità e altri metadati. L'abilitazione di questa API attiva automaticamente l'API Container Analysis.
- Artifact Registry per l'archiviazione degli artefatti della build. 1
- Cloud Build per generare metadati di provenienza della build.
- (Solo GKE) L'API Container Security per la scansione dei carichi di lavoro in esecuzione per rilevare eventuali vulnerabilità del sistema operativo.
Devi eseguire l'API Container Scanning nello stesso progetto Google Cloud di Artifact Registry. Puoi eseguire altri servizi Google Cloud che utilizzano il registry in progetti separati.
1 Container Registry viene abilitato automaticamente dall'API Container Scanning. Software Delivery Shield fornisce dati limitati per le funzionalità esistenti e non supporta alcune funzionalità nell'anteprima privata. Se attualmente utilizzi Container Registry, valuta la possibilità di passare ad Artifact Registry.
Per abilitare le API necessarie per generare e visualizzare insight:
Console
Utilizzare tutti i servizi nello stesso progetto
Abilitare insieme le API richieste.
Utilizza progetti separati
Abilita Container Scanning e Artifact Registry nel progetto in cui vuoi eseguire Artifact Registry.
Abilita l'API Cloud Build nei progetti in cui esegui Cloud Build.
Abilita l'API Container Security nei progetti in cui esegui GKE.
Google Cloud CLI
Utilizzare tutti i servizi nello stesso progetto
Abilitare insieme le API richieste.
gcloud services enable containerscanning.googleapis.com \
cloudbuild.googleapis.com \
artifactregistry.googleapis.com \
containersecurity.googleapis.com
Utilizza progetti separati
Abilita Container Scanning e Artifact Registry nel progetto in cui vuoi eseguire Artifact Registry. Sostituisci
AR_PROJECT
con l'ID progetto Google Cloud appropriato.gcloud services enable containerscanning.googleapis.com \ artifactregistry.googleapis.com \ --project=AR_PROJECT
Abilita l'API Cloud Build nei progetti in cui esegui Cloud Build. Sostituisci
BUILD_PROJECT
con l'ID progetto Google Cloud appropriato.gcloud services enable cloudbuild.googleapis.com \ --project=BUILD_PROJECT
Abilita l'API Container Security nei progetti in cui esegui GKE. Sostituisci
GKE_PROJECT
con l'ID progetto Google Cloud appropriato.gcloud services enable containersecurity.googleapis.com \ --project=BUILD_PROJECT
Hai abilitato le API minime richieste per generare e visualizzare insight nei pannelli Software Delivery Shield e nella dashboard della strategia di sicurezza GKE in Google Cloud Console.
Puoi abilitare le API per altri servizi dalla libreria API o dal comando gcloud services enabled.
Concedere autorizzazioni per visualizzare gli insight
Per visualizzare gli insight di Software Delivery Shield in Google Cloud Console, devi disporre dei seguenti ruoli o di un ruolo con autorizzazioni equivalenti:
- Visualizzatore Cloud Build
(
roles/cloudbuild.builds.viewer
): visualizza gli insight per una build. - Visualizzatore occorrenze di Container Analysis
(
roles/containeranalysis.occurrences.viewer
): visualizza vulnerabilità, provenienza della build e altre informazioni sulle dipendenze. - Visualizzatore Cloud Run (
roles/run.viewer
): visualizza gli insight per una revisione di Cloud Run. - Visualizzatore cluster Kubernetes Engine (
roles/container.clusterViewer
): visualizza gli insight per un cluster GKE.
Queste autorizzazioni forniscono accesso agli insight, ma non consentono di eseguire altre azioni come l'esecuzione di build in Cloud Build.
- Per i dettagli sulle autorizzazioni richieste per un servizio specifico, consulta la documentazione di quel servizio.
- Per saperne di più sulla concessione delle autorizzazioni, consulta la documentazione su Identity and Access Management sulla concessione delle autorizzazioni ai progetti.
Per impostazione predefinita, molti servizi dispongono di autorizzazioni predefinite per altri servizi nello stesso progetto, ma non possono accedere alle risorse in un altro progetto. Se esegui servizi in diversi progetti Google Cloud o se utilizzi ruoli IAM o account di servizio personalizzati, devi concedere personalmente le autorizzazioni appropriate.
Esempio 1
Cloud Build, Artifact Registry, Container Analysis e Cloud Run sono tutti in esecuzione nello stesso progetto. Ogni servizio utilizza l'account di servizio predefinito per agire per conto del servizio e le autorizzazioni predefinite rimangono invariate. I servizi possono interagire tutti insieme senza modificare le autorizzazioni, ma è necessario concedere le autorizzazioni agli utenti che devono visualizzare gli insight nel progetto.
- Autorizzazioni tra i servizi
Non sono richieste modifiche:
- L'account di servizio Cloud Build predefinito ha le autorizzazioni per caricare e scaricare con Artifact Registry e leggere i dati di insight da Container Analysis, in modo che il servizio possa firmare immagini container con provenienza di build e inviarle ad Artifact Registry.
- Le revisioni di Cloud Run utilizzano l'account di servizio predefinito di Compute Engine per i deployment, che dispone delle autorizzazioni per scaricare le immagini da Artifact Registry e leggere i dati di insight da Container Analysis.
- Autorizzazioni degli utenti per visualizzare gli approfondimenti
Per visualizzare gli insight, devi concedere agli utenti di Cloud Build e Cloud Run i ruoli obbligatori.
Esempio 2
Quando Artifact Registry e Container Analysis sono in esecuzione in un progetto separato da altri servizi Google Cloud, devi concedere esplicitamente le autorizzazioni per tutte le attività tra progetti. Considera la seguente configurazione del progetto:
- Cloud Build viene eseguito nel progetto A
- Artifact Registry e Container Analysis in esecuzione nel progetto B
- Cloud Run viene eseguito nel progetto C.
- Autorizzazioni tra i servizi
Cloud Build e Cloud Run non possono accedere alle risorse in altri progetti senza concedere esplicitamente l'accesso agli account di servizio che agiscono per conto di questi servizi. Devi concedere le autorizzazioni di Artifact Registry e le autorizzazioni di Container Analysis appropriate nel progetto B, in cui sono archiviati gli artefatti e i metadati degli artefatti.
Per Cloud Build, devi concedere questi ruoli nel progetto B:
- Artifact Registry Writer (
roles/artifactregistry.writer
) concede le autorizzazioni per il caricamento e il download. - Il visualizzatore occorrenze di Container Analysis (
roles/containeranalysis.occurrences.viewer
) concede le autorizzazioni per visualizzare gli insight.
- Artifact Registry Writer (
Per Cloud Run, devi concedere i seguenti ruoli nel progetto B:
- Il lettore Artifact Registry (
roles/artifactregistry.reader
) concede le autorizzazioni per il download dei deployment. - Il visualizzatore occorrenze di Container Analysis (
roles/containeranalysis.occurrences.viewer
) concede le autorizzazioni per visualizzare gli insight.
- Il lettore Artifact Registry (
- Autorizzazioni degli utenti per visualizzare gli approfondimenti
Nel progetto B, devi concedere agli utenti di Cloud Build e Cloud Run i ruoli obbligatori per visualizzare gli insight.
Passaggi successivi
- Scopri di più sui servizi di Software Delivery Shield nella panoramica
- Scopri le pratiche di sicurezza della catena di fornitura del software e in che modo il Software Delivery Shield può aiutarti a implementarle.