Impostazione del controllo degli accessi in una configurazione

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

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.

  1. Vai alla pagina IAM nella console Google Cloud del tuo progetto.

    Vai alla pagina IAM

  2. Se richiesto, seleziona il progetto dall'elenco.
  3. Cerca l'account di servizio delle API di Google, il cui indirizzo email ha il seguente formato:

    [PROJECT_NUMBER]@cloudservices.gserviceaccount.com
    
  4. Concedi al account di servizio delle API i ruoli roles/owner:

    Console

    1. 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.
    2. 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:

  1. Aggiungi la sezione accessControl alla configurazione di primo livello per ogni risorsa per cui vuoi applicare i criteri di controllo dell'accesso#39;accesso.

  2. 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
  • my-other-app@appspot.gserviceaccount.com
  • jane@example.com
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.