Autorizza l'accesso con IAM (1ª gen.)
Utilizza Identity and Access Management (IAM) per autorizzare le identità a eseguire azioni amministrative sulle tue funzioni, come la creazione, l'aggiornamento e l'eliminazione. Aggiungi le entità (le identità che vuoi attivare, di solito un utente o un indirizzo email di un service account) alla funzione, quindi concedi a queste entità i ruoli IAM appropriati. Questi ruoli includono autorizzazioni che definiscono le azioni che le entità possono eseguire.
Attivazione dell'accesso a una funzione
Puoi controllare le azioni su una funzione concedendo o limitando i ruoli a singole identità tramite IAM.
Aggiunta di entità e concessione dei ruoli
Console
Vai alla console Google Cloud :
Fai clic sulla casella di controllo accanto alla funzione che ti interessa.
Fai clic su Autorizzazioni nella parte superiore della schermata. Si apre il riquadro Autorizzazioni.
Fai clic su Aggiungi entità.
Nel campo Nuove entità, inserisci una o più identità che devono accedere alla tua funzione. Di solito si tratta di un'email di un utente o di un service account.
Seleziona uno o più ruoli dal menu a discesa Seleziona un ruolo. I ruoli selezionati vengono visualizzati nel riquadro con una breve descrizione delle autorizzazioni che concedono.
Fai clic su Salva.
gcloud
Utilizza il comando gcloud functions add-iam-policy-binding:
gcloud functions add-iam-policy-binding FUNCTION_NAME \ --member=PRINCIPAL_ID \ --role=ROLE
dove FUNCTION_NAME è il nome della funzione, PRINCIPAL_ID è l'identificatore dell'entità (di solito un'email) e ROLE è il ruolo.
Per un elenco delle origini che possono fornire un PRINCIPAL_ID, consulta Identificatori delle entità.
Per un elenco di valori accettabili per ROLE, consulta
la pagina di riferimento dei ruoli IAM di Cloud Run Functions.
Rimozione dei ruoli dalle entità
Console
Vai alla console Google Cloud :
Fai clic sulla casella di controllo accanto alla funzione che ti interessa.
Fai clic su Autorizzazioni nella parte superiore della schermata. Si apre il riquadro Autorizzazioni.
Cerca l'entità che vuoi rimuovere. Cerca in ogni ruolo concesso all'entità.
Quando trovi l'entità nel ruolo che vuoi eliminare, fai clic sull'icona del cestino corrispondente. Se vuoi rimuovere completamente l'accesso dell'entità, esegui questa operazione per ogni ruolo concesso all'entità.
gcloud
Utilizza il comando gcloud functions remove-iam-policy-binding:
gcloud functions remove-iam-policy-binding FUNCTION_NAME \ --member=PRINCIPAL_ID \ --role=ROLE
dove FUNCTION_NAME è il nome della funzione,
PRINCIPAL_ID è l'indirizzo email che identifica
il service account, preceduto da serviceAccount:,
e ROLE è il ruolo.
Per un elenco delle origini accettabili per PRINCIPAL_ID, consulta
Identificatori delle entità.
Per un elenco dei possibili valori di ROLE, consulta
la pagina di riferimento dei ruoli IAM di Cloud Run Functions.
Se all'entità sono stati concessi più ruoli, assicurati di specificare quello che vuoi rimuovere.
Aggiunta collettiva di entità
Console
Vai alla console Google Cloud :
Fai clic sulle caselle di controllo accanto alle funzioni per le quali vuoi concedere o limitare l'accesso.
Fai clic su Autorizzazioni nella parte superiore della schermata. Si apre il riquadro Autorizzazioni.
Per aggiungere entità:
Fai clic su Aggiungi entità.
Nel campo Nuove entità, inserisci più identità che devono accedere alla tua funzione.
Seleziona uno o più ruoli dal menu a discesa Seleziona un ruolo. I ruoli selezionati vengono visualizzati nel riquadro con una breve descrizione delle autorizzazioni che concedono.
Fai clic su Salva.
gcloud
Crea una policy IAM denominata, ad esempio policy.json:
{ "bindings": [ { "role": ROLE, "members": [ PRINCIPAL_ID ] } ] }
Utilizza il comando gcloud functions set-iam-policy:
gcloud functions set-iam-policy FUNCTION_NAME policy.json
Per un elenco delle origini accettabili per PRINCIPAL_ID, consulta
Identificatori delle entità.
Per un elenco di valori accettabili per ROLE, consulta
la pagina di riferimento dei ruoli IAM di Cloud Run Functions.
Visualizzazione delle entità
Console
Vai alla console Google Cloud :
Fai clic sul nome della funzione che ti interessa.
Seleziona la scheda Autorizzazioni. Si apre il riquadro Autorizzazioni.
Seleziona la scheda Visualizza per entità per visualizzare un elenco di tutte le entità con autorizzazioni per la funzione selezionata.
gcloud
Utilizza il comando gcloud functions get-iam-policy:
gcloud functions get-iam-policy FUNCTION_NAME
Consentire la chiamata di funzioni HTTP non autenticate
A partire dal 15 gennaio 2020, le funzioni HTTP per cui non è abilitata l'opzione Consenti chiamate non autenticate limitano l'accesso per utenti finali e service account che non dispongono delle autorizzazioni appropriate.
Per consentire le chiamate non autenticate, devi specificarlo durante o dopo il deployment.
Utilizzi una variante speciale dell'approccio descritto in precedenza per concedere agli autori di chiamate non autenticati la possibilità di chiamare una funzione HTTP.
Al momento del deployment
Console
Seleziona Consenti chiamate non autenticate nella sezione Autenticazione del riquadro Trigger.
gcloud
Il comando gcloud functions deploy include un prompt per aiutarti a configurare le autorizzazioni di chiamata durante la creazione della funzione. Può anche includere il flag --allow-unauthenticated:
gcloud functions deploy FUNCTION_NAME \ --no-gen2 \ --trigger-http \ --allow-unauthenticated \ ...
Le implementazioni successive della stessa funzione non ne modificano lo stato, anche se non utilizzi questo flag.
Dopo il deployment
Per consentire la chiamata non autenticata di una funzione, concedi il ruolo Cloud Functions Invoker all'entità speciale allUsers nella funzione:
Console
Vai alla console Google Cloud :
Fai clic sulla casella di controllo accanto alla funzione ricevente. Non fare clic sulla funzione stessa.
Fai clic su Autorizzazioni nella parte superiore della schermata. Si apre il riquadro Autorizzazioni.
Fai clic su Aggiungi entità.
Nel campo Nuove entità, digita
allUsers.Seleziona il ruolo Cloud Functions > Cloud Functions Invoker dal menu a discesa Seleziona un ruolo.
In risposta alla finestra di dialogo, fai clic su Consenti accesso pubblico.
gcloud
Utilizza il comando gcloud functions add-iam-policy-binding per concedere il ruolo roles/cloudfunctions.invoker all'entità speciale allUsers nella funzione:
gcloud functions add-iam-policy-binding FUNCTION_NAME \ --member="allUsers" \ --role="roles/cloudfunctions.invoker"
Per ulteriori informazioni su questi campi, consulta il
riferimento gcloud functions add-iam-policy-binding.
Condivisione limitata dei domini
Se sviluppi funzioni in un progetto soggetto alla policy dell'organizzazione Condivisione limitata dei domini, non potrai consentire la chiamata non autenticata di una funzione. Queste policy limitano la condivisione pubblica dei dati per ridurre il rischio di esfiltrazione dei dati.
Se vuoi eseguire il deployment di funzioni che consentono le chiamate non autenticate, ti consigliamo di rimuovere la policy dell'organizzazione Condivisione limitata dei domini nel progetto. Le policy dell'organizzazione possono essere impostate a livello di organizzazione, cartella o progetto.
Una volta create le funzioni che consentono la chiamata non autenticata, la policy dell'organizzazione può essere abilitata di nuovo:
- Le funzioni di cui è stato eseguito il deployment prima della nuova abilitazione della policy dell'organizzazione continueranno a consentire la chiamata non autenticata.
- È possibile eseguire il deployment di nuove versioni di queste funzioni esistenti senza richiedere la chiamata autenticata.
- Non è possibile eseguire il deployment di nuove funzioni che consentono chiamate non autenticate.
Controllo dell'accesso a tutte le funzioni di un progetto
Se vuoi concedere ruoli per tutte le funzioni di un progetto, puoi concederli livello di progetto.