コンテキストアウェア アクセスの上り(内向き)ルールを設定すると、ネットワーク送信元(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 ネットワークの制限をご覧ください。