含有輸入規則的情境感知存取權

設定情境感知存取權入站規則後,系統會根據用戶端屬性 (例如網路來源 (IP 位址或 VPC 網路)、身分類型 (服務帳戶或使用者)、身分和裝置資料) 來決定是否允許存取資源。存取權是由輸入規則定義。

如需輸入和輸出規則的總覽,請參閱「輸入和輸出規則」。

如要瞭解如何套用輸入和輸出規則政策,請參閱「設定輸入和輸出政策」。

情境感知存取權用途的設定範例

本節包含下列情境感知存取權範例:

  1. 允許使用者透過網際網路存取 BigQuery,且僅允許特定服務帳戶透過指定 IP 範圍存取
  2. 允許員工透過可信任的裝置和特定服務帳戶,透過網路查詢 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 網路限制」。