Controllo dell'accesso con IAM

Per impostazione predefinita, solo i proprietari e gli editor del progetto possono creare, aggiornare, eliminare o richiamare servizi e job. Soltanto i proprietari del progetto e gli amministratori di Cloud Run possono modificare i criteri IAM (ad esempio, Identity and Access Management), per rendere pubblico un servizio. Per maggiori dettagli, consulta i ruoli IAM di Cloud Run.

Per concedere ad altre entità o gruppi la possibilità di eseguire queste azioni, puoi utilizzare IAM per concedere i ruoli a diversi principali.

Controllare l'accesso per un singolo servizio o job

Puoi controllare l'accesso in base al servizio o al job utilizzando IAM.

Rendi pubblico un servizio

Questa opzione è destinata a un servizio Cloud Run ovvero un'API o un sito web pubblici.

Puoi consentire le chiamate non autenticate a un servizio assegnando il ruolo IAM Invoker di Cloud Run al tipo di membri allUsers.

Devi avere l'autorizzazione run.services.setIamPolicy per configurare l'autenticazione su un servizio Cloud Run. Questa autorizzazione è inclusa nei ruoli Proprietario e Amministratore Cloud Run. Consulta la pagina relativa ai ruoli IAM di Cloud Run per l'elenco completo dei ruoli e delle relative autorizzazioni.

Interfaccia utente della console

Per un servizio Cloud Run esistente:

  1. Vai alla console Google Cloud:

    Vai alla console Google Cloud

  2. Fai clic sulla casella di controllo a sinistra del servizio che vuoi rendere pubblico. Non fare clic sul servizio stesso.

  3. Nel riquadro delle informazioni nell'angolo in alto a destra, fai clic sulla scheda Autorizzazioni. Se il riquadro informativo non è visibile, potresti dover fare clic su Mostra riquadro informazioni, quindi su Autorizzazioni.

  4. Fai clic su Aggiungi entità.

Nella casella di testo Nuove entità, inserisci il valore allUsers

  1. Dal menu a discesa Ruolo, seleziona il ruolo Invoker di Cloud Run.

  2. Fai clic su Salva.

  3. Ti verrà chiesto di confermare che vuoi rendere pubblica la risorsa. Fai clic su Consenti accesso pubblico per applicare la modifica alle impostazioni IAM del servizio.

Per un nuovo servizio che stai creando, crea il servizio, ma assicurati di selezionare Consenti chiamate non autenticate nella scheda Autenticazione per rendere il servizio disponibile pubblicamente. Se selezioni Richiedi autenticazione, il servizio sarà privato.

gcloud

Puoi rendere un servizio accessibile pubblicamente aggiungendo lo speciale tipo di membro allUsers a un servizio e concedendo il ruolo roles/run.invoker:

  gcloud run services add-iam-policy-binding [SERVICE_NAME] \
    --member="allUsers" \
    --role="roles/run.invoker"

Inoltre, quando esegui il deployment del tuo servizio con il comando gcloud run deploy, puoi specificare se rendere il servizio accessibile pubblicamente:

gcloud run deploy [SERVICE_NAME] ... --allow-unauthenticated

YAML

Crea un file denominato policy.yaml con i seguenti contenuti:

bindings:
- members:
  - allUsers
  role: roles/run.invoker

Consenti chiamate non autenticate per le SERVICE esistenti utilizzando:

gcloud run services set-iam-policy SERVICE policy.yaml

Terraform

Per creare un servizio Cloud Run, aggiungi quanto segue al file main.tf esistente:

resource "google_cloud_run_service" "default" {
  name     = "cloud-run-srv"
  location = "us-central1"

  template {
    spec {
      containers {
        image = "gcr.io/cloudrun/hello"
      }
    }
  }

  traffic {
    percent         = 100
    latest_revision = true
  }
}

Per aggiornare l'associazione IAM del servizio per roles/run.invoker, aggiungi la seguente risorsa che fa riferimento al tuo servizio Cloud Run:

resource "google_cloud_run_service_iam_binding" "default" {
  location = google_cloud_run_service.default.location
  service  = google_cloud_run_service.default.name
  role     = "roles/run.invoker"
  members = [
    "allUsers"
  ]
}

Questa associazione è autorevole solo per il ruolo specificato. Le altre associazioni IAM all'interno del criterio IAM del servizio vengono mantenute.

Condivisione limitata per i domini

Se il progetto è soggetto al vincolo di condivisione limitata del dominio in un criterio dell'organizzazione, non è possibile creare servizi pubblici per impostazione predefinita. Puoi utilizzare i tag e il criterio condizionale per escludere servizi specifici da questo vincolo. Per maggiori dettagli, consulta il post del blog sulla creazione di servizi pubblici di Cloud Run quando è applicata la condivisione limitata del dominio.

