境界の外部からサービス境界内の Google Cloud リソースへのアクセスを制限するには、アクセスレベルを使用します。
アクセスレベルは、リクエストが処理されるために満たす必要がある一連のリクエストを定義します。アクセスレベルでは、IP アドレスやユーザー ID など、さまざまな基準を設定できます。
アクセスレベルの詳細については、Access Context Manager の概要をご覧ください。
VPC Service Controls でのアクセスレベルの制限
VPC Service Controls でアクセスレベルを使用する場合、特定の制限があります。
アクセスレベルは、境界内部の保護されたサービスのリソースに対し、境界外部からのリクエストのみを許可します。
アクセスレベルを使用して、境界外部のリソースに対し、境界内部の保護されたリソースからのリクエストを許可することはできません。たとえば、サービス境界内の Compute Engine クライアントは、使用するイメージ リソースが境界外にある Compute Engine の
create
オペレーションを呼び出します。境界外部のリソースに対し、境界内部の保護されたリソースからアクセスを許可するには、下り(外向き)ポリシーを使用します。アクセスレベルはサービス境界の外部からのリクエストを許可するために使用されますが、アクセスレベルを使用して別の境界からの保護されたリソースへのリクエストを許可することはできません。境界内の保護されたリソースに対する別の境界からのリクエストを許可するには、相手の境界で下り(外向き)ポリシーを使用する必要があります。詳細については、境界間のリクエストをご覧ください。
IP ベースの許可リストのアクセスレベルに使用できるのは、パブリック IP アドレス範囲のみです。これらの許可リストに内部 IP アドレスを含めることはできません。内部 IP アドレスは VPC ネットワークに関連付けられています。上り(内向き)または下り(外向き)ルール、またはサービス境界を使用して、VPC ネットワークはそこに含まれるプロジェクトで参照する必要があります。
別のプロジェクトまたは組織にデプロイされたプライベート リソースからの境界アクセスを許可するには、ソース プロジェクトに Cloud NAT ゲートウェイが必要です。Cloud NAT は 限定公開の Google アクセスと統合されており、リソースのサブネットで限定公開の Google アクセスが自動的に有効になり、Google API とサービスへのトラフィックが内部に保持されます。Cloud NAT ゲートウェイの外部 IP アドレスを使用してインターネットに転送されることはありません。トラフィックは Google 内部ネットワーク内でルーティングされるため、
AuditLog
オブジェクトのRequestMetadata.caller_ip
フィールドはgce-internal-ip
に編集されます。IP ベースの許可リストのアクセスレベルで Cloud NAT ゲートウェイの外部 IP アドレスを使用する代わりに、プロジェクトやサービス アカウントなどの他の属性に基づいてアクセスを許可するように上り(内向き)ルールを構成します。
アクセスレベルを作成、管理する
アクセスレベルの作成と管理は Access Context Manager で行います。
アクセスレベルを作成する
アクセスレベルの作成方法については、Access Context Manager のドキュメントのアクセスレベルの作成をご覧ください。
以降の例では、次の条件を使用してアクセスレベルを作成する方法について説明します。
- IP アドレス
- ユーザーとサービス アカウント(プリンシパル)
- デバイス ポリシー
サービス境界にアクセスレベルを追加する
サービス境界にアクセスレベルを追加するには、境界の作成時に追加するか、既存の境界に追加します。
アクセスレベルを管理
アクセスレベルの一覧表示、変更、削除については、アクセスレベルの管理をご覧ください。