接続に関する組織のポリシー

このページでは、Cloud SQL プロジェクトで接続に関する組織のポリシーを使用する方法の概要を説明します。接続に関する組織のポリシーの作成を開始するには、接続に関する組織のポリシーを構成するをご覧ください。

概要

接続に関する組織のポリシーは、Cloud SQL のパブリック IP 設定の一元管理を可能にし、インターネットからの Cloud SQL インスタンスに対するセキュリティ攻撃の可能性を低減します。組織ポリシー管理者は、接続ポリシーを使用して、プロジェクト、フォルダ、または組織レベルで Cloud SQL のパブリック IP 構成を制限できます。

組織のポリシーについて

組織のポリシーを使用すると、組織管理者はユーザーがその組織の下でインスタンスを構成する方法を制限できます。組織のポリシーは、組織管理者がプロジェクト、フォルダ、または組織に適用する、制約と呼ばれるルールを使用します。制約により、すべてのインスタンスに対してポリシーが適用されます。たとえば、組織のポリシーを持つエンティティにインスタンスを追加しようとすると、制約によってインスタンスの構成が制約の要件に従っているかどうかチェックされます。チェックが失敗した場合、Cloud SQL はインスタンスを作成しません。

組織のポリシーを使用する組織またはフォルダにプロジェクトを追加すると、プロジェクトにそのポリシーの制約が継承されます。

組織のポリシーの詳細については、組織のポリシー サービス制約階層評価をご覧ください。

接続に関する組織のポリシーの制約

接続に関する組織のポリシーには、Cloud SQL インスタンスへのアクセスを制限する 2 種類の制約があります。

制約 説明 デフォルト
Cloud SQL インスタンスに対するパブリック IP のアクセスを制限する このブール型制約が True に設定されている Cloud SQL インスタンスに対するパブリック IP の構成が制限されます。この制約は遡って適用されません。パブリック IP アクセスがすでにある Cloud SQL インスタンスは、この制約の適用後も機能します。
デフォルトでは、Cloud SQL インスタンスへのパブリック IP アクセスは許可されます。

constraints/sql.restrictPublicIp
許可
Cloud SQL インスタンスに対する承認済みネットワークを制限する このブール型制約が True に設定されている Cloud SQL インスタンスへのプロキシを経由しないデータベース アクセスに関して、承認済みネットワークの追加が制限されます。この制約は遡って適用されません。承認済みネットワークがすでにある Cloud SQL インスタンスは、この制約の適用後も機能します。
デフォルトでは、Cloud SQL インスタンスに承認済みネットワークを追加できます。

constraints/sql.restrictAuthorizedNetworks
許可

接続に関する組織のポリシーの適用ルール

Cloud SQL は、次のタスク中に接続に関する組織のポリシーを適用します。

  • インスタンスの作成
  • レプリカの作成
  • インスタンスの再構成
  • インスタンスのクローン作成
  • インスタンスの復元

すべての Cloud SQL 組織ポリシーの制約と同様に、ポリシーの変更は既存のインスタンスに遡って適用されることはありません。

  • 新しいポリシーは、既存のインスタンスには影響しません。
  • ユーザーが Console、gcloud コマンドライン ツール、または RPC を使用してインスタンス構成をコンプライアンス状態から非コンプライアンス状態に変更しない限り、既存のインスタンス構成は有効なままです。
  • メンテナンスはインスタンスの構成を変更しないので、定期メンテナンス更新によってポリシーが適用されることはありません。

制限事項

プロジェクトごとに接続に関する組織のポリシーを設定する場合は、次のいずれかがプロジェクトに当てはまるか判断する必要があります。

リードレプリカのパブリック IP アドレスの競合

Cloud SQL リードレプリカは、プロキシを使用しないデータベース接続を介してプライマリ インスタンスに接続します。プライマリ インスタンスの承認済みネットワーク設定を使用して、リードレプリカのパブリック IP アドレスを明示的または暗黙的に構成します。

プライマリ インスタンスとレプリカ インスタンスの両方が同じリージョン内にあり、プライベート IP を有効にしている場合、接続に関する組織のポリシーの制約とは競合しません。

gcloud sql connect 使用時の非互換性

gcloud sql connect コマンドは、パブリック IP アドレスを使用して Cloud SQL インスタンスに直接接続します。そのため、sql.restrictPublicIp 制約との互換性はありません。これは通常、プライベート IP を使用するインスタンスの問題です。

さらに、gcloud sql connect コマンドはプロキシを使用しないため、sql.restrictAuthorizedNetworks 制約との互換性がありません。

代わりに、コマンドのベータ版を使用します。

gcloud beta auth login
gcloud beta sql connect [INSTANCE_ID]

このバージョンは Cloud SQL Proxy を使用します。参照情報については、gcloud beta sql connect をご覧ください。

このコマンドを初めて実行すると、gcloud Cloud SQL Proxy コンポーネントをインストールするように求められます。そのためには、クライアント マシンの gcloud SDK インストール ディレクトリへの書き込み権限が必要です。

GCP でホストされているサービスへのアクセス

App Engine など GCP でホストされている他のサービスから Cloud SQL インスタンスにアクセスする必要がある場合、アプリケーションはパブリック IP アドレスを使用する必要があります。プロジェクトに sql.restrictPublicIp 制約を適用しないでください。ただし、App Engine からの接続は安全な(プロキシされた)接続を経由するため、sql.restrictAuthorizedNetworks を適用できます。

MySQL のフェイル オーバー レプリカのパブリック IP の競合

MySQL フェイル オーバー レプリカは、接続に関する組織のポリシーのリードレプリカと同じように機能します。プライマリ インスタンスとレプリカ インスタンスの両方が同じリージョン内にあり、プライベート IP を有効にしている場合、接続に関する組織のポリシーの制約とは競合しません。

RFC 1918 以外のプライベート IP アドレス

プライベート IP アドレスを使用して Cloud SQL インスタンスへ接続すると、RFC 1918 アドレス範囲が自動的に承認されます。これにより、すべてのプライベート クライアントがプロキシを経由せずにデータベースにアクセスできます。RFC 1918 以外のアドレス範囲は、承認済みネットワークとして構成する必要があります。

承認済みネットワークで構成されていない RFC 1918 以外のプライベート IP 範囲を使用するには、次のいずれかまたは両方を行います。

  1. sql.restrictAuthorizedNetworks を適用しない。承認済みネットワークが sql.restrictPublicIp を適用している場合、コンソールで構成できません。代わりに、Cloud SQL API または gcloud コマンドライン ツールを使用してください。
  2. プライベート IP インスタンスにプロキシ接続を使用する。

既知の問題

承認済みネットワークを制限する制約

承認済みネットワーク エントリがすでに存在する Cloud SQL インスタンスの場合、承認済みネットワークを制限する(sql.restrictAuthorizedNetworks)制約を使用していても、追加の承認済みネットワーク エントリが許可されます。これは、読み取り専用レプリカまたはフェイル オーバー レプリカを有効にしているインスタンスにも影響します。これは、インスタンスにユーザーには表示されないレプリカの承認済みネットワーク エントリがあるためです。

この既知の問題は、制約によって許可されるのが承認済みネットワーク エントリの追加ではなく、削除のみの場合には解消されます。

次のステップ