Las configuraciones de reglas de entrada de acceso contextual permiten acceder a los recursos en función de atributos del cliente, como el origen de la red (dirección IP o red de VPC), el tipo de identidad (cuenta de servicio o usuario), la identidad y los datos del dispositivo. El acceso se define mediante reglas de entrada.
Para obtener una descripción general de las reglas de entrada y salida, consulta el artículo Reglas de entrada y salida.
Para obtener instrucciones sobre cómo aplicar políticas de reglas de entrada y salida, consulta Configurar políticas de entrada y salida.
Ejemplos de configuración de casos prácticos de acceso contextual
En esta sección se incluyen los siguientes ejemplos de acceso contextual:
- Permitir que los usuarios accedan a BigQuery desde Internet y que solo determinadas cuentas de servicio accedan desde un intervalo de IPs específico
- Permitir que los empleados consulten BigQuery desde dispositivos de confianza a través de Internet y que una cuenta de servicio específica cargue datos de forma privada en un segmento de Cloud Storage (datos de origen)
Permitir que los usuarios accedan a BigQuery desde Internet y que solo las cuentas de servicio específicas accedan desde un intervalo de IPs concreto
Supongamos que has definido el siguiente perímetro, que se ha encontrado consultando la lista de perímetros 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
También damos por hecho que se ha definido un nivel de acceso llamado CorpDatacenters. En este ejemplo, CorpDatacenters es un intervalo de IPs de centros de datos corporativos incluidos en la lista blanca desde los que se permite el acceso a las cuentas de servicio.
Esta es la política direccional para permitir el acceso a todos los humanos y a un conjunto específico de cuentas de servicio, limitado a un conjunto concreto de IPs (definido por un nivel de acceso):
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
Aplica las reglas de entrada ejecutando el siguiente comando:
gcloud access-context-manager perimeters update Example --set-ingress-policies=ingress.yaml
Permitir que los empleados consulten BigQuery y carguen datos de forma privada en un segmento de Cloud Storage
Supongamos que has definido el siguiente perímetro, que se ha encontrado consultando la lista de perímetros 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
Esta es la política direccional para permitir que los usuarios accedan a las vistas de BigQuery desde dispositivos de confianza (mediante un nivel de acceso) y que una cuenta de servicio específica privada acceda a Cloud Storage desde una red de VPC autorizada:
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
Aplica las reglas de entrada ejecutando el siguiente comando:
gcloud access-context-manager perimeters update Example --set-ingress-policies=ingress.yaml
Para obtener información sobre las limitaciones de las redes de VPC cuando se usan en perímetros de servicio, consulta Limitaciones de las redes de VPC.