Autorizza l'accesso con IAM (1ª generazione.)
Utilizzi Identity and Access Management (IAM) per autorizzare le identità a eseguire azioni amministrative sulle tue funzioni, come crearle, aggiornarle ed eliminarle. Aggiungi entità (le identità che vuoi attivare, in genere un indirizzo email di un utente o di un account di servizio) alla funzione e poi concedi a queste entità i ruoli IAM appropriati. Questi ruoli includono le autorizzazioni che definiscono le azioni che possono eseguire.
Attivare l'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 di 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 dello schermo. Viene visualizzato il riquadro Autorizzazioni.
Fai clic su Aggiungi entità.
Nel campo Nuove entità, inserisci una o più identità che devono avere accesso alla tua funzione. Di solito si tratta di un indirizzo email di un account utente o di servizio.
Seleziona un ruolo o più ruoli dal menu a discesa Seleziona un ruolo. I ruoli selezionati vengono visualizzati nel riquadro con una breve descrizione delle autorizzazioni concesse.
IAM di Cloud Run Functions.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à, in genere un'email, e
ROLE
è il ruolo.
Per un elenco di origini che possono fornire un PRINCIPAL_ID
, consulta la pagina Concetti di base di IAM.
Per un elenco dei valori accettabili per ROLE
, consulta la pagina di riferimento dei ruoli IAM delle funzioni Cloud Run.
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 dello schermo. Viene visualizzato il riquadro Autorizzazioni.
Cerca l'entità che vuoi rimuovere. Controlla tutti i ruoli assegnati all'entità.
Quando trovi il principale nel ruolo che vuoi eliminare, fai clic sull'icona del cestino accanto. 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
l'account di servizio, preceduto da serviceAccount:
,
e ROLE
è il ruolo.
Per un elenco delle origini accettabili per PRINCIPAL_ID
, consulta la pagina dei concetti IAM.
Per un elenco dei possibili valori di ROLE
, consulta la pagina di riferimento dei ruoli IAM di Cloud Run Functions.
Se all'entità principale 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 a cui vuoi concedere o limitare l'accesso.
Fai clic su Autorizzazioni nella parte superiore dello schermo. Viene visualizzato il riquadro Autorizzazioni.
Per aggiungere entità:
Fai clic su Aggiungi entità.
Nel campo Nuove entità, inserisci più identità che devono avere accesso alla tua funzione.
Seleziona un ruolo o più ruoli dal menu a discesa Seleziona un ruolo. I ruoli selezionati vengono visualizzati nel riquadro con una breve descrizione delle autorizzazioni concesse.
Fai clic su Salva.
gcloud
Crea un criterio IAM denominato, 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 la pagina dei concetti IAM.
Per un elenco dei valori accettabili per ROLE
, consulta la pagina di riferimento dei ruoli IAM delle funzioni Cloud Run.
Visualizzazione delle entità
Console
Vai alla console Google Cloud:
Fai clic sul nome della funzione che ti interessa.
Seleziona la scheda Autorizzazioni. Viene visualizzato 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 delle funzioni HTTP non autenticate
A partire dal 15 gennaio 2020, le funzioni HTTP senza l'opzione Consenti chiamate non autenticate attivata limitano l'accesso agli utenti finali e agli account di servizio che non dispongono delle autorizzazioni appropriate.
Per consentire le chiamate non autenticate, devi specificarlo al momento o dopo il deployment.
Utilizza una variante speciale dell'approccio descritto in precedenza per concedere agli invocanti non autenticati la possibilità di invocare una funzione HTTP.
Al momento del deployment
Console
Seleziona Consenti chiamate non autenticate nella sezione Autenticazione del riquadro Attivazione.
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 \ ...
I deployment successivi 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 Invoker di Cloud Functions all'entità speciale allUsers
della funzione:
Console
Vai alla console Google Cloud:
Fai clic sulla casella di controllo accanto alla funzione di ricezione. Non fare clic sulla funzione stessa.
Fai clic su Autorizzazioni nella parte superiore dello schermo. Viene visualizzato 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 la sezione relativa al riferimento gcloud functions add-iam-policy-binding
.
Condivisione limitata dei domini
Se stai sviluppando funzioni in un progetto soggetto al criterio dell'organizzazione Condivisione limitata per i domini, non potrai consentire l'invocazione non autenticata di una funzione. Questo criterio limita la condivisione dei dati pubblici per ridurre il rischio di esfiltrazione di dati.
Se vuoi eseguire il deployment di funzioni che consentono l'invocazione non autenticata, ti consigliamo di rimuovere il criterio dell'organizzazione Condivisione limitata per i domini nel progetto. I criteri dell'organizzazione possono essere impostati a livello di organizzazione, cartella o progetto.
Dopo aver creato le funzioni che consentono l'invocazione non autenticata, puoi riattivare il criterio dell'organizzazione:
- Le funzioni di cui è stato eseguito il deployment prima della riattivazione del criterio dell'organizzazione continueranno a consentire l'invocazione non autenticata.
- Le nuove versioni di queste funzioni esistenti possono essere implementate senza richiedere l'invocazione autenticata.
- Non è possibile implementare nuove funzioni che consentono chiamate non autenticate.
Controllo dell'accesso a tutte le funzioni di un progetto
Se vuoi concedere ruoli a tutte le funzioni di un progetto, puoi concedere questi ruoli al progetto.