情境感知访问权限入站规则设置根据网络来源(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 网络的限制,请参阅 VPC 网络限制。