Configurare i ruoli IAM nelle regole per il traffico in entrata e in uscita

Questa pagina descrive come utilizzare i ruoli IAM (Identity and Access Management) nelle regole di entrata e di uscita per consentire l'accesso alle risorse protette dai perimetri di servizio.

Controlli di servizio VPC utilizza le regole di entrata e di uscita per consentire l'accesso alle risorse e ai client protetti dai perimetri di servizio e viceversa. Se vuoi, puoi limitare le regole per il traffico in entrata e in uscita utilizzando i ruoli IAM. Quando specifichi un ruolo IAM in una regola, la regola consente solo le azioni associate alle autorizzazioni che fanno parte del ruolo IAM.

Prima di iniziare

Configurare i ruoli IAM nelle regole di ingresso

Console

Quando aggiorni un criterio di ingresso di un perimetro di servizio o ne imposti uno durante la creazione del perimetro utilizzando la console Google Cloud, puoi configurare la regola di ingresso in modo che utilizzi i ruoli IAM:

  1. Quando crei o modifichi un perimetro nella console Google Cloud, seleziona Criterio di ingresso.

  2. Nel riquadro Regole in entrata, seleziona una regola in entrata esistente o fai clic su Aggiungi una regola in entrata.

  3. Nella sezione A del criterio di accesso in entrata, seleziona Seleziona ruoli IAM (anteprima) dall'elenco Operazioni o ruoli IAM.

  4. Fai clic su Aggiungi ruoli IAM.

  5. Nel riquadro Aggiungi ruoli IAM, seleziona i ruoli IAM che vuoi consentire.

    Per informazioni sui servizi e sui ruoli supportati, vedi Prodotti supportati.

  6. Fai clic su Aggiungi i ruoli IAM selezionati.

  7. Fai clic su Fine.

Per informazioni sugli altri attributi delle regole di importazione, consulta la sezione Riferimento alle regole di importazione.

gcloud

Puoi configurare una regola di ingresso per utilizzare i ruoli IAM utilizzando un file JSON o un file YAML. Il seguente esempio utilizza il formato YAML:

- ingressFrom:
    identityType: ANY_IDENTITY | ANY_USER_ACCOUNT | ANY_SERVICE_ACCOUNT
    *OR*
    identities:
    - PRINCIPAL_IDENTIFIER
    sources:
    - resource: RESOURCE
      *OR*
    - accessLevel: ACCESS_LEVEL
  ingressTo:
    operations:
    - serviceName: SERVICE_NAME
      methodSelectors:
      - method: METHOD_NAME
    *OR*
    roles:
    - ROLE_NAME
    resources:
    - projects/PROJECT_NUMBER

Sostituisci ROLE_NAME con i ruoli IAM che definiscono l'ambito di accesso per i servizi specificati nella regola. Specifica un singolo ruolo o una combinazione di ruoli che includa tutte le autorizzazioni richieste per accedere ai servizi. Per specificare un ruolo, utilizza i formati dei nomi dei ruoli indicati in Componenti dei ruoli, tranne il seguente formato: projects/PROJECT_ID/roles/IDENTIFIER.

Per informazioni sui servizi e sui ruoli supportati, vedi Prodotti supportati.

Per informazioni sugli altri attributi delle regole di importazione, consulta la sezione Riferimento alle regole di importazione.

Dopo aver aggiornato una regola di ingresso esistente per configurare i ruoli IAM, devi aggiornare i criteri delle regole del perimetro di servizio:

gcloud access-context-manager perimeters update PERIMETER_ID --set-ingress-policies=RULE_POLICY.yaml

Sostituisci quanto segue:

  • PERIMETER_ID: l'ID del perimetro di servizio che vuoi aggiornare.
  • RULE_POLICY: il percorso del file della regola di ingresso modificata.

Per ulteriori informazioni, consulta Aggiornare i criteri di ingresso e uscita per un perimetro di servizio.

Configurare i ruoli IAM nelle regole di uscita

Console

Quando aggiorni un criterio di uscita di un perimetro di servizio o ne imposti uno durante la creazione del perimetro utilizzando la console Google Cloud, puoi configurare la regola di uscita in modo che utilizzi i ruoli IAM:

  1. Quando crei o modifichi un perimetro nella console Google Cloud, seleziona Criterio di uscita.

  2. Nel riquadro Regole in uscita, seleziona una regola in uscita esistente o fai clic su Aggiungi una regola in uscita.

  3. Nella sezione A del criterio di uscita, seleziona Seleziona ruoli IAM (anteprima) dall'elenco Operazioni o ruoli IAM.

  4. Fai clic su Aggiungi ruoli IAM.

  5. Nel riquadro Aggiungi ruoli IAM, seleziona i ruoli IAM che vuoi consentire.

    Per informazioni sui servizi e sui ruoli supportati, vedi Prodotti supportati.

  6. Fai clic su Aggiungi i ruoli IAM selezionati.

  7. Fai clic su Fine.

Per informazioni sugli altri attributi delle regole in uscita, consulta la sezione Riferimento alle regole in uscita.

