境界の外部からサービス境界内の Google Cloud リソースへのアクセスを制限するには、アクセスレベルを使用します。
アクセスレベルは、リクエストが処理されるために満たす必要がある一連のリクエストを定義します。アクセスレベルでは、IP アドレスやユーザー ID など、さまざまな基準を設定できます。
アクセスレベルの詳細については、Access Context Manager の概要をご覧ください。
境界でアクセスレベルを使用する前に、次の点を考慮してください。
アクセスレベルと上り(内向き)ルールは連携して、境界への受信トラフィックを制御します。VPC Service Controls は、アクセスレベルまたは上り(内向き)ルールの条件を満たしているリクエストを許可します。
サービス境界に複数のアクセスレベルを追加すると、VPC Service Controls は、いずれかのアクセスレベルの条件を満たすリクエストを許可します。
VPC Service Controls でのアクセスレベルの制限
VPC Service Controls でアクセスレベルを使用する場合、特定の制限があります。
アクセスレベルは、境界内部の保護されたサービスのリソースに対し、境界外部からのリクエストのみを許可します。
アクセスレベルを使用して、境界外部のリソースに対し、境界内部の保護されたリソースからのリクエストを許可することはできません。たとえば、サービス境界内の Compute Engine クライアントは、使用するイメージ リソースが境界外にある Compute Engine の
create
オペレーションを呼び出します。境界外部のリソースに対し、境界内部の保護されたリソースからアクセスを許可するには、下り(外向き)ポリシーを使用します。アクセスレベルはサービス境界の外部からのリクエストを許可するために使用されますが、アクセスレベルを使用して別の境界からの保護されたリソースへのリクエストを許可することはできません。境界内の保護されたリソースに対する別の境界からのリクエストを許可するには、相手の境界で下り(外向き)ポリシーを使用する必要があります。詳細については、境界間のリクエストをご覧ください。
別のプロジェクトまたは組織にデプロイされたプライベート リソースからの境界アクセスを許可するには、ソース プロジェクトに 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 アドレス
- ユーザーとサービス アカウント(プリンシパル)
- デバイス ポリシー
サービス境界にアクセスレベルを追加する
サービス境界にアクセスレベルを追加するには、境界の作成時に追加するか、既存の境界に追加します。
アクセスレベルを管理
アクセスレベルの一覧表示、変更、削除については、アクセスレベルの管理をご覧ください。