上り(内向き)ルールを使用したコンテキストアウェア アクセス

コンテキストアウェア アクセスの上り(内向き)ルールを設定すると、ネットワーク送信元(IP アドレスまたは VPC ネットワーク)、ID タイプ(サービス アカウントまたはユーザー)、ID、デバイスデータなどのクライアント属性に基づいてリソースへのアクセスを許可できます。アクセスは上り(内向き)ルールによって定義されます。

上り(内向き) / 下り(外向き)ルールの概要については、上り(内向き)ルールと下り(外向き)ルールをご覧ください。

上り(内向き) / 下り(外向き)ルールのポリシーを適用する方法については、上り(内向き)と下り(外向き)のポリシーを構成するをご覧ください。

コンテキストアウェア アクセスを使用する場合の構成例

このセクションでは、次の場合のコンテキストアウェア アクセスについて説明します。

  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 ビューにアクセスするのを許可し(アクセスレベルを使用)、特定のサービス アカウントが承認済みの 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 ネットワークの制限をご覧ください。