gcloud

Puoi configurare una regola di uscita per utilizzare i ruoli IAM utilizzando un file JSON o un file YAML. Il seguente esempio utilizza il formato YAML:

- egressTo:
    operations:
    - serviceName: SERVICE_NAME
      methodSelectors:
      - method: METHOD_NAME
    *OR*
    roles:
    - ROLE_NAME
    resources:
    - projects/PROJECT_NUMBER
  egressFrom:
    identityType: ANY_IDENTITY | ANY_USER_ACCOUNT | ANY_SERVICE_ACCOUNT
    *OR*
    identities:
    - PRINCIPAL_IDENTIFIER
    sources:
    - resource: RESOURCE
      *OR*
    - accessLevel: ACCESS_LEVEL
    sourceRestriction: RESTRICTION_STATUS

Sostituisci ROLE_NAME con i ruoli IAM che definiscono l'ambito di accesso per i servizi specificati nella regola. Specifica un singolo ruolo o una combinazione di ruoli che includa tutte le autorizzazioni richieste per accedere ai servizi. Per specificare un ruolo, utilizza i formati dei nomi dei ruoli indicati in Componenti dei ruoli, tranne il seguente formato: projects/PROJECT_ID/roles/IDENTIFIER.

Per informazioni sui servizi e sui ruoli supportati, vedi Prodotti supportati.

Per informazioni sugli altri attributi delle regole in uscita, consulta la sezione Riferimento alle regole in uscita.

Dopo aver aggiornato una regola di uscita esistente per configurare i ruoli IAM, devi aggiornare i criteri delle regole del perimetro del servizio:

gcloud access-context-manager perimeters update PERIMETER_ID --set-egress-policies=RULE_POLICY.yaml

Sostituisci quanto segue:

  • PERIMETER_ID: l'ID del perimetro di servizio che vuoi aggiornare.
  • RULE_POLICY: il percorso del file della regola in uscita modificata.

Per ulteriori informazioni, consulta Aggiornare i criteri di ingresso e di uscita per un perimetro di servizio.

Prodotti supportati

Puoi utilizzare i ruoli IAM dei seguenti Google Cloud servizi nelle regole di entrata e di uscita:

Prodotto Limitazioni
Artifact Registry
artifactregistry.googleapis.com
  • Nessuna limitazione nota.
BigQuery
bigquery.googleapis.com
  • Nessuna limitazione nota.
BigQuery Data Transfer Service
bigquerydatatransfer.googleapis.com
  • Nessuna limitazione nota.
Bigtable
bigtable.googleapis.com
  • Nessuna limitazione nota.
Autorizzazione binaria
binaryauthorization.googleapis.com
  • Nessuna limitazione nota.
Cloud Composer
composer.googleapis.com
  • Nessuna limitazione nota.
Cloud Key Management Service
cloudkms.googleapis.com
Cloud Logging
logging.googleapis.com
  • Nessuna limitazione nota.
Monitoraggio cloud
monitoring.googleapis.com
  • Nessuna limitazione nota.
Cloud Run
run.googleapis.com
  • Nessuna limitazione nota.
Funzioni Cloud Run
cloudfunctions.googleapis.com
  • Nessuna limitazione nota.
Cloud SQL
sqladmin.googleapis.com
  • Nessuna limitazione nota.
Cloud Storage
storage.googleapis.com
  • Controlli di servizio VPC supporta i ruoli personalizzati per Cloud Storage nelle regole di ingresso e di uscita, ma non i ruoli predefiniti di Cloud Storage. Quando provi a utilizzare un ruolo Cloud Storage predefinito in una regola di ingresso o uscita, Controlli di servizio VPC restituisce un errore INVALID_ARGUMENT.
  • Quando esegui un'operazione di inserimento di un oggetto o scrivi una richiesta API per i progetti protetti da Controlli di servizio VPC, devi configurare regole di ingresso e uscita che consentano le autorizzazioni storage.objects.delete e storage.objects.create.
  • Quando attivi la funzionalità Chiedi al richiedente di pagare in Cloud Storage, Controlli di servizio VPC non supporta l'utilizzo dei ruoli Cloud Storage nelle regole di inoltro e uscita.
Compute Engine
compute.googleapis.com
  • Nessuna limitazione nota.
Dataflow
dataflow.googleapis.com
  • Nessuna limitazione nota.
Dataproc
dataproc.googleapis.com
  • Nessuna limitazione nota.
Google Kubernetes Engine
container.googleapis.com
  • Nessuna limitazione nota.
Gestione di identità e accessi
iam.googleapis.com
  • Nessuna limitazione nota.
Pub/Sub
pubsub.googleapis.com
  • Nessuna limitazione nota.
Resource Manager
cloudresourcemanager.googleapis.com
  • Nessuna limitazione nota.
Secret Manager
secretmanager.googleapis.com
  • Nessuna limitazione nota.
Chiave a brugola
spanner.googleapis.com
  • Nessuna limitazione nota.

