Questa guida mostra come configurare Autorizzazione binaria per applicare il deployment basato su criteri di servizi e job Cloud Run.
Prima di iniziare
Configura Cloud Run e abilita le API procedendo nel seguente modo:
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud Run, Artifact Registry, Binary Authorization APIs.
-
Install the Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo comando:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud Run, Artifact Registry, Binary Authorization APIs.
-
Install the Google Cloud CLI.
-
Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
-
Per inizializzare gcloud CLI, esegui questo comando:
gcloud init
Vai alla pagina Cloud Run nella console Google Cloud .
Fai clic sul servizio.
Fai clic sulla scheda Sicurezza.
Per abilitare l'applicazione di Autorizzazione binaria sul servizio, fai clic su Abilita.
(Facoltativo) Per configurare la policy di Autorizzazione binaria, fai clic su Configura policy.
Se stai creando un nuovo servizio, salta questo passaggio. Se stai aggiornando un servizio esistente, scarica la relativa configurazione YAML:
gcloud run services describe SERVICE --format export > service.yaml
Aggiorna l'annotazione
run.googleapis.com/binary-authorization:
come segue:apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: run.googleapis.com/binary-authorization: POLICY name: SERVICE spec: template:
Sostituisci quanto segue:
- SERVICE: il nome del tuo Cloud Run
- POLICY: impostato su
default
Sostituisci il servizio con la sua nuova configurazione utilizzando il seguente comando:
Vai alla pagina dei job Cloud Run nella console Google Cloud .
Fai clic sul job per aprire i relativi dettagli.
Fai clic sulla scheda Configuration (Configurazione).
In Autorizzazione binaria, seleziona un criterio dall'elenco.
Fai clic su Applica per abilitare l'applicazione di Autorizzazione binaria sul job.
(Facoltativo) Per configurare la policy di Autorizzazione binaria, fai clic su Configura policy.
JOB_NAME
: il nome del job.POLICY
: la policy che vuoi applicare. Utilizza il valoredefault
per utilizzare il criterio predefinito.Vai alla pagina Cloud Run:
Fai clic su Crea servizio.
Nel modulo Crea servizio :
- Seleziona Cloud Run come piattaforma di sviluppo.
- Seleziona la regione in cui vuoi che si trovi il servizio.
- Inserisci il nome del servizio.
- Fai clic su Avanti per passare alla pagina Configura la prima revisione del servizio.
- Seleziona Esegui il deployment di una revisione da un'immagine container esistente.
- Inserisci o seleziona l'immagine da implementare.
- Espandi la sezione Impostazioni avanzate.
- Fai clic sulla scheda Sicurezza.
Seleziona la casella di controllo Verifica il deployment dei container con Autorizzazione binaria.
(Facoltativo) Fai clic su Configura policy per configurare la policy di Autorizzazione binaria. Per scoprire di più sulla configurazione di un criterio, consulta Configurazione di un criterio.
Esegui il deployment del servizio.
SERVICE_NAME
: un nome per il servizio.IMAGE_URL
: l'immagine di cui vuoi eseguire il deployment.REGION
: la regione in cui vuoi eseguire il deployment del servizio.Crea un nuovo job con Autorizzazione binaria abilitata:
gcloud run jobs create JOB_NAME \ --image IMAGE_URL OPTIONS \ --binary-authorization=POLICY \ --region=REGION
Sostituisci quanto segue:
JOB_NAME
: il nome del job che vuoi creare. Puoi omettere questo parametro, ma ti verrà chiesto il nome del job se lo ometti.POLICY
: la policy che vuoi applicare. Utilizza il valoredefault
per utilizzare il criterio predefinito.- IMAGE_URL: un riferimento all'immagine container, ad esempio
us-docker.pkg.dev/cloudrun/container/job:latest
. REGION
: la regione in cui verrà eseguito questo job.OPTIONS
: una delle opzioni disponibili descritte nella pagina di creazione dei job di Cloud Run.
Attendi il completamento della creazione del job. Al termine dell'operazione, la console mostra un messaggio di operazione riuscita.
Per eseguire il job, consulta Eseguire job o Eseguire job in base a una pianificazione.
Crea un nuovo file
job.yaml
con questi contenuti:apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB annotations: run.googleapis.com/binary-authorization: POLICY spec: template: spec: containers: - image: IMAGE
Sostituisci quanto segue:
- JOB: il nome del job Cloud Run
- IMAGE: l'URL dell'immagine container
- POLICY: impostato su
default
Esegui il deployment del nuovo job utilizzando il seguente comando:
gcloud run jobs replace job.yaml
- Utilizza l'
built-by-cloud-build
per 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.
- Utilizza le attestazioni per eseguire il deployment solo delle immagini container firmate.
- Guarda un video su come utilizzare Autorizzazione binaria in Cloud Run in modo che venga eseguito il deployment solo delle build approvate.
Abilita Autorizzazione binaria su un servizio Cloud Run esistente
Puoi abilitare l'applicazione di Autorizzazione binaria su un servizio esistente. Per attivare l'applicazione dopo averla abilitata, potrebbe essere necessario eseguire il deployment di una revisione o aggiornare il traffico del servizio.
Puoi abilitare l'applicazione dell'autorizzazione binaria su un servizio esistente utilizzando la console Google Cloud o Google Cloud CLI:
Console
gcloud
Attiva Autorizzazione binaria sul servizio e implementalo:
gcloud run services update SERVICE_NAME --binary-authorization=default
Sostituisci SERVICE_NAME
con un nome per il servizio.
YAML
gcloud run services replace service.yaml
Abilitare Autorizzazione binaria su un job Cloud Run esistente
Puoi attivare l'applicazione dell'autorizzazione binaria su un job esistente utilizzando la consoleGoogle Cloud o Google Cloud CLI:
Console
gcloud
Abilita Autorizzazione binaria sul job:
gcloud run jobs update JOB_NAME --binary-authorization=POLICY
Sostituisci quanto segue:
Ti consigliamo di richiedere l'autorizzazione binaria per Cloud Run configurando un criterio dell'organizzazione. L'autorizzazione binaria può essere disabilitata dagli sviluppatori di Cloud Run se il criterio non è configurato.
Visualizza le norme
Per visualizzare le norme, fai clic su Visualizza norme.
Per saperne di più, consulta Configurazione di un criterio di autorizzazione binaria.
Errore di deployment del servizio o del job
Se il deployment del servizio o del job non va a buon fine perché viola le norme di Autorizzazione binaria, potresti visualizzare un errore come il seguente:
Revision REVISION_NAME uses an unauthorized container image. Container image IMAGE_NAME is not authorized by policy.
L'errore contiene anche informazioni sul motivo per cui l'immagine ha violato le norme. In questo caso, puoi utilizzare breakglass per ignorare l'applicazione dei criteri e eseguire il deployment dell'immagine.
Attiva Autorizzazione binaria su un nuovo servizio
Puoi abilitare Autorizzazione binaria su un nuovo servizio utilizzando la console Google Cloud o Google Cloud CLI:
Console
gcloud
Attiva Autorizzazione binaria sul servizio e implementalo:
gcloud run deploy SERVICE_NAME --image=IMAGE_URL --binary-authorization=default --region=REGION
Sostituisci quanto segue:
Attiva Autorizzazione binaria in un nuovo job
Puoi abilitare l'autorizzazione binaria su un nuovo job utilizzando Google Cloud CLI:
gcloud
Quando crei un nuovo job, l'agente di servizio di Cloud Run deve essere in grado di accedere al container, il che avviene per impostazione predefinita.