サービス接続の自動化について

サービス接続の自動化により、サービス コンシューマはマネージド サービスへの接続のデプロイを自動化できます。

データベース インスタンスをデプロイし、サービス コンシューマが Private Service Connect エンドポイントを介してそのデータベースにアクセスできるようにするデータベース管理者について考えてみましょう。データベース管理者は、ネットワーキング リソースのデプロイに必要な Identity and Access Management(IAM)の認証情報や専門知識を持っていない場合があります。

マネージド サービスがサービス接続の自動化をサポートしている場合、サービス インスタンスの構成とネットワーキングの構成は、適切な管理者に委任できます。

  • サービス インスタンス管理者は、サービスにアクセスできるネットワークを制御できます。

  • ネットワーク管理者は、接続を許可するサービスを制御できます。

これらの構成が一致すると、サービス接続の自動化により適切なネットワークにエンドポイントが作成され、マネージド サービス インスタンスへの接続が提供されます。

サービス接続の自動化の概要

次のセクションでは、サービス接続の自動化を使用する単一の VPC ネットワークの基本構成について説明します。他の構成については、共有 VPCカスタム サービス インスタンス スコープを使用する Google サービスをご覧ください。

サービス接続の自動化をサポートするマネージド サービスのインスタンスをデプロイするには、次の操作を行います。

  1. ネットワーク管理者は、VPC ネットワークのサービス接続ポリシーを作成します。

    サービス接続ポリシーは、サービスクラス(特定のプロデューサー サービスを識別するグローバルに一意のリソース)を参照します。1 つのサービス接続ポリシーは、1 つのサービスクラスと 1 つのコンシューマ VPC ネットワークをスコープとし、そのスコープ内で接続を構成する機能を委任します。

  2. サービス インスタンス管理者は、サービスの管理 API または UI を使用してマネージド サービス インスタンスをデプロイします。サービス インスタンスの構成では、サービス接続の自動化を介してサービスにアクセスできるネットワークを指定します。

  3. サービス接続の自動化により、コンシューマ VPC ネットワークにエンドポイントが作成されます。このエンドポイントを使用して、サービス インスタンスにリクエストを送信できます。

サービス接続の自動化により、サービス コンシューマはマネージド サービスへの接続のデプロイを自動化できます(クリックして拡大)。

プロデューサーの構成

以降のセクションでは、サービス プロデューサーがサービス接続性の自動化を構成するために使用するリソースについて説明します。

サービスクラス

サービスクラスは、マネージド サービスタイプのグローバルに一意な表現です。各プロデューサーは、自身のサービスクラスを排他的に所有しています。コンシューマは、サービス接続ポリシーでサービスクラスを参照し、デプロイを承認してプロデューサーへの接続を委任します。

サービス接続ポリシーは、サービスクラスを持つサービスに対してのみ作成できます。

サービスクラスは、Google が公開するサービスで使用できます。サービスクラスは、サードパーティ サービスと自己ホスト型の内部マネージド サービスに対して、制限付きのプレビュー版でも利用できます。詳細については、サポートされているサービスをご覧ください。

サービス接続マップ

サービス接続マップは、コンシューマ VPC ネットワークとプロデューサーのマネージド サービス インスタンス間の Private Service Connect 接続の承認と確立の詳細を保存するプロデューサー管理リソースです。このマップは、プロデューサー サービス インスタンス(サービス アタッチメントで表されます)と、サービス インスタンスへの接続が承認されているコンシューマー プロジェクトと VPC ネットワークとの間の許可された関係を定義します。

認可モデル

サービス接続ポリシーを使用すると、コンシューマは接続のデプロイをマネージド サービスに委任できます。サービス プロデューサーには、コンシューマー プロジェクトに対する直接アクセス権や IAM 権限がありません。代わりに、プロデューサーは自身のプロジェクトでサービス接続マップを構成します。

サービス接続マップが作成または更新されると(通常は、コンシューマ サービス管理者からマネージド サービスの管理 API または UI へのリクエストに応答して)、サービス接続自動化が一連の認可チェックを実行します。すべてのチェックに合格すると、リクエストで指定されたように Private Service Connect エンドポイントが作成されます。

  • ネットワーク構成(サービス接続ポリシー):

    • ネットワークの承認。コンシューマ VPC ネットワークには、リクエストで指定された VPC ネットワーク、リージョン、サービスクラスを認可する有効なサービス接続ポリシーが必要です。このチェックにより、VPC ネットワークに対する IAM 権限を持つコンシューマ ネットワーク管理者が、指定したサービスタイプの Private Service Connect エンドポイントを作成する権限を明示的に委任できます。
    • サービス インスタンスのスコープ。マネージド サービス インスタンスが Google サービスで、サービス接続ポリシーでカスタム サービス インスタンス スコープ(custom-resource-hierarchy-levels)が指定されている場合、サービス接続の自動化は、指定されたResource Manager ノードのリスト(--allowed-google-producers-resource-hierarchy-level)を確認します。サービス インスタンス管理者がマネージド サービスの UI または API でサービス インスタンスのデプロイと管理に指定したプロジェクトは、このリストで定義された許可されたスコープ内にある必要があります。スコープには、組織、フォルダ、プロジェクトを組み合わせることができます。
    • エンドポイント プロジェクトの検証。接続ポリシーが作成されるプロジェクトは、エンドポイントを作成する VPC ネットワークに関連付ける必要があります。プロジェクトには VPC ネットワークが含まれているか、共有 VPC ネットワークに接続されているサービス プロジェクトである必要があります。
  • サービス インスタンスの構成:

    • サービス管理者の IAM 承認。コンシューマ サービス管理者には、プロデューサー サービス インスタンスの作成または更新に必要な IAM 権限が必要です。これらの権限は、デプロイされるサービスによって異なります。

    • サービス インスタンス管理者の承認。サービスの管理 API で、サービス インスタンスを作成したサービス インスタンス管理者が、接続をリクエストする VPC ネットワークからの接続を許可するようにインスタンスを構成する必要があります。

  • プロデューサーの構成:

    • プロデューサーの IAM 権限。サービス接続マップを作成または更新するプロデューサー サービス管理者には、関連するサービスクラスに対する IAM 権限が必要です。このチェックにより、公開サービスクラスの誤った記述を防ぐことができます。