Aggiungi entità

Puoi aggiungere entità a un job o a un servizio.

Aggiungi entità a un servizio

Per aggiungere entità a un servizio:

Interfaccia utente della console

  1. Vai alla console Google Cloud:

    Vai alla console Google Cloud

  2. Fai clic sulla casella di controllo a sinistra del servizio a cui vuoi aggiungere entità. Non fare clic sul servizio stesso.

  3. Nel riquadro delle informazioni nell'angolo in alto a destra, fai clic sulla scheda Autorizzazioni. Se il riquadro informativo non è visibile, potresti dover fare clic su Mostra riquadro informazioni, quindi su Autorizzazioni.

  4. Fai clic su Aggiungi entità.

  5. Nella casella di testo Nuove entità, inserisci una o più identità che devono accedere al tuo servizio.

  6. Dal menu a discesa Ruolo, seleziona uno o più ruoli I ruoli selezionati vengono visualizzati nel riquadro con una breve descrizione delle autorizzazioni concesse.

  7. Fai clic su Salva.

gcloud

Utilizza il comando gcloud run services add-iam-policy-binding:

gcloud run services add-iam-policy-binding SERVICE_NAME \
  --member=MEMBER_TYPE \
  --role=ROLE

dove SERVICE_NAME è il nome del servizio, MEMBER_TYPE è il tipo principale (ad esempio user:email@domain.com) e ROLE è il ruolo.

Per un elenco dei valori accettati per MEMBER_TYPE, consulta la pagina dei concetti IAM. Per un elenco dei valori accettabili per ROLE, consulta i ruoli IAM di Cloud Run.

Aggiungi entità a un job

Per aggiungere entità a un job:

Interfaccia utente della console

  1. Vai alla console Google Cloud:

    Vai alla console Google Cloud

  2. Fai clic sulla casella di controllo a sinistra del job a cui vuoi aggiungere le entità. (non fare clic sul job stesso).

  3. Nel riquadro delle informazioni nell'angolo in alto a destra, fai clic sulla scheda Autorizzazioni. Se il riquadro informativo non è visibile, potresti dover fare clic su Mostra riquadro informazioni, quindi su Autorizzazioni.

  4. Fai clic su Aggiungi entità.

  5. Nella casella di testo Nuove entità, inserisci una o più identità che devono accedere al tuo job.

  6. Dal menu a discesa Ruolo, seleziona uno o più ruoli I ruoli selezionati vengono visualizzati nel riquadro con una breve descrizione delle autorizzazioni concesse.

  7. Fai clic su Salva.

gcloud

Utilizza il comando gcloud run jobs add-iam-policy-binding:

gcloud run jobs add-iam-policy-binding JOB_NAME \
  --member=MEMBER_TYPE \
  --role=ROLE

dove JOB_NAME è il nome del job, MEMBER_TYPE è il tipo di entità (ad esempio user:email@domain.com) e ROLE è il ruolo.

Per un elenco dei valori accettati per MEMBER_TYPE, consulta la pagina dei concetti IAM. Per un elenco dei valori accettabili per ROLE, consulta i ruoli IAM di Cloud Run.

Rimuovi le entità da un ruolo

Puoi rimuovere le entità da un servizio o da un job.

Rimuovi le entità da un ruolo per un servizio

Per rimuovere le entità da un ruolo di un servizio:

Interfaccia utente della console

  1. Vai alla console Google Cloud:

    Vai alla console Google Cloud

  2. Fai clic sulla casella di controllo a sinistra del servizio da cui vuoi rimuovere i servizi. Non fare clic sul servizio stesso.

  3. Nel riquadro delle informazioni nell'angolo in alto a destra, fai clic sulla scheda Autorizzazioni. Se il riquadro informativo non è visibile, potresti dover fare clic su Mostra riquadro informazioni, quindi su Autorizzazioni.

  4. Inserisci l'entità da rimuovere nel filtro dell'elenco dei ruoli, che mostra tutti i ruoli concessi a tale entità.

  5. Fai clic sul cestino Elimina accanto all'entità all'interno del ruolo desiderato per rimuovere quel ruolo dall'entità.

  6. Nella finestra di dialogo di conferma, puoi scegliere di rimuovere l'entità da tutti i ruoli del servizio. Fai clic su Rimuovi per rimuovere l'entità dal ruolo.

gcloud

Utilizza il comando gcloud run services remove-iam-policy-binding:

  gcloud run services remove-iam-policy-binding SERVICE_NAME \
    --member=MEMBER_TYPE \
    --role=ROLE

dove SERVICE_NAME è il nome del servizio, MEMBER_TYPE è il tipo principale (ad esempio user:email@domain.com) e ROLE è il ruolo.

