Per controllare l'accesso alle tue risorse in Google Cloud, utilizza Identity and Access Management (IAM). Con IAM, imposti le autorizzazioni specificando chi ha 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 ha accesso a queste risorse impostando in modo preventivo un criterio IAM nella configurazione. Ad esempio, se prevedi di creare argomenti Pub/Sub che possono essere gestiti da utenti specifici, puoi comunicarlo a Deployment Manager specificando una policy IAM nella configurazione. Quando crei o aggiorni la tua implementazione, Deployment Manager chiama l'API IAM per impostare le autorizzazioni appropriate sulla risorsa.
Prima di iniziare
- Se vuoi utilizzare gli esempi di riga di comando in questa guida, installa lo strumento a riga di comando`gcloud`.
- Se vuoi utilizzare gli esempi di API in questa guida, configura l'accesso API.
Utilizzo dei criteri IAM in Deployment Manager
Un criterio IAM è un insieme di utenti e dei relativi ruoli. Imposti un criterio IAM a livello di progetto utilizzando ruoli di base o predefiniti. Alcuni servizi, come Cloud Pub/Sub, supportano anche l'impostazione di criteri IAM a livello di risorsa.
Se un servizio non supporta l'impostazione di 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 la sezione Informazioni sui ruoli.
Concessione dell'autorizzazione Deployment Manager per impostare i criteri IAM
Deployment Manager utilizza il
service account API di Google
per chiamare altre API di Google e gestire Google Cloud le risorse per tuo conto. Devi concedere all'account di servizio delle API di Google del tuo progetto il ruolo di base
roles/owner
in modo che possa applicare i criteri IAM che definisci nelle tue
configurazioni.
- Vai alla pagina IAM nella console Google Cloud del tuo progetto.
- Se richiesto, seleziona il progetto dall'elenco.
Cerca l'account di servizio delle API di Google, il cui indirizzo email ha il seguente formato:
[PROJECT_NUMBER]@cloudservices.gserviceaccount.com
Concedi al account di servizio delle API i ruoli
roles/owner
:Console
- Mentre ti trovi ancora nella console Google Cloud , espandi il menu a discesa Ruoli per il account di servizio delle 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'email del 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, invia 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 dei binding che vuoi 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 per cui vuoi applicare i criteri di controllo dell'accesso#39;accesso.Specifica il
gcpIamPolicy
desiderato per la risorsa. Ogni criterio IAM può contenere un elenco di associazioni. Ogni associazione collega un elenco di membri a un ruolo.Se utilizzi
accessControl
per gestire i service account, scopri di più sulla gestione dei service account.
Ad esempio, la seguente sezione accessControl
aggiunge 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 sulle policy IAM, consulta la documentazione di IAM.