各条件が満たされると、ネットワーク接続サービス アカウントが、承認済みネットワークにリクエストされたエンドポイントを作成します。Network Connectivity サービス アカウントは、サービス エージェントです。

共有 VPC

サービス接続の自動化を使用すると、共有 VPC ネットワークに Private Service Connect エンドポイントを自動的に作成できます。エンドポイントは共有 VPC ネットワークの IP アドレスで構成されているため、ホスト プロジェクトと接続されているすべてのサービス プロジェクトからエンドポイントにアクセスできます。

次の図に示す構成を作成するには、次のタスクを完了します。

  1. ネットワーク管理者は、project1 ホスト プロジェクトの vpc1 ネットワークのサービス接続ポリシーを作成し、google-cloud-sql サービスクラスを使用するサービス インスタンスへの接続を許可します。エンドポイント IP アドレスは endpoint-subnet サブネットから割り振られます。

  2. サービス インスタンス管理者は、service-project-test プロジェクトに db-testservice-project-prod プロジェクトに db-prod の 2 つのマネージド サービス インスタンスをデプロイします。管理者は、サービス接続の自動化によって、サービス インスタンスに接続する project1 のネットワーク vpc1 にエンドポイントをデプロイできるように、サービス インスタンスを構成します。

  3. すべての認可チェックに合格するため、サービス接続の自動化により、endpoint-subnet に接続する 2 つのエンドポイント(サービス インスタンスごとに 1 つ)が作成されます。vm-subnet サブネットに接続されているすべての VM は、エンドポイントと同じ共有 VPC ネットワークに接続されているため、エンドポイントにアクセスできます。

共有 VPC ネットワークでサービス接続ポリシーを使用して、サービス プロジェクトにデプロイされたサービス インスタンスへの接続を作成できます(クリックして拡大)。

カスタム サービス インスタンス スコープを持つ Google サービス

デフォルトでは、サービス接続の自動化では、サービス インスタンスとサービス インスタンスに接続するエンドポイントが同じプロジェクト(共有 VPC の場合は接続されたプロジェクト)に存在する必要があります。サポートされている Google サービスの場合、サービス インスタンスと接続エンドポイントは異なるプロジェクトまたは組織に配置できます。

次の図に示す構成を作成するには、次のタスクを完了します。

  1. vpc-1vpc-2vpc-3 のネットワーク管理者は、それぞれの VPC ネットワークにサービス接続ポリシーを作成します。これらにより、google-cloud-sql サービスクラスを使用し、組織 org-1 のプロジェクト project-1 にデプロイされているサービス インスタンスへの接続が可能になります。

  2. サービス インスタンス管理者は、サービスの管理 API または UI を使用して、project-1 にマネージド サービス インスタンス db-1 をデプロイします。管理者は、サービス接続の自動化によって db-1 に接続するエンドポイントが vpc-1vpc-2 にデプロイされるようにサービス インスタンスを構成します。

  3. vpc-1vpc-2 の場合、認可チェックはすべて合格し、サービス接続の自動化により各ネットワークにエンドポイントが作成されます。これらのネットワーク内の VM は、エンドポイントを介してサービス インスタンスにトラフィックを送信できます。

    ただし、db-1 サービス インスタンスの構成でそのネットワークが自動接続用に構成されていないため、vpc-3 にエンドポイントは作成されません。

    vpc-3db-1 サービス インスタンスにアクセスする必要がある場合、ネットワーク管理者はデータベース管理者に連絡して、db-1 の接続構成に vpc-3 を追加するよう依頼できます。

さまざまなプロジェクト、フォルダ、組織からサポートされている Google サービスへの接続を自動化できます(クリックして拡大)。

サポート対象のサービス

サービス接続の自動化をサポートする Google サービスは次のとおりです。

Google サービス 提供されるアクセス権
Cloud SQL Cloud SQL インスタンスへの接続の作成を自動化できます。
Memorystore for Redis Cluster Memorystore for Redis Cluster インスタンスへの接続の作成を自動化できます。
Memorystore for Valkey Memorystore for Valkey インスタンスへの接続の作成を自動化できます。
Vertex AI Vector Search ベクトル検索エンドポイントへの接続の作成を自動化できます。

サードパーティ マネージド サービスがサービス接続ポリシーをサポートしているかどうかを確認するには、サービス プロバイダにお問い合わせください。サービスがサービス接続ポリシーをサポートしている場合、サービス プロバイダは関連するサービスクラスを提供できます。

プロデューサー側の自動化リソースは、限定的なプレビューとして提供されています。独自のマネージド サービスでコンシューマーの接続を自動化する場合は、 Google Cloudの営業担当者にお問い合わせください。