Configura una policy di Autorizzazione binaria con Cloud Run
Questa guida rapida mostra come configurare e testare una regola di base in un criterio di Autorizzazione binaria con Cloud Run.
In questa guida rapida, utilizzi l'autorizzazione binaria per controllare il deployment di un servizio Cloud Run.
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 senza costi per l'esecuzione, il test e il deployment dei carichi di lavoro.
-
In the Google Cloud console, on the project selector page, select or create 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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Run, Artifact Registry, Binary Authorization APIs, if any are not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init -
In the Google Cloud console, on the project selector page, select or create 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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Run, Artifact Registry, Binary Authorization APIs, if any are not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
Crea un servizio con Autorizzazione binaria abilitata
Per creare un servizio Cloud Run con l'autorizzazione binaria attivata, procedi nel seguente modo:
Fai clic su Crea servizio per visualizzare il modulo Crea servizio:
Nel modulo visualizzato, segui questi passaggi:
- Seleziona Cloud Run come piattaforma di sviluppo.
- Seleziona la regione in cui vuoi che si trovi il servizio.
- Specifica il nome che vuoi assegnare al servizio, ad esempio
test-service. Fai clic su Avanti per passare alla pagina Configura la prima revisione del servizio.
Nel modulo, esegui le seguenti operazioni:
- Seleziona Esegui il deployment di una revisione da un'immagine container esistente.
Utilizza
us-docker.pkg.dev/cloudrun/container/hellocome immagine container.Espandi la sezione Impostazioni avanzate.
Fai clic sulla scheda Sicurezza.
Seleziona la casella di controllo Verifica il deployment dei container con Autorizzazione binaria:
Per impostazione predefinita, la policy di Autorizzazione binaria consente il deployment di tutte le immagini.
Fai clic su Avanti per continuare alla pagina Configura il funzionamento del trigger per questo servizio:
Seleziona Consenti l'accesso pubblico per poter aprire il risultato nel browser web.
Fai clic su Crea per eseguire il deployment dell'immagine in Cloud Run e attendi il completamento del deployment.
Il servizio è stato implementato. Le revisioni sono soggette all'applicazione delle policy di Autorizzazione binaria.
Aggiorna la policy di Autorizzazione binaria per non consentire tutte le immagini
La policy di Autorizzazione binaria contiene una regola predefinita. Questa regola disciplina il deployment del servizio Cloud Run che hai appena creato.
Per impostazione predefinita, la regola consente il deployment di tutte le immagini container.
Per visualizzare la policy predefinita:
-
Fai clic su Modifica policy.
In Regola predefinita del progetto, nota che l'opzione Consenti tutte le immagini è selezionata.
Ora, modifica la policy per impedire il deployment di tutte le immagini procedendo come segue:
Vai alla pagina Autorizzazione binaria nella console Google Cloud .
Fai clic su Modifica policy.
In Regola predefinita, seleziona Non consentire tutte le immagini.
Fai clic su Save Policy (Salva criterio).
Esegui nuovamente il deployment del servizio.
Testa la policy aggiornata eseguendo il deployment di una nuova revisione.
Per eseguire il deployment dell'immagine:
Fai clic sul nome del servizio di cui hai eseguito il deployment in precedenza in questa guida.
Fai clic su Modifica ed esegui il deployment di una nuova revisione.
Fai clic su Esegui il deployment.
Viene visualizzato un messaggio di errore simile al seguente:
Service update rejected by Binary Authorization policy: RevisionREVISIONuses unauthorized container image. Container image 'us-docker.pkg.dev/cloudrun/container/hello@SHA' is not authorized by policy. Denied by an ALWAYS_DENY admission rule
Reimpostare il criterio per consentire tutte le immagini
Per reimpostare il criterio in modo da consentire tutte le immagini:
Vai alla pagina Autorizzazione binaria nella console Google Cloud .
Fai clic su Modifica policy.
Seleziona Consenti tutte le immagini.
Per salvare la norma, fai clic su Salva norma.
Ora puoi eseguire il deployment delle immagini.
Esegui la pulizia
Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questa pagina, segui questi passaggi.
Per eliminare il servizio creato in Cloud Run, segui questi passaggi:
Individua il servizio che vuoi eliminare nell'elenco dei servizi e fai clic sulla relativa casella di controllo per selezionarlo.
Fai clic su Elimina. Vengono eliminate tutte le revisioni del servizio.
Per disattivare Autorizzazione binaria, consulta Disattivazione di Autorizzazione binaria.
Passaggi successivi
Utilizza breakglass per ignorare l'applicazione di Autorizzazione binaria.
Utilizza il programma di attestazione
built-by-cloud-buildper eseguire il deployment solo delle immagini create da Cloud Build.Configura il criterio di autorizzazione binaria utilizzando la Google Cloud console o lo strumento a riga di comando.
Visualizza gli eventi di Autorizzazione binaria per Cloud Run in Cloud Audit Logs.