情境感知访问权限入站规则设置根据网络来源(IP 地址或 VPC 网络)、身份类型(服务账号或用户)、身份和设备数据等客户端特性允许对资源的访问权限。访问权限由入站规则定义。
如需大致了解入站和出站规则,请参阅入站和出站规则。
如需了解如何应用入站和出站规则政策,请参阅配置入站和出站政策。
情境感知访问权限使用场景的配置示例
本部分包含情境感知访问权限的以下示例:
- 允许真人用户从互联网访问 BigQuery 并仅允许特定服务账号从指定的 IP 范围进行访问
- 允许员工从可信设备通过互联网查询 BigQuery,并允许特定服务账号以专用方式将数据加载到 Cloud Storage 存储分区(源数据)
允许真人用户从互联网访问 BigQuery 并仅允许特定服务账号从指定的 IP 范围进行访问

假设您已定义了如下边界,可以通过使用 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
我们还假设定义了名为 CorpDatacenter 的访问权限级别。在此示例中,CorpDatacenter 是一组已列入白名单的企业数据中心 IP 范围,允许服务账号从这一 IP 范围进行访问。
以下定向政策允许所有真人和一组特定服务账号从一组特定 IP 地址(由访问权限级别定义)进行访问:
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
运行以下命令来应用入站规则:
gcloud access-context-manager perimeters update Example --set-ingress-policies=ingress.yaml
允许员工查询 BigQuery 并以不公开方式将数据加载到 Cloud Storage 存储桶

假设您已定义了如下边界,可以通过使用 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
下面的定向政策允许真人从可信设备(使用访问权限级别)访问 BigQuery 视图,并允许特定服务账号从已获授权的 VPC 网络对 Cloud Storage 进行专有访问:
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
运行以下命令来应用入站规则:
gcloud access-context-manager perimeters update Example --set-ingress-policies=ingress.yaml
如需了解在服务边界中使用 VPC 网络时存在的限制,请参阅 VPC 网络限制。