Configurare i Controlli di servizio VPC per BigQuery Omni

Questo documento descrive come configurare un criterio in uscita che limita l'accesso solo alle risorse cloud esterne specificate da un perimetro dei Controlli di servizio VPC.

Puoi utilizzare i perimetri Controlli di servizio VPC per limitare l'accesso da BigQuery Omni ai cloud esterni. I Controlli di servizio VPC forniscono un livello aggiuntivo di difesa per i servizi Google Cloud indipendenti da Identity and Access Management (IAM). Ad esempio, configurando i perimetri Controlli di servizio VPC, puoi limitare le esportazioni dalle tabelle BigQuery Omni a un bucket S3 specifico.

Per ulteriori informazioni sui Controlli di servizio VPC, consulta Panoramica dei Controlli di servizio VPC.

Prima di iniziare

Assicurati di disporre delle autorizzazioni necessarie per configurare i perimetri di servizio. Per visualizzare un elenco dei ruoli IAM necessari per configurare i Controlli di servizio VPC, consulta Controllo degli accessi con IAM nella documentazione dei Controlli di servizio VPC.

Configura i Controlli di servizio VPC utilizzando la console

  1. Nel menu di navigazione della console, fai clic su Sicurezza e quindi su Controlli di servizio VPC.

    Vai a Controlli di servizio VPC

  2. Per configurare i Controlli di servizio VPC per BigQuery Omni, segui i passaggi indicati nella guida Crea un perimetro di servizio e quando sei nel riquadro Regole in uscita, segui questi passaggi:

    1. Nel riquadro Regole in uscita, fai clic su Aggiungi regola.

    2. Nella sezione Da attributi del client API, seleziona un'opzione dall'elenco Identità.

    3. Seleziona A attributi di risorse esterne.

    4. Per aggiungere una risorsa esterna, fai clic su Aggiungi risorse esterne.

    5. Nella finestra di dialogo Aggiungi risorsa esterna, per un Nome risorsa esterna, inserisci un nome di risorsa valido. Ad esempio:

      • Per Amazon S3: s3://BUCKET_NAME

        Sostituisci BUCKET_NAME con il nome del tuo bucket Amazon S3.

      • Per l'archiviazione di Azure: azure://myaccount.blob.core.windows.net/CONTAINER_NAME

        Sostituisci CONTAINER NAME con il nome del container di archiviazione di Azure.

      Per un elenco degli attributi della regola in uscita, vedi Riferimento alle regole in uscita.

    6. Seleziona i metodi che vuoi consentire sulle risorse esterne:

      1. Se vuoi consentire tutti i metodi, seleziona Tutti i metodi nell'elenco Metodi.
      2. Se vuoi consentire metodi specifici, seleziona Metodo selezionato, fai clic su Seleziona metodi e seleziona i metodi che vuoi consentire per le risorse esterne.
    7. Fai clic su Crea perimetro.

Configurare i Controlli di servizio VPC utilizzando l'interfaccia a riga di comando gcloud

Per configurare i Controlli di servizio VPC utilizzando l'interfaccia a riga di comando gcloud, segui questi passaggi:

  1. Imposta il criterio di accesso predefinito.
  2. Crea il file di input del criterio in uscita.
  3. Aggiungi il criterio in uscita.

Configurare il criterio di accesso predefinito

Un criterio di accesso è un container a livello di organizzazione per i livelli di accesso e i perimetri di servizio. Per informazioni sull'impostazione di un criterio di accesso predefinito o su come ottenere un nome del criterio di accesso, consulta la sezione Gestire un criterio di accesso.

Crea il file di input del criterio in uscita

Un blocco di regole in uscita definisce l'accesso consentito dall'interno di un perimetro delle risorse all'esterno di tale perimetro. Per le risorse esterne, la proprietà externalResources definisce i percorsi di risorse esterne accessibili all'interno del perimetro dei Controlli di servizio VPC.

Le regole in uscita possono essere configurate utilizzando un file JSON o un file YAML. L'esempio seguente utilizza il formato .yaml:

- egressTo:
    operations:
    - serviceName: bigquery.googleapis.com
      methodSelectors:
      - method: "*"
      *OR*
      - permission: "externalResource.read"
    externalResources:
      - EXTERNAL_RESOURCE_PATH
  egressFrom:
    identityType: IDENTITY_TYPE
    *OR*
    identities:
    - serviceAccount:SERVICE_ACCOUNT
  • egressTo: avvia il blocco to, che elenca le operazioni di servizio consentite sulle risorse Google Cloud in progetti specifici fuori dal perimetro.

  • operations: l'elenco di servizi e azioni o metodi di accessibilità a cui un client che soddisfa le condizioni di blocco from può accedere.

  • serviceName: per BigQuery Omni, impostalo su bigquery.googleapis.com.

  • methodSelectors: un elenco dei metodi a cui un client che soddisfa le condizioni di blocco from può accedere. Per un elenco dei metodi limitati e delle autorizzazioni per i servizi, consulta la pagina Limitazioni dei metodi di servizio supportati.

  • method o permission: il campo method può essere un metodo di servizio valido oppure può essere impostato su \"*\" per consentire l'accesso a tutti i metodi del servizio specificato.

    Il campo permission deve essere un'autorizzazione di servizio valida, come \"*\", externalResource.read o externalResource.write. L'accesso alle risorse specificate all'esterno del perimetro è consentito per le operazioni che richiedono questa autorizzazione.

  • externalResources: un elenco di risorse esterne a cui i client all'interno di un perimetro possono accedere. Sostituisci EXTERNAL_RESOURCE_PATH con un bucket AWS S3 valido, ad esempio s3://bucket_name, o con un percorso di archiviazione di Azure, ad esempio azure://myaccount.blob.core.windows.net/container_name.

  • egressFrom: avvia il blocco from, che elenca le operazioni di servizio consentite sulle risorse Google Cloud in progetti specificati all'interno del perimetro.

  • identityType o identities: l'attributo identityType definisce i tipi di identità che possono essere utilizzati per accedere alle risorse specificate al di fuori del perimetro. Sostituisci IDENTITY_TYPE con uno dei seguenti valori validi:

    • ANY_IDENTITY: per consentire tutte le identità.
    • ANY_USER_ACCOUNT: per consentire tutti gli utenti.
    • ANY_SERVICE_ACCOUNT: per consentire tutti gli account di servizio

    L'attributo identities è un elenco di account di servizio che possono accedere alle risorse specificate al di fuori del perimetro.

  • (Facoltativo) serviceAccount: sostituisci SERVICE_ACCOUNT con l'account di servizio che può accedere alle risorse specificate al di fuori del perimetro.

Esempi

L'esempio seguente è un criterio che consente le operazioni in uscita dall'interno del perimetro alla località S3 s3://mybucket in AWS.

- egressTo:
    operations:
    - serviceName: bigquery.googleapis.com
      methodSelectors:
      - method: "*"
    externalResources:
      - s3://mybucket
      - s3://mybucket2
  egressFrom:
    identityType: ANY_IDENTITY

L'esempio seguente consente di eseguire operazioni in uscita verso un bucket di archiviazione di Azure:

- egressTo:
    operations:
    - serviceName: bigquery.googleapis.com
      methodSelectors:
      - method: "*"
    externalResources:
      - azure://myaccount.blob.core.windows.net/mycontainer
  egressFrom:
    identityType: ANY_IDENTITY

Per ulteriori informazioni sui criteri in uscita, consulta la pagina di riferimento sulle regole in uscita.

Aggiungere il criterio in uscita

Per aggiungere il criterio in uscita quando crei un nuovo perimetro di servizio, utilizza il comando gcloud access-context-manager perimeters create. Ad esempio, il seguente comando crea un nuovo perimetro denominato omniPerimeter che include il progetto con il numero progetto 12345, limita l'API BigQuery e aggiunge un criterio in uscita definito nel file egress.yaml:

gcloud access-context-manager perimeters create omniPerimeter \
    --title="Omni Perimeter" \
    --resources=projects/12345 \
    --restricted-services=bigquery.googleapis.com \
    --egress-policies=egress.yaml

Per aggiungere il criterio in uscita a un perimetro di servizio esistente, utilizza il comando gcloud access-context-manager perimeters update. Ad esempio, il seguente comando aggiunge un criterio in uscita definito nel file egress.yaml a un perimetro di servizio esistente denominato omniPerimeter:

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

Verifica il tuo perimetro

Per verificare il perimetro, utilizza il comando gcloud access-context-manager perimeters describe:

gcloud access-context-manager perimeters describe PERIMETER_NAME

Sostituisci PERIMETER_NAME con il nome del perimetro.

Ad esempio, il seguente comando descrive il perimetro omniPerimeter:

gcloud access-context-manager perimeters describe omniPerimeter

Per ulteriori informazioni, consulta la sezione Gestire i perimetri di servizio.

Passaggi successivi