Per un elenco dei valori accettati per MEMBER_TYPE, consulta la pagina dei concetti IAM. Per un elenco dei valori accettabili per ROLE, consulta i ruoli IAM di Cloud Run.

Rimuovi le entità da un ruolo per un job

Per rimuovere le entità da un ruolo per un job:

Interfaccia utente della console

  1. Vai alla console Google Cloud:

    Vai alla console Google Cloud

  2. Fai clic sulla casella di controllo a sinistra del job a cui vuoi aggiungere le entità. (non fare clic sul job stesso).

  3. Nel riquadro delle informazioni nell'angolo in alto a destra, fai clic sulla scheda Autorizzazioni. Se il riquadro informativo non è visibile, potresti dover fare clic su Mostra riquadro informazioni, quindi su Autorizzazioni.

  4. Inserisci l'entità da rimuovere nel filtro dell'elenco dei ruoli, che mostra tutti i ruoli concessi a tale entità.

  5. Fai clic sul cestino Elimina accanto all'entità all'interno del ruolo desiderato per rimuovere quel ruolo dall'entità.

  6. Nella finestra di dialogo di conferma, hai l'opzione per rimuovere l'entità da tutti i ruoli nel job. Fai clic su Rimuovi per rimuovere l'entità dal ruolo.

gcloud

Utilizza il comando gcloud run jobs remove-iam-policy-binding:

  gcloud run jobs remove-iam-policy-binding JOB_NAME \
    --member=MEMBER_TYPE \
    --role=ROLE

dove JOB_NAME è il nome del job, MEMBER_TYPE è il tipo di entità (ad esempio user:email@domain.com) e ROLE è il ruolo.

Per un elenco dei valori accettati per MEMBER_TYPE, consulta la pagina dei concetti IAM. Per un elenco dei valori accettabili per ROLE, consulta i ruoli IAM di Cloud Run.

Aggiunta o rimozione collettiva delle entità

Puoi eseguire un'aggiunta o una rimozione collettiva per i servizi e per i job.

Aggiunta e rimozione in blocco delle entità per i servizi

Per aggiungere o rimuovere un servizio in blocco:

Interfaccia utente della console

  1. Vai alla console Google Cloud:

    Vai alla console Google Cloud

  2. Fai clic sulla casella di controllo a sinistra del servizio a cui vuoi aggiungere entità o da cui vuoi rimuovere le entità. Non fare clic sul servizio stesso.

  3. Seleziona il servizio a cui vuoi aggiungere o rimuovere entità.

  4. Nel riquadro delle informazioni nell'angolo in alto a destra, fai clic sulla scheda Autorizzazioni. Se il riquadro informativo non è visibile, potresti dover fare clic su Mostra riquadro informazioni, quindi su Autorizzazioni.

Se vuoi aggiungere entità:

  1. Fai clic su Aggiungi entità.

  2. Nella casella di testo Nuove entità, inserisci una o più identità che devono accedere al tuo servizio.

  3. Dal menu a discesa Ruolo, seleziona uno o più ruoli. I ruoli selezionati vengono visualizzati nel riquadro con una breve descrizione delle autorizzazioni concesse.

  4. Fai clic su Salva.

Se vuoi rimuovere le entità:

  1. Inserisci l'entità da rimuovere nel filtro dell'elenco dei ruoli, che mostra tutti i ruoli concessi a tale entità.

  2. Fai clic sul cestino Elimina accanto all'entità all'interno del ruolo desiderato per rimuovere quel ruolo dall'entità.

  3. Nella finestra di dialogo di conferma, puoi scegliere di rimuovere l'entità da tutti i ruoli del servizio. Fai clic su Rimuovi per rimuovere l'entità dal ruolo.

gcloud

Crea un criterio IAM:

cat <<EOF > policy.json
{
  "bindings": [
    {
      "role": ROLE,
      "members": [
        MEMBER_TYPE
      ]
    }
  ]
}
EOF

Utilizza il comando gcloud run services set-iam-policy:

gcloud run services set-iam-policy SERVICE_NAME policy.json

Per un elenco dei valori accettati per MEMBER_TYPE, consulta la pagina dei concetti IAM. Per un elenco dei valori accettabili per ROLE, consulta i ruoli IAM di Cloud Run.

Aggiunta e rimozione in blocco delle entità per i job

Per eseguire un'operazione di aggiunta o rimozione collettiva per un job:

Interfaccia utente della console

  1. Vai alla console Google Cloud:

    Vai alla console Google Cloud

  2. Fai clic sulla casella di controllo a sinistra del job a cui vuoi aggiungere le entità. (non fare clic sul job stesso).

  3. Seleziona il job a cui vuoi aggiungere o rimuovere entità.

  4. Nel riquadro delle informazioni nell'angolo in alto a destra, fai clic sulla scheda Autorizzazioni. Se il riquadro informativo non è visibile, potresti dover fare clic su Mostra riquadro informazioni, quindi su Autorizzazioni.