Per l'elenco dei ruoli IAM predefiniti di questi servizi che puoi utilizzare nelle regole di ingresso e di uscita, consulta Ruoli predefiniti.

Tuttavia, in questi servizi sono presenti alcuni ruoli IAM parzialmente supportati o non supportati per l'utilizzo nelle regole di ingresso e di uscita, perché alcune o tutte le autorizzazioni sottostanti non sono supportate:

  • L'utilizzo di un ruolo IAM parzialmente supportato in una regola di entrata o di uscita rende la regola non efficace per le richieste o le azioni specifiche delle autorizzazioni di base non supportate.

    Per l'elenco dei ruoli parzialmente supportati e delle autorizzazioni non supportate associate, consulta Ruoli IAM parzialmente supportati.

  • L'utilizzo di un ruolo IAM non supportato in una regola di ingresso o di uscita rende la regola inefficace.

    Per l'elenco dei ruoli non supportati, consulta Ruoli IAM non supportati.

Se vuoi utilizzare un ruolo personalizzato nelle regole di entrata e di uscita, assicurati che il ruolo personalizzato contenga solo le autorizzazioni supportate che fanno parte dei servizi supportati. Per l'elenco delle autorizzazioni non supportate per i servizi supportati, consulta Ruoli IAM parzialmente supportati e Ruoli IAM non supportati.

Non puoi utilizzare i ruoli personalizzati che hai creato a livello di progetto. In altre parole, non puoi utilizzare un ruolo personalizzato nel seguente formato: projects/PROJECT_ID/roles/IDENTIFIER.

Ruoli IAM parzialmente supportati

La tabella seguente elenca i ruoli IAM parzialmente supportati di servizi specifici:

Prodotto Ruoli parzialmente supportati Autorizzazioni non supportate
Cloud SQL
  • roles/cloudsql.viewer
  • cloudsql.backupRuns.list
  • cloudaicompanion.*
  • roles/cloudsql.editor
  • cloudsql.backupRuns.list
  • cloudaicompanion.*
Cloud Storage
  • roles/storage.objectUser
  • storage.objects.move
Identity and Access Management
  • roles/iam.serviceAccountTokenCreator
  • iam.serviceAccounts.signBlob
  • iam.serviceAccounts.signJwt
Resource Manager
  • roles/resourcemanager.tagAdmin
  • resourcemanager.tagKeys.get
  • resourcemanager.tagValues.get
  • roles/resourcemanager.tagUser
  • resourcemanager.tagKeys.get
  • resourcemanager.tagValues.get
  • alloydb.*
  • certificatemanager.*
  • clouddeploy.*
  • roles/resourcemanager.tagViewer
  • resourcemanager.tagKeys.get
  • resourcemanager.tagValues.get
  • alloydb.*
  • certificatemanager.*
  • clouddeploy.*
Spanner
  • roles/spanner.databaseReaderWithDataBoost
  • spanner.databases.useDataBoost
Altri ruoli parzialmente supportati
  • Tutti i ruoli dei servizi supportati che contengono queste autorizzazioni non supportate sottostanti.
  • alloydb.*
  • backupdr.*
  • bigquerymigration.*
  • certificatemanager.*
  • cloudaicompanion.*
  • cloudasset.*
  • cloudbuild.*
  • clouddeploy.*
  • dataform.*
  • dataplex.*
  • dns.*
  • eventarc.*
  • networkconnectivity.*
  • networkmanagement.*
  • networksecurity.*
  • networkservices.*

Ruoli IAM non supportati

La tabella seguente elenca i ruoli IAM non supportati di servizi specifici:

Prodotto Ruoli non supportati
Identity and Access Management
  • roles/iam.denyReviewer
  • roles/iam.oauthClientViewer
  • roles/iam.operationViewer
  • roles/iam.workforcePoolEditor
  • roles/iam.workforcePoolViewer
  • roles/iam.workloadIdentityPoolViewer
  • roles/iam.workforcePoolEditor
  • roles/iam.workforcePoolViewer

Limitazioni

  • Non puoi utilizzare una regola di ingresso o di uscita basata sui ruoli per consentire alle richieste di impostare il criterio di autorizzazione IAM di un progetto nel confine del perimetro.

  • Se riscontri problemi con il caricamento della pagina di modifica dei servizi nella console Google Cloud a causa delle limitazioni di Controlli di servizio VPC, l'utilizzo dei ruoli IAM nelle regole di ingresso potrebbe non risolvere il problema. Questa limitazione non influisce sulla pagina di sola visualizzazione per questi servizi.

  • Quando una richiesta coinvolge più tipi di risorse di progetti diversi, la regola di ingresso o uscita che utilizza i ruoli IAM potrebbe non funzionare. Ad esempio, quando avvii un modello Dataflow che legge il testo da Cloud Storage in un altro progetto.

  • Se elimini un ruolo personalizzato dopo avervi fatto riferimento nella regola di entrata o di uscita di un perimetro, il perimetro diventa non modificabile.

Passaggi successivi