公開サービスへのアクセス制御について
このページでは、Private Service Connect を使用して公開されたサービスへのアクセスを制御するために使用できる機能について説明します。
接続の設定
各サービス アタッチメントには、接続を自動的に受け入れるかどうかを制御する接続設定があります。
- すべての接続を自動的に受け入れる。サービス アタッチメントは、任意のコンシューマーからのすべてのインバウンド接続リクエストを自動的に受け入れます。
- 選択したコンシューマーからの接続を明示的に受け入れます。サービス アタッチメントは、コンシューマーがサービス アタッチメントのコンシューマー承認リストに含まれている場合にのみ、インバウンド接続リクエストを受け入れます。コンシューマーは、プロジェクト、VPC ネットワーク、個々の Private Service Connect エンドポイント(プレビュー)で指定できます。同じコンシューマーの承認リストまたは拒否リストに、異なるタイプのコンシューマーを含めることはできません。
どちらの接続設定でも、承認された接続は、受信接続をブロックする組織のポリシーによってオーバーライドされ、拒否される可能性があります。
選択したコンシューマーの接続を明示的に受け入れることをおすすめします。他の手段でコンシューマー アクセスを制御し、サービスに対して制限の緩すぎるアクセスを有効にする場合は、すべての接続を自動的に受け入れるのが適切です。
コンシューマーの承認リストと拒否リスト
コンシューマーの承認リストと拒否リストは、サービス アタッチメントのセキュリティ機能です。これらのリストを使用すると、サービス プロデューサーはサービスに対する Private Service Connect 接続を確立できるコンシューマーを指定できます。明示的な承認用にサービス アタッチメントが構成されている場合、コンシューマーが承認リストに含まれていて、拒否リストに含まれていない場合にのみ、新しい接続が受け入れられます。コンシューマー リストの更新は、接続の調整が有効になっていない限り、新しい接続にのみ影響します。
コンシューマーの承認リストと拒否リストでは、次のいずれかの方法でコンシューマーを指定できます。
- プロジェクト
- VPC ネットワーク
Private Service Connect エンドポイント(プレビュー)
この方法は、Private Service Connect バックエンドには適用されません。
同じコンシューマーを承認リストと拒否リストの両方に追加すると、そのコンシューマーはサービス アタッチメントへの接続をブロックされます。フォルダでコンシューマを指定することはできません。
サービス アタッチメントのコンシューマー リストの両方に、同じタイプのコンシューマーが含まれている必要があります。たとえば、プロジェクトを承認リストに追加した場合、承認リスト内のプロジェクトを新しいタイプのコンシューマーに置き換えない限り、VPC ネットワークまたはエンドポイント URI をいずれのリストにも追加できません。
さまざまなタイプのコンシューマーを受け入れるサービスを公開する場合は、同じサービスに接続する複数のサービス アタッチメントを作成できます。各サービス アタッチメントは、独自の接続設定とコンシューマー リストで構成できます。
接続を中断することなく、コンシューマー リスト内のコンシューマーのタイプを変更できますが、変更は 1 回の更新で行う必要があります。そうしないと、オペレーションは失敗します。
承認リストと拒否リストに追加できるコンシューマーの数には上限があります。
- コンシューマーの許可リストには最大 5,000 個の値を追加できます。
- コンシューマー拒否リストには最大 64 個の値を追加できます。
コンシューマー リストは、エンドポイントまたはバックエンドが公開サービスに接続できるかどうかを制御しますが、そのエンドポイントにリクエストを送信できるユーザーは制御しません。たとえば、コンシューマーに 2 つのサービス プロジェクトが接続された共有 VPC ネットワークがあるとします。公開サービスのコンシューマーの承認リストに service-project1 があり、コンシューマーの拒否リストに service-project2 がある場合、次のように処理されます。
-
service-project1のコンシューマーは、公開サービスに接続するエンドポイントを作成できます。 -
service-project2のコンシューマーは、公開サービスに接続するエンドポイントを作成できません。 -
service-project2のクライアントは、トラフィックをブロックするファイアウォール ルールまたはポリシーがない場合、service-project1のエンドポイントにリクエストを送信できます。
コンシューマーの承認リストと組織のポリシー間のやり取り方法については、コンシューマー承認リストと組織のポリシー間のやり取りをご覧ください。
コンシューマーの承認リストの上限
コンシューマーの承認リストには、接続上限があります。これらの上限により、サービス アタッチメントが指定されたコンシューマー プロジェクトまたは VPC ネットワークから受け入れることができる Private Service Connect エンドポイント接続の合計数が設定されます。
プロデューサーは接続上限を使用して、個別のコンシューマーがプロデューサー VPC ネットワーク内の IP アドレスまたはリソースの割り当てを使い切らないようにします。受け入れられた各 Private Service Connect 接続は、コンシューマー プロジェクトまたは VPC ネットワークの構成済み上限から差し引かれます。上限は、コンシューマーの承認リストを作成または更新するときに設定されます。サービス アタッチメントの詳細を取得する際に、サービス アタッチメントの接続を確認できます。
たとえば、サービス アタッチメントに project-1 と project-2 を含むコンシューマー承認リストがあり、両方が 1 つの接続に制限されているとします。プロジェクト project-1 は 2 つの接続、project-2 は 1 つの接続、project-3 は 1 つの接続をリクエストします。project-1 には 1 つの接続という制限があるため、最初の接続は受け入れられますが、2 番目の接続は保留中のままになります。project-2 からの接続は受け入れられますが、project-3 からの接続は保留中のままになります。project-1 の上限を引き上げると、project-1 から 2 番目の接続を受け入れることが可能になります。project-3 がコンシューマーの承認リストに追加されると、その接続は保留中から承認済みに移行します。
接続調整
接続の調整により、サービス アタッチメントの許可リストまたは拒否リストの更新が既存の Private Service Connect 接続に影響を与えるかどうかが決まります。接続の調整が有効になっている場合、許可リストまたは拒否リストを更新すると、既存の接続が終了する場合があります。以前に拒否された接続が受け入れられる可能性もあります。接続の調整が無効になっている場合、許可リストまたは拒否リストの更新は新しい接続と保留中の接続にのみ影響します。
たとえば、Project-A からの複数の接続が承諾されているサービス アタッチメントがあるとします。Project-A は、サービス アタッチメントの許可リストにあります。許可リストから Project-A を削除してサービス アタッチメントを更新しました。
接続の調整が有効になっている場合、Project-A からの既存の接続はすべて PENDING に変わり、これにより、2 つの VPC ネットワーク間のネットワーク接続が切断され、ネットワーク トラフィックが直ちに停止します。
接続の調整が無効になっている場合、Project-A からの既存の接続は影響を受けません。ネットワーク トラフィックは引き続き既存の Private Service Connect 接続間を通過します。ただし、新しい Private Service Connect 接続は許可されません。
新しいサービス アタッチメントの接続調整を構成する方法については、明示的な承認でサービスを公開するをご覧ください。
既存のサービス アタッチメントの接続調整を構成する方法については、接続調整を構成するをご覧ください。
Private Service Connect エンドポイント接続を承認または拒否する
エンドポイントの ID ベースの URI をサービス アタッチメントのコンシューマー リストのいずれかに追加することで、個々の Private Service Connect エンドポイント接続を承認または拒否できます。このアプローチは、マルチテナント サービスにおすすめの方法で、接続を管理するための最もきめ細かい制御が可能です。Private Service Connect エンドポイントによるコンシューマーの受け入れは、Private Service Connect エンドポイントにのみ適用され、Private Service Connect バックエンドはサポートしていません。
プロジェクトや VPC ネットワークとは異なり、個々の Private Service Connect エンドポイントは、コンシューマーがエンドポイントを作成した後にのみ承認または拒否できます。これは、コンシューマーがエンドポイントを作成するまで、エンドポイントの一意の URI がわからないためです。エンドポイントをコンシューマー承認リストに追加する手順は次のとおりです。
- プロデューサーが、明示的な承認を必要とするサービスを公開しましたが、コンシューマーの承認リストに値を追加していません。
-
コンシューマーは、公開サービスに接続するエンドポイントを作成します。接続は、ステータスが
Pendingのサービス アタッチメントに表示されます。 - 保留中のエンドポイントの ID ベースの URI を確認するには、プロデューサーがサービス アタッチメントを記述するか、コンシューマーがエンドポイントを記述します。
-
プロデューサーは、エンドポイントの ID ベースの URI をコンシューマー承認リストに追加します。接続が確立され、ステータスが
Acceptedに変わります。