コンテキストアウェア アクセスの上り(内向き)ルールを設定すると、ネットワーク送信元(IP アドレスまたは VPC ネットワーク)、ID タイプ(サービス アカウントまたはユーザー)、ID、デバイスデータなどのクライアント属性に基づいてリソースへのアクセスを許可できます。アクセスは上り(内向き)ルールによって定義されます。
上り(内向き) / 下り(外向き)ルールの概要については、上り(内向き)ルールと下り(外向き)ルールをご覧ください。
上り(内向き) / 下り(外向き)ルールのポリシーを適用する方法については、上り(内向き)と下り(外向き)のポリシーを構成するをご覧ください。
コンテキストアウェア アクセスを使用する場合の構成例
このセクションでは、次の場合のコンテキストアウェア アクセスについて説明します。
- ユーザーがインターネットから 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 ビューにアクセスするのを許可し(アクセスレベルを使用)、特定のサービス アカウントが承認済みの 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 ネットワークの制限をご覧ください。