Per controllare l'accesso alle tue risorse in Google Cloud, puoi utilizzare Identity and Access Management (IAM). Con IAM puoi impostare le autorizzazioni, specificando chi deve avere quale tipo di accesso a quali risorse nel tuo progetto. Per un'introduzione a IAM, consulta la Panoramica di IAM.
Quando esegui il deployment delle risorse, puoi anche controllare chi può accedervi impostando preventivamente un criterio IAM nella configurazione. Ad esempio, se prevedi di creare argomenti Pub/Sub che possono essere gestiti da utenti specifici, puoi esprimere questo a Deployment Manager specificando un criterio IAM nella tua configurazione. Quando crei o aggiorni il deployment, Deployment Manager chiama l'API IAM per impostare le autorizzazioni appropriate per la risorsa.
Prima di iniziare
- Se vuoi utilizzare gli esempi a riga di comando di questa guida, installa lo strumento a riga di comando "gcloud".
- Se vuoi utilizzare gli esempi di API descritti in questa guida, configura l'accesso alle API.
Utilizzo dei criteri IAM in Deployment Manager
Un criterio IAM è un insieme di utenti e dei loro ruoli. Puoi impostare un criterio IAM a livello di progetto utilizzando i ruoli di base o predefiniti. Alcuni servizi, come Cloud Pub/Sub, supportano anche l'impostazione dei criteri IAM a livello di risorsa.
Se un servizio non supporta l'impostazione dei criteri IAM a livello di risorsa, Deployment Manager restituisce un errore NO_METHOD_TO_UPDATE_ACCESS_CONTROL
.
Per un elenco dei ruoli e delle risorse a cui puoi applicarli, consulta Informazioni sui ruoli.
Concessione dell'autorizzazione di Deployment Manager per impostare i criteri IAM
Deployment Manager utilizza l'account di servizio delle API di Google per chiamare altre API di Google e gestire le risorse Google Cloud per tuo conto. Devi concedere all'account di servizio API di Google del progetto il ruolo roles/owner
di base in modo che possa applicare i criteri IAM che definisci nelle tue configurazioni.
- Vai alla pagina IAM nella console Google Cloud del progetto.
- Se richiesto, seleziona il progetto dall'elenco.
Cerca l'account di servizio API di Google, che ha l'indirizzo email nel seguente formato:
[PROJECT_NUMBER]@cloudservices.gserviceaccount.com
Concedi all'account di servizio API i ruoli di
roles/owner
:Console
- Sempre nella console Google Cloud, espandi il menu a discesa Ruoli per l'account di servizio API di Google e seleziona Progetto > Proprietario.
- Fai clic su Salva per salvare le modifiche.
gcloud
Con Google Cloud CLI, aggiungi un'associazione al criterio IAM per il progetto:
gcloud projects add-iam-policy-binding [PROJECT_ID] \ --member serviceAccount:[SERVICE_ACCOUNT_EMAIL] --role roles/owner
dove:
[PROJECT_ID]
è l'ID del progetto.[SERVICE_ACCOUNT_EMAIL]
è l'indirizzo email dell'account di servizio.
Ad esempio:
gcloud projects add-iam-policy-binding database-images \ --member serviceAccount:123456789012@cloudservices.gserviceaccount.com \ --role roles/owner
API
Nell'API, effettua una richiesta
POST
al seguente URL, dove[PROJECT_ID]
è l'ID del progetto:POST https://cloudresourcemanager.googleapis.com/v1/projects/$[PROJECT_ID]:setIamPolicy
Il corpo della richiesta deve contenere l'elenco di associazioni da applicare a questo progetto. Il ruolo
roles/owner
deve far parte dell'associazione. Ad esempio:{ "policy": { "version": "0", "bindings": [ { "role": "roles/owner", "members": [ "user:example@gmail.com", "serviceAccount:123456789012@cloudservices.gserviceaccount.com" ] } ] } }
Impostazione di un criterio IAM nella configurazione
Successivamente, nella configurazione o nel modello, puoi impostare un criterio IAM seguendo queste istruzioni:
Aggiungi la sezione
accessControl
alla configurazione di primo livello per ogni risorsa a cui vuoi applicare i criteri di controllo dell'accesso#39;accesso.Specifica il valore
gcpIamPolicy
per la risorsa. Ogni criterio IAM può contenere un elenco di associazioni. Ogni associazione associa un elenco di membri a un ruolo.Se utilizzi
accessControl
per gestire gli account di servizio, scopri di più sulla gestione degli account di servizio.
Ad esempio, nella seguente sezione accessControl
vengono aggiunte associazioni che concedono questi ruoli agli utenti:
Utente | Ruolo |
---|---|
alice@example.com |
roles/pubsub.editor |
|
roles/pubsub.publisher |
resources:
- name: a-new-pubsub-topic
type: pubsub.v1.topic
properties:
...
accessControl:
gcpIamPolicy:
bindings:
- role: roles/pubsub.editor
members:
- "user:alice@example.com"
- role: roles/pubsub.publisher
members:
- "user:jane@example.com"
- "serviceAccount:my-other-app@appspot.gserviceaccount.com"
Per ulteriori informazioni sui criteri IAM, consulta la documentazione IAM.