Accesso sensibile al contesto con regole in entrata

Le configurazioni della regola in entrata dell'accesso sensibile al contesto consentono l'accesso alle risorse in base ad attributi client come origine di rete (indirizzo IP o rete VPC), tipo di identità (service account o utente), identità e dati sul dispositivo. L'accesso è definito dalle regole in entrata.

Per una panoramica delle regole in entrata e in uscita, consulta Regole per il traffico in entrata e in uscita.

Per istruzioni su come applicare le policy per le regole in entrata e in uscita, vedi Configurazione delle policy in entrata e in uscita.

Esempi di configurazione dei casi d'uso relativi all'accesso sensibile al contesto

Questa sezione contiene i seguenti esempi di accesso sensibile al contesto:

  1. Consenti agli utenti umani di accedere a BigQuery da internet e solo a determinati service account di accedere da un intervallo IP specificato
  2. Consenti ai dipendenti di eseguire query su BigQuery da dispositivi attendibili su internet e a un service account specifico di caricare privatamente i dati in un bucket Cloud Storage (dati di origine)

Consenti agli utenti umani di accedere a BigQuery da internet e solo a determinati service account di accedere da un intervallo IP specificato

Entrata da utenti e reti riconosciuti

Supponiamo di aver definito il seguente perimetro, trovato elencando il perimetro con gcloud:

name: accessPolicies/222/servicePerimeters/Example
status:
  resources:
  - projects/111
  restrictedServices:
  - bigquery.googleapis.com
  - storage.googleapis.com
  vpcAccessibleServices:
    enableRestriction: true
    allowedServices:
    - RESTRICTED_SERVICES
title: Example

Supponiamo inoltre che sia stato definito un livello di accesso denominato CorpDatacenters. CorpDatacenters, in questo esempio, è un intervallo autorizzato di IP di data center aziendali dai cui service account sono consentiti gli accessi.

Ecco la policy direzionale per consentire l'accesso a tutti gli utenti umani e a un insieme specifico di service account, limitato a un insieme particolare di IP (definito da un livello di accesso):

echo """
- ingressFrom:
    identities:
    - serviceAccount:my-sa@my-project.iam.gserviceaccount.com
    sources:
    - accessLevel: accessPolicies/222/accessLevels/CorpDatacenters
  ingressTo:
    operations:
    - serviceName: bigquery.googleapis.com
      methodSelectors:
      - method: \"*\"
    resources:
    - \"*\"
- ingressFrom:
    identityType: ANY_USER_ACCOUNT
    sources:
    - accessLevel: \"*\"
  ingressTo:
    operations:
    - serviceName: bigquery.googleapis.com
      methodSelectors:
      - method: \"*\"
    resources:
    - \"*\"
""" > ingress.yaml

Applica le regole in entrata eseguendo questo comando:

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

Consenti ai dipendenti di eseguire query su BigQuery e di caricare dati in modalità privata in un bucket Cloud Storage

Entrata da dispositivi e reti riconosciuti

Supponiamo di aver definito il seguente perimetro, trovato elencando il perimetro con gcloud:

name: accessPolicies/222/servicePerimeters/Example
status:
  resources:
  - projects/111
  restrictedServices:
  - bigquery.googleapis.com
  - storage.googleapis.com
  vpcAccessibleServices:
    enableRestriction: true
    allowedServices:
    - RESTRICTED_SERVICES
title: Example

Ecco la policy direzionale per consentire agli utenti umani di accedere alle viste BigQuery da dispositivi attendibili (utilizzando un livello di accesso) e a un determinato service account privato di accedere a Cloud Storage da una rete VPC autorizzata:

echo """
- ingressFrom:
    identities:
    - serviceAccount:my-sa@my-project.iam.gserviceaccount.com
    sources:
    - resource: projects/111
  ingressTo:
    operations:
    - serviceName: storage.googleapis.com
      methodSelectors:
      - method: google.storage.Write
      - method: google.storage.objects.create
    resources:
    - \"*\"

- ingressFrom:
    identityType: ANY_SERVICE_ACCOUNT
    sources:
      - resource: //compute.googleapis.com/projects/my-network-project/global/networks/top-tier-vpc-network
  ingressTo:
    operations:
    - serviceName: storage.googleapis.com
      methodSelectors:
      - method: google.storage.Write
      - method: google.storage.objects.create
    resources:
    - \"*\"

- ingressFrom:
    identityType: ANY_USER_ACCOUNT
    sources:
    - accessLevel: accessPolicies/222/accessLevels/TrustedDevices
  ingressTo:
    operations:
    - serviceName: bigquery.googleapis.com
      methodSelectors:
      - permission: bigquery.tables.getData
    resources:
    - \"*\"
""" > ingress.yaml

Applica le regole in entrata eseguendo questo comando:

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

Per informazioni sulle limitazioni delle reti VPC quando le utilizzi nei perimetri di servizio, consulta Limitazioni delle reti VPC.