設定情境感知存取權入站規則後,系統會根據用戶端屬性 (例如網路來源 (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
我們也假設已定義名為 CorpDatacenters 的存取層級。在這個範例中,CorpDatacenters 是公司資料中心的 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 檢視畫面,以及透過特定服務帳戶私密存取已授權的虛擬私有雲網路中的 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 網路限制」。