Esegui il deployment su Cloud Run e visualizza insight sulla sicurezza
Questa guida rapida spiega come eseguire il deployment di un'immagine container in Cloud Run. visualizzare insight sulla sicurezza per il deployment in Software Delivery Shield Riquadro Sicurezza nella console Google Cloud. Imparerai a:
- Eseguire il deployment di un'immagine in Cloud Run utilizzando Cloud Deploy. Cloud Deploy è un servizio Google Cloud che automatizza la distribuzione delle tue applicazioni a una serie di ambienti di destinazione in una promozione definita sequenza.
Visualizza i seguenti insight sulla sicurezza per il deployment:
- Informazioni su identità e crittografia per il deployment.
- Livello della catena di fornitura per gli artefatti software (SLSA), che identifica il livello di garanzia del deployment.
- Vulnerabilità negli artefatti della build.
- Distinta dei materiali del software (SBOM) per gli artefatti della build.
- Provenienza build, ovvero una raccolta di metadati verificabili relativi a una build. Include dettagli come la sintesi delle immagini create, l'input le località di origine, la toolchain di creazione, i passaggi e la durata della build.
Prima di iniziare
- Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
- Installa Google Cloud CLI.
-
Per initialize gcloud CLI, esegui questo comando:
gcloud init
-
Create or select a Google Cloud project.
-
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.
-
-
Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.
-
Abilita le API Cloud Build, Artifact Registry, Cloud Deploy, Cloud Run, and Container Scanning.
gcloud services enable cloudbuild.googleapis.com
artifactregistry.googleapis.com clouddeploy.googleapis.com run.googleapis.com containerscanning.googleapis.com - Installa Google Cloud CLI.
-
Per initialize gcloud CLI, esegui questo comando:
gcloud init
-
Create or select a Google Cloud project.
-
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.
-
-
Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.
-
Abilita le API Cloud Build, Artifact Registry, Cloud Deploy, Cloud Run, and Container Scanning.
gcloud services enable cloudbuild.googleapis.com
artifactregistry.googleapis.com clouddeploy.googleapis.com run.googleapis.com containerscanning.googleapis.com
Configura le impostazioni predefinite
Imposta una variabile di ambiente per l'ID progetto:
export PROJECT_ID=$(gcloud config get project)
Imposta la regione predefinita per Cloud Deploy:
gcloud config set deploy/region us-central1
Concedi l'accesso
Concedi i ruoli IAM all'account di servizio Compute Engine predefinito. Obbligatorio per Cloud Deploy per il deployment dei carichi di lavoro in Cloud Run.
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member=serviceAccount:$(gcloud projects describe $PROJECT_ID \
--format="value(projectNumber)")-compute@developer.gserviceaccount.com \
--role="roles/clouddeploy.jobRunner"
gcloud iam service-accounts add-iam-policy-binding $(gcloud projects describe $PROJECT_ID \
--format="value(projectNumber)")-compute@developer.gserviceaccount.com \
--member=serviceAccount:$(gcloud projects describe $PROJECT_ID \
--format="value(projectNumber)")-compute@developer.gserviceaccount.com \
--role="roles/iam.serviceAccountUser" \
--project=$PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \
--member=serviceAccount:$(gcloud projects describe $PROJECT_ID \
--format="value(projectNumber)")-compute@developer.gserviceaccount.com \
--role="roles/run.developer"
Se hai difficoltà ad aggiungere uno di questi ruoli, contatta l'amministratore del progetto.
Crea un repository Docker in Artifact Registry
Crea un nuovo repository Docker denominato
containers
nella localitàus-central1
con la descrizione "Docker repository" (Repository Docker):gcloud artifacts repositories create containers --repository-format=docker \ --location=us-central1 --description="Docker repository"
Verifica che il repository sia stato creato:
gcloud artifacts repositories list
Dovresti vedere
containers
nell'elenco di repository.
Prepara l'applicazione di esempio
Per la creazione e il deployment, avrai bisogno di un codice sorgente di esempio. In questa sezione, clonerai un repository di codice sorgente esistente contenente un esempio di codice Java.
Clona il repository che contiene l'esempio di codice Java:
git clone https://github.com/googlecloudplatform/software-delivery-shield-demo-java.git cd software-delivery-shield-demo-java/backend
Aggiorna
cloudrun.clouddeploy.yaml
per sostituirePROJECT_ID
con il tuo ID progetto:sed -i "s/PROJECT_ID/${PROJECT_ID}/g" cloudrun.clouddeploy.yaml
Crea l'applicazione
Crea e containerizza l'applicazione Java utilizzando Cloud Build. La il seguente comando crea e containerizza l'applicazione Java e archivia nel repository Docker di Artifact Registry:
gcloud builds submit --config=cloudbuild.yaml --region=us-central1
Al termine della build, verrà visualizzato un messaggio di stato dell'operazione riuscita simile al seguenti:
DONE ----------------------------------------------------------------------------- ID: 3e08565f-7f57-4449-bc68-51c46cf33d03 CREATE_TIME: 2022-09-19T15:41:07+00:00 DURATION: 54S SOURCE: gs://sds-docs-project_cloudbuild/source/1663602066.777581-6ebe4b2d6fd741ffa18936d7f78055e9.tgz IMAGES: us-central1-docker.pkg.dev/sds-docs-project/containers/java-guestbook-backend:quickstart STATUS: SUCCESS
Genera SBOM per l'immagine creata
Un SBOM è l'inventario completo di un'applicazione, che identifica i pacchetti su cui si basa il tuo software. I contenuti possono includere software di terze parti da fornitori, artefatti interni e librerie open source.
Genera l'SBOM per l'immagine creata nella sezione precedente:
gcloud artifacts sbom export \
--uri=us-central1-docker.pkg.dev/${PROJECT_ID}/containers/java-guestbook-backend:quickstart
Esegui il deployment del container su Cloud Run utilizzando Cloud Deploy
Registra la pipeline e i target con il servizio Cloud Deploy:
gcloud deploy apply --file cloudrun.clouddeploy.yaml
Ora hai una pipeline, con dei target, pronta per il deployment dell'applicazione sul tuo primo target.
Per verificare l'esistenza della tua pipeline, vai alla pagina Pipeline di distribuzione nella console Google Cloud:
Apri la pagina Pipeline di distribuzione
La pipeline di distribuzione che hai appena creato,
cloudrun-guestbook-backend-delivery
.Fai clic su
cloudrun-guestbook-backend-delivery
per monitorare l'avanzamento. La Si apre la pagina Dettagli pipeline di distribuzione.In Cloud Shell, crea una release in Cloud Deploy:
gcloud deploy releases create test-release-007 \ --delivery-pipeline=cloudrun-guestbook-backend-delivery \ --skaffold-file=cloudrun.skaffold.yaml \ --images=java-guestbook-backend=us-central1-docker.pkg.dev/${PROJECT_ID}/containers/java-guestbook-backend:quickstart
La nuova release viene visualizzata nella sezione Uscite della scheda Pubblicazione dei dettagli della pipeline.
Monitora la vista Visualizzazione pipeline nella pipeline di distribuzione dettagli finché non viene visualizzato il pulsante Promuovi per
dev-cluster
. Tu potrebbe essere necessario aggiornare la pagina.Nel primo target nella visualizzazione della pipeline di distribuzione,
cloudrun-dev
, fai clic su Promuovi.Viene mostrata la finestra di dialogo Promuovi release. Mostra i dettagli del target a cui promuovi l'account.
Fai clic su Promuovi.
La release è ora in coda per il deployment in
cloudrun-prod
. Quando il deployment completato, la visualizzazione della pipeline di distribuzione mostra l'esecuzione del deployment:
Visualizza insight sulla sicurezza in Cloud Deploy
Apri la pagina Pipeline di distribuzione di Cloud Deploy nella nella console Google Cloud.
Nella tabella Pipeline di distribuzione, fai clic su cloudrun-guestbook-backend-delivery.
Nella pagina Dettagli pipeline di distribuzione, fai clic su test-release-008.
Nella pagina Dettagli sulla release, fai clic sulla scheda Artefatti.
Nella tabella Crea artefatti, individua la riga con l'artefatto java-guestbook-backend, e nella colonna Approfondimenti sulla sicurezza corrispondente fai clic su Visualizza.
Viene visualizzato il riquadro Sicurezza di Software Delivery Shield per l'implementazione.
In questo riquadro vengono visualizzate le seguenti informazioni:
Livello SLSA: questa build ha raggiunto il livello 3 SLSA. Fai clic sul pulsante Scopri di più link per scoprire cosa significa questo livello di sicurezza.
Vulnerabilità: eventuali vulnerabilità trovate nei tuoi artefatti. Fai clic sull' (java-guestbook-backend) per vedere gli artefatti che sono stati vengono analizzati alla ricerca di vulnerabilità.
Dipendenze per gli artefatti della build.
Dettagli build:i dettagli della build, ad esempio il builder e il link a e visualizzare i log.
Visualizza insight sulla sicurezza in Cloud Run
Apri la pagina Servizi di Cloud Run.
Nella tabella Servizi Cloud Run, fai clic su guestbook-backend-prod.
Nella pagina Dettagli servizio, fai clic su Revisioni.
Nel riquadro Revisioni, fai clic su Sicurezza.
Viene visualizzato il riquadro Sicurezza di Software Delivery Shield per l'implementazione.
In questo riquadro vengono visualizzate le seguenti informazioni:
Identità e crittografia:l'indirizzo email dell'ambiente Compute Engine predefinito. l'account di servizio e la chiave di crittografia usata per il deployment.
Livello SLSA: questa build ha raggiunto il livello 3 SLSA. Fai clic sul pulsante Scopri di più link per scoprire cosa significa questo livello di sicurezza.
Vulnerabilità: eventuali vulnerabilità trovate nei tuoi artefatti. Fai clic sull' (java-guestbook-backend) per vedere gli artefatti che sono stati vengono analizzati alla ricerca di vulnerabilità.
Dipendenze per gli artefatti della build.
Dettagli build:i dettagli della build, ad esempio il builder e il link a e visualizzare i log.
Esegui la pulizia
Per evitare che al tuo account Google Cloud vengano addebitati costi per le risorse utilizzate in questa pagina, elimina il progetto Google Cloud Google Cloud.
Disabilita l'API Container Scanning:
gcloud services disable containerscanning.googleapis.com --force
Elimina il servizio Cloud Run
guestbook-backend-dev
:gcloud run services delete guestbook-backend-dev --region=us-central1 \ --project=${PROJECT_ID}
Elimina il servizio
guestbook-backend-prod
:gcloud run services delete guestbook-backend-prod --region=us-central1 \ --project=${PROJECT_ID}
Elimina la pipeline di distribuzione, incluse la release e le implementazioni:
gcloud deploy delivery-pipelines delete cloudrun-guestbook-backend-delivery \ --force --region=us-central1 --project=${PROJECT_ID}
Questo comando elimina la pipeline di distribuzione stessa, oltre a tutti i
release
erollout
risorse Sicurezza della catena di fornitura del software creata per quella pipeline.Elimina il repository Artifact Registry:
gcloud artifacts repositories delete containers \ --location=us-central1 --async
Hai completato questa guida rapida.
Passaggi successivi
- Scopri di più sulle Riquadro degli insight sulla sicurezza di Software Delivery Shield in Cloud Run.
- Scopri come visualizzare gli insight sulla sicurezza durante il deployment in GKE.
- Scopri come visualizzare gli approfondimenti sulla sicurezza per le build.
- Scopri di più su Software Delivery Shield.