Attivare Autorizzazione binaria per Cloud Run

Questa guida mostra come configurare Autorizzazione binaria per applicare il deployment basato su policy dei servizi e dei job Cloud Run.

Prima di iniziare

Configura Cloud Run e abilita le API:

  1. Accedi al tuo Google Cloud account. 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 workload.
  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Cloud Run, Artifact Registry, Binary Authorization APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. Installa Google Cloud CLI.

  6. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  7. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init
  8. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  9. Verify that billing is enabled for your Google Cloud project.

  10. Enable the Cloud Run, Artifact Registry, Binary Authorization APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  11. Installa Google Cloud CLI.

  12. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  13. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init

Abilitare 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 di Autorizzazione binaria su un servizio esistente utilizzando la Google Cloud console o Google Cloud CLI:

Console

  1. Vai alla pagina Cloud Run nella Google Cloud console.

    Vai a Cloud Run

  2. Fai clic sul servizio.

  3. Fai clic sulla scheda Sicurezza.

  4. Per abilitare l'applicazione di Autorizzazione binaria sul servizio, fai clic su Abilita.

  5. (Facoltativo) Per configurare la policy di Autorizzazione binaria, fai clic su Configura policy.

gcloud

Abilita Autorizzazione binaria sul servizio ed esegui il deployment:

gcloud run services update SERVICE_NAME --binary-authorization=default

Sostituisci SERVICE_NAME con un nome per il servizio.

YAML

  1. 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
  2. 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 di Cloud Run
    • POLICY: impostato su default
  3. Sostituisci il servizio con la nuova configurazione utilizzando il seguente comando:

gcloud run services replace service.yaml

Abilitare Autorizzazione binaria su un job Cloud Run esistente

Puoi abilitare l'applicazione di Autorizzazione binaria su un job esistente utilizzando la Google Cloud console o Google Cloud CLI:

Console

  1. Vai alla pagina dei job Cloud Run nella Google Cloud console.

    Vai a Cloud Run

  2. Fai clic sul job per aprirne i dettagli.

  3. Fai clic sulla scheda Configurazione.

  4. In Autorizzazione binaria, seleziona una policy dall'elenco delle policy.

  5. Fai clic su Applica per abilitare l'applicazione di Autorizzazione binaria sul job.

  6. (Facoltativo) Per configurare la policy di Autorizzazione binaria, fai clic su Configura policy.

gcloud

Abilita Autorizzazione binaria sul job:

gcloud run jobs update JOB_NAME --binary-authorization=POLICY

Sostituisci quanto segue:

  • JOB_NAME: il nome del job.
  • POLICY: la policy che vuoi applicare. Utilizza il valore default per utilizzare la policy predefinita.

Ti consigliamo di richiedere Autorizzazione binaria per Cloud Run configurando una policy dell'organizzazione. Autorizzazione binaria può essere disabilitata dagli sviluppatori di Cloud Run se la policy non è configurata.

Visualizzare la policy

Per visualizzare la policy, fai clic su Visualizza policy.

Per ulteriori informazioni, consulta Configurare una policy di Autorizzazione binaria.

Errore di deployment del servizio o del job

Se il deployment del servizio o del job non riesce perché viola la policy di Autorizzazione binaria, potresti visualizzare un errore simile al 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 la policy. In questo caso, puoi utilizzare il deployment di emergenza per ignorare l'applicazione della policy ed eseguire il deployment dell'immagine.

Abilitare Autorizzazione binaria su un nuovo servizio

Puoi abilitare Autorizzazione binaria su un nuovo servizio utilizzando la Google Cloud console o Google Cloud CLI:

