Accès contextuel à l'aide de règles d'entrée

Les configurations à base de règles d'entrée contextuelles permettent l'accès aux ressources en fonction d'attributs du client, tels que l'origine de réseau (adresse IP ou réseau VPC), le type d'identité (compte de service ou utilisateur), l'identité et les données d'appareil. L'accès est défini par des règles d'entrée.

Pour obtenir une présentation des règles d'entrée et de sortie, consultez la section Règles d'entrée et de sortie.

Pour obtenir des instructions sur l'application des règles d'entrée et de sortie, consultez la section Configurer des règles d'entrée et de sortie.

Exemples de configuration pour des cas d'utilisation de l'accès contextuel

Cette section contient les exemples d'accès contextuel suivants :

  1. Autoriser l'accès à BigQuery depuis Internet pour les utilisateurs humains et depuis une plage d'adresses IP spécifiée pour certains comptes de service spécifiques uniquement
  2. Autoriser les employés à interroger BigQuery à partir d'appareils vérifiés sur Internet et autoriser un compte de service spécifique à charger des données de manière privée dans un bucket Cloud Storage (données source)

Autoriser l'accès à BigQuery depuis Internet pour les utilisateurs humains et depuis une plage d'adresses IP spécifiée pour certains comptes de service spécifiques uniquement

Entrée provenant d'utilisateurs et de réseaux reconnus

Supposons que vous avez défini le périmètre suivant, obtenu en répertoriant le périmètre à l'aide de 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

Nous considérons également qu'un niveau d'accès appelé "CorpDatacenters" a été défini. Dans cet exemple, CorpDatacenters est une plage d'adresses IP en liste blanche, correspondant à des centres de données d'entreprise qui utilisent pour leur accès les comptes de service autorisés.

Voici la règle directionnelle permettant d'autoriser tous les utilisateurs humains ainsi qu'un ensemble spécifique de comptes de service, restreints à un ensemble spécifique d'adresses IP (défini par un niveau d'accès) :

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

Appliquez les règles d'entrée en exécutant la commande suivante :

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

Autoriser les employés à interroger BigQuery et à charger des données de manière privée dans un bucket Cloud Storage

Entrée provenant d'appareils et de réseaux reconnus

Supposons que vous avez défini le périmètre suivant, obtenu en répertoriant le périmètre à l'aide de 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

Voici la règle directionnelle permettant aux utilisateurs d'accéder aux vues BigQuery à partir d'appareils approuvés (à l'aide d'un niveau d'accès) et permettant à un compte de service spécifique d'accéder à Cloud Storage de manière privée à partir d'un réseau VPC autorisé :

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

Appliquez les règles d'entrée en exécutant la commande suivante :

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

Pour en savoir plus sur les limites des réseaux VPC lorsque vous les utilisez dans des périmètres de service, consultez la section Limites des réseaux VPC.