Se vuoi aggiungere entità:

  1. Fai clic su Aggiungi entità.

  2. Nella casella di testo Nuove entità, inserisci una o più identità che devono accedere al tuo servizio.

  3. Dal menu a discesa Ruolo, seleziona uno o più ruoli. I ruoli selezionati vengono visualizzati nel riquadro con una breve descrizione delle autorizzazioni concesse.

  4. Fai clic su Salva.

Se vuoi rimuovere le entità:

  1. Inserisci l'entità da rimuovere nel filtro dell'elenco dei ruoli, che mostra tutti i ruoli concessi a tale entità.

  2. Fai clic sul cestino Elimina accanto all'entità all'interno del ruolo desiderato per rimuovere quel ruolo dall'entità.

  3. Nella finestra di dialogo di conferma, hai l'opzione per rimuovere l'entità da tutti i ruoli nel job. Fai clic su Rimuovi per rimuovere l'entità dal ruolo.

gcloud

Crea un criterio IAM:

cat <<EOF > policy.json
{
  "bindings": [
    {
      "role": ROLE,
      "members": [
        MEMBER_TYPE
      ]
    }
  ]
}
EOF

Utilizza il comando gcloud run jobs set-iam-policy:

gcloud run jobs set-iam-policy JOB_NAME policy.json

Per un elenco dei valori accettati per MEMBER_TYPE, consulta la pagina dei concetti IAM. Per un elenco dei valori accettabili per ROLE, consulta i ruoli IAM di Cloud Run.

Visualizza entità

Puoi visualizzare le entità per servizi e job.

Visualizza le entità per un servizio

Per visualizzare le entità per un servizio:

Interfaccia utente della console

  1. Vai alla console Google Cloud:

    Vai alla console Google Cloud

  2. Fai clic sulla casella di controllo a sinistra del servizio che vuoi visualizzare per i ruoli e i ruoli. Non fare clic sul servizio stesso.

  3. Seleziona il servizio che vuoi visualizzare per le entità e i ruoli.

  4. Nel riquadro delle informazioni nell'angolo in alto a destra, fai clic sulla scheda Autorizzazioni. Se il riquadro informativo non è visibile, potresti dover fare clic su Mostra riquadro informazioni, quindi su Autorizzazioni.

  5. Verranno visualizzati l'elenco dei ruoli e delle entità, raggruppati per ruolo concesso.

gcloud

Utilizza il comando gcloud run services get-iam-policy:

gcloud run services get-iam-policy SERVICE_NAME

Visualizza le entità per un job

Per visualizzare le entità per un job:

Interfaccia utente della console

  1. Vai alla console Google Cloud:

    Vai alla console Google Cloud

  2. Fai clic sulla casella di controllo a sinistra del job a cui vuoi aggiungere le entità. (non fare clic sul job stesso).

  3. Seleziona il job da visualizzare per entità e ruoli.

  4. Nel riquadro delle informazioni nell'angolo in alto a destra, fai clic sulla scheda Autorizzazioni. Se il riquadro informativo non è visibile, potresti dover fare clic su Mostra riquadro informazioni, quindi su Autorizzazioni.

  5. Verranno visualizzati l'elenco dei ruoli e delle entità, raggruppati per ruolo concesso.

gcloud

Utilizza il comando gcloud run jobs get-iam-policy:

gcloud run jobs get-iam-policy JOB_NAME

Controlla l'accesso su tutti i servizi e i job di un progetto

Se vuoi concedere ruoli alle entità su tutti i servizi e i job di un progetto, puoi utilizzare IAM a livello di progetto.

Interfaccia utente della console

  1. Vai alla console Google Cloud:

    Vai alla console Google Cloud

  2. Trova l'entità a cui vuoi concedere un ruolo a livello di progetto.

  3. Fai clic su Modifica Matita sul lato destro della riga dell'entità.

  4. Fai clic su Aggiungi un altro ruolo e scegli il ruolo che preferisci.

  5. Fai clic su Salva.

gcloud

Utilizza il comando gcloud projects add-iam-policy-binding:

gcloud projects add-iam-policy-binding PROJECT_ID \
  --member=MEMBER_TYPE \
  --role=ROLE

dove MEMBER_TYPE è il tipo principale (ad es. user:email@domain.com) e ROLE è il ruolo (ad es. roles/run.admin).

I tipi di entità allUsers e allAuthenticatedUsers non possono essere applicati a livello di progetto e devono essere aggiunti a ogni singolo servizio.

Passaggi successivi

Scopri come autenticare sviluppatori, servizi e utenti ai servizi appena protetti.