Console

  1. Vai alla pagina Cloud Run:

    Vai a Cloud Run

  2. Fai clic su Crea servizio.

  3. Nel modulo Crea servizio :

    1. Seleziona Cloud Run come piattaforma di sviluppo.
    2. Seleziona la regione in cui vuoi che si trovi il servizio.
    3. Inserisci il nome del servizio.
    4. Fai clic su Avanti per continuare alla pagina Configura la prima revisione del servizio.
    5. Seleziona Esegui il deployment di una revisione da un'immagine container esistente.
    6. Inserisci o seleziona l'immagine di cui eseguire il deployment.
    7. Espandi la sezione Impostazioni avanzate.
    8. Fai clic sulla scheda Sicurezza.
    9. Seleziona la casella di controllo Verifica il deployment dei container con Autorizzazione binaria.

    10. (Facoltativo) Fai clic su Configura policy per configurare la policy di Autorizzazione binaria. Per saperne di più sulla configurazione di una policy, consulta Configurare una policy.

    11. Esegui il deployment del servizio.

gcloud

Abilita Autorizzazione binaria sul servizio ed esegui il deployment:

  gcloud run deploy SERVICE_NAME --image=IMAGE_URL --binary-authorization=default --region=REGION

Sostituisci quanto segue:

  • 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.

Abilitare Autorizzazione binaria su un nuovo job

Puoi abilitare Autorizzazione binaria su un nuovo job utilizzando uno dei seguenti metodi:

Console

  1. Vai alla pagina dei job Cloud Run:

    Vai ai job Cloud Run

  2. Fai clic su Crea job per visualizzare il modulo Crea job.

    1. Nel modulo, specifica l'immagine container contenente il codice del job o seleziona un'immagine da un elenco di container di cui è stato eseguito il deployment in precedenza.
    2. Il nome del job viene generato automaticamente dall'immagine container. Puoi modificare o cambiare il nome del job in base alle esigenze. Il nome di un job non può essere modificato dopo la creazione del job.
    3. Seleziona la regione in cui vuoi che si trovi il job.
    4. Specifica il numero di attività che vuoi eseguire nel job. Tutte le attività devono avere esito positivo affinché il job riesca. Per impostazione predefinita, le attività vengono eseguite in parallelo.
  3. Fai clic su Container, variabili e secret, connessioni, sicurezza per impostare proprietà aggiuntive del job.

    • Fai clic sulla scheda Impostazioni. Nella sezione Risorse, configura quanto segue:

      1. Nel menu Memoria, specifica la quantità di memoria richiesta. Il valore predefinito è il minimo richiesto, ovvero 512 MiB.
      2. Nel menu CPU, specifica la quantità di CPU richiesta. Il valore predefinito è il minimo richiesto, ovvero 1 CPU.
    • Nella sezione Capacità attività:

      1. In Timeout attività, specifica la quantità massima di tempo in secondi durante la quale l'attività può essere eseguita, fino a 168 ore (7 giorni). Ogni attività deve essere completata entro il tempo specificato. Il valore predefinito è 10 minuti.

      2. In Numero di nuovi tentativi per attività non riuscita, specifica il numero di nuovi tentativi in caso di errori delle attività. Il valore predefinito è 3 nuovi tentativi.

    • Nella sezione Parallelismo:

      1. Nella maggior parte dei casi puoi selezionare Esegui simultaneamente il maggior numero di attività possibile,.
      2. Se devi impostare un limite inferiore a causa di vincoli di scalabilità sulle risorse a cui accede il job, seleziona Limita il numero massimo di attività simultanee e specifica il numero di attività simultanee nel campo Limite di parallelismo personalizzato.
  4. Al termine della configurazione del job, fai clic su Crea per creare il job in Cloud Run.

  5. Per eseguire il job, consulta Eseguire job o Eseguire job in base a una pianificazione.

gcloud

  1. 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à richiesto il nome del job se lo ometti.
    • POLICY: la policy che vuoi applicare. Utilizza il valore default per utilizzare la policy predefinita.
    • 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 Cloud Run .
  2. Attendi il completamento della creazione del job. Al termine, la console visualizza un messaggio di operazione riuscita.

  3. Per eseguire il job, consulta Eseguire job o eseguire job in base a una pianificazione.

Quando crei un nuovo job, il service agent Cloud Run deve essere in grado di accedere al container, come avviene per impostazione predefinita.

YAML

  1. Crea un nuovo file job.yaml con questo contenuto:

    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
  2. Esegui il deployment del nuovo job utilizzando il seguente comando:

    gcloud run jobs replace job.yaml

Passaggi successivi