このページでは、IP アドレスを使用する Cloud SQL インスタンスへの接続に承認済みネットワーク設定を使用する方法について説明します。
承認済みネットワークを構成する
クライアント アプリケーションの IP アドレスまたはアドレス範囲は、次の場合に authorized networks
として構成する必要があります。
- クライアント アプリケーションが、パブリック IP アドレスで Cloud SQL インスタンスに直接接続している。
- クライアント アプリケーションが、プライベート IP アドレスで Cloud SQL インスタンスに直接接続していて、クライアントの IP アドレスが RFC 1918 以外のアドレスになっている。
IP アドレスは、単一のエンドポイントにすることも、CIDR 表記の範囲にすることもできます。
コンソール
-
Google Cloud コンソールで Cloud SQL の [インスタンス] ページに移動します。
- インスタンスの [概要] ページを開くには、インスタンス名をクリックします。
- SQL ナビゲーション メニューから [接続] を選択します。
- [Network] タブをクリックします。
- [パブリック IP] チェックボックスをオンにします。
- [ネットワークを追加] をクリックします。
- [名前] フィールドに、新しいネットワークの名前を入力します。
- [ネットワーク] フィールドに、接続を許可するパブリック IPv4 アドレスまたはアドレス範囲を入力します。
アドレス範囲には、有効な CIDR 表記(例: 10.10.10.0/24)を使用する必要があります。
- [完了] をクリックします。
- [保存] をクリックします。
gcloud
承認済みネットワークを構成すると、既存の承認済みネットワークのリストが置き換えられます。
gcloud sql instances patch INSTANCE_ID \ --authorized-networks=NETWORK_RANGE_1,NETWORK_RANGE_2...
Terraform
承認済みネットワークを構成するには、Terraform リソースを使用します。
変更を適用する
Google Cloud プロジェクトで Terraform 構成を適用するには、次のセクションの手順を完了します。
Cloud Shell を準備する
- Cloud Shell を起動します。
-
Terraform 構成を適用するデフォルトの Google Cloud プロジェクトを設定します。
このコマンドは、プロジェクトごとに 1 回だけ実行する必要があります。これは任意のディレクトリで実行できます。
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Terraform 構成ファイルに明示的な値を設定すると、環境変数がオーバーライドされます。
ディレクトリを準備する
Terraform 構成ファイルには独自のディレクトリ(ルート モジュールとも呼ばれます)が必要です。
-
Cloud Shell で、ディレクトリを作成し、そのディレクトリ内に新しいファイルを作成します。ファイルの拡張子は
.tf
にする必要があります(例:main.tf
)。このチュートリアルでは、このファイルをmain.tf
とします。mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
チュートリアルを使用している場合は、各セクションまたはステップのサンプルコードをコピーできます。
新しく作成した
main.tf
にサンプルコードをコピーします。必要に応じて、GitHub からコードをコピーします。Terraform スニペットがエンドツーエンドのソリューションの一部である場合は、この方法をおすすめします。
- 環境に適用するサンプル パラメータを確認し、変更します。
- 変更を保存します。
-
Terraform を初期化します。これは、ディレクトリごとに 1 回だけ行います。
terraform init
最新バージョンの Google プロバイダを使用する場合は、
-upgrade
オプションを使用します。terraform init -upgrade
変更を適用する
-
構成を確認して、Terraform が作成または更新するリソースが想定どおりであることを確認します。
terraform plan
必要に応じて構成を修正します。
-
次のコマンドを実行します。プロンプトで「
yes
」と入力して、Terraform 構成を適用します。terraform apply
Terraform に「Apply complete!」というメッセージが表示されるまで待ちます。
- Google Cloud プロジェクトを開いて結果を表示します。Google Cloud コンソールの UI でリソースに移動して、Terraform によって作成または更新されたことを確認します。
変更を削除する
変更を削除するには、次の手順を行います。
- 削除の保護を無効にするには、Terraform 構成ファイルで
deletion_protection
引数をfalse
に設定します。deletion_protection = "false"
- 次のコマンドを実行します。プロンプトで「
yes
」と入力して、更新された Terraform 構成を適用します。terraform apply
-
次のコマンドを実行します。プロンプトで「
yes
」と入力して、以前に Terraform 構成で適用されたリソースを削除します。terraform destroy
REST v1
承認済みネットワークを構成すると、既存の承認済みネットワークのリストが置き換えられます。
リクエストのデータを使用する前に、次のように置き換えます。
- project-id: プロジェクト ID
- instance-id: インスタンス ID
- network_range_1: 認可済みの IP アドレスまたは範囲
- network_range_2: 別の認可済み IP アドレスまたは範囲
HTTP メソッドと URL:
PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id
リクエストの本文(JSON):
{ "settings": { "ipConfiguration": { "authorizedNetworks": [{"value": "network_range_1"}, {"value": "network_range_2"}] } } }
リクエストを送信するには、次のいずれかのオプションを開きます。
次のような JSON レスポンスが返されます。
REST v1beta4
承認済みネットワークを構成すると、既存の承認済みネットワークのリストが置き換えられます。
リクエストのデータを使用する前に、次のように置き換えます。
- project-id: プロジェクト ID
- instance-id: インスタンス ID
- network_range_1: 認可済みの IP アドレスまたは範囲
- network_range_2: 別の認可済み IP アドレスまたは範囲
HTTP メソッドと URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id
リクエストの本文(JSON):
{ "settings": { "ipConfiguration": { "authorizedNetworks": [{"value": "network_range_1"}, {"value": "network_range_2"}] } } }
リクエストを送信するには、次のいずれかのオプションを開きます。
次のような JSON レスポンスが返されます。
制限事項
一部の IP アドレス範囲は、承認済みネットワークとして追加できません。
アドレス範囲 | 注 |
---|---|
10.0.0.0/8 | RFC 1918 アドレス範囲。これらは、Cloud SQL によって承認済みネットワークに自動的かつ暗黙的に含まれます。 |
172.16.0.0/12 | RFC 1918 アドレス範囲。これらは、Cloud SQL によって承認済みネットワークに自動的かつ暗黙的に含まれます。 |
192.168.0.0/16 | RFC 1918 アドレス範囲。これらは、Cloud SQL によって承認済みネットワークに自動的かつ暗黙的に含まれます。 |
次のステップ
インスタンスのアクセス制御の詳細を確認する。
インスタンスを構成して、SSL / TLS を使用する。
SSL / TLS を使用して psql クライアントからインスタンスに接続する。