接続の概要

このページでは、Cloud SQL インスタンスに接続するオプションの概要について説明します。

概要

Cloud SQL インスタンスに接続するには、次の点を考慮してください。

  • 接続方法: どのネットワーク パスを使用してインスタンスに到達するのか。
    • VPC のみの内部(プライベート)IP アドレス。
    • インターネットにアクセスできる外部(パブリック)IP アドレス。

  • 認証方法: どの接続が認証され、Cloud SQL インスタンスへの接続が許可されるのか。
    • Cloud SQL Proxy と Cloud SQL 言語コネクタ: IAM に基づいてアクセスを提供します。
    • セルフマネージド SSL/TLS 証明書: 特定の公開鍵に基づく接続のみを許可します。
    • 承認済みネットワーク: 接続可能な IP アドレスのリスト。

  • 認証方法: データベースにログインする方法。
    • ネイティブのデータベース認証: データベース エンジンでユーザー名とパスワードを設定してログインします。
    • IAM データベース認証: メールまたは oauth2 トークンをパスワードとして使用してログインします。

以下の情報を参考に、最適な接続、承認、認証のオプションを決定してください。

始める前に

アプリケーションへのアクセスを付与しても、データベース ユーザー アカウントがインスタンスに自動的に接続できるようになるわけではありません。インスタンスに接続するには、接続に使用できるデータベース ユーザー アカウントが必要です。新しいインスタンスの場合、デフォルトのユーザー アカウントを構成しておく必要があります。詳細についてはこちらをご覧ください。

接続オプション

プライベート IP

プライベート IP は、Virtual Private Cloud(VPC)でアクセス可能な IPv4 または IPv6 アドレスです。このアドレスを使用して、VPC にアクセスできる他のリソースから接続できます。プライベート IP 経由の接続では、インターネットを経由する必要がないため、通常はレイテンシが小さく、攻撃ベクトルが制限されます。

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

任意で、すべての接続について Cloud SQL Proxy またはセルフマネージド SSL 証明書のいずれかを使用するよう要求することもできます。

VPC にアクセスできるリソース上のクライアントから接続を行う場合は、プライベート IP を使用してインスタンスを構成することをおすすめします。プライベート IP を使用できるリソースの詳細については、プライベート IP の要件をご覧ください。インスタンスにプライベート IP を追加する手順については、プライベート IP 接続のを構成するをご覧ください。

パブリック IP

パブリック IP は、公共のインターネット上で外部から利用できる IPv4 または IPv6 アドレスです。このアドレスは、自宅や職場など、Google のネットワーク内外のデバイスからの接続を受信できます。

インスタンスのセキュリティを保つため、パブリック IP を使用する Cloud SQL インスタンスへの接続は、Cloud SQL Proxy または承認済みネットワークのいずれかを使用して承認する必要があります。

VPC の要件を満たしていないクライアントから接続する場合は、パブリック IP を使用してインスタンスを構成することをおすすめします。

インスタンスにパブリック IP を追加する手順については、パブリック IP 接続を構成するをご覧ください。

承認のオプション

Cloud SQL Proxy

Cloud SQL Proxy では、Identity and Access Management(IAM)権限を使用して接続を承認し、保護できます。プロキシは、認証ユーザーまたはサービス アカウントを使用して、Cloud SQL インスタンスに対して認証された SSL / TLS レイヤに接続をラップすることで接続を検証します。Cloud SQL Proxy の仕組みの詳細については、Cloud SQL Proxy についてをご覧ください。

Cloud SQL インスタンスへの接続の認証には、Cloud SQL Proxy を使用することをおすすめします。これは最も安全な方法です。

クライアント プロキシは、実行可能なバイナリとして配布されるオープンソース ライブラリです。クライアント プロキシは、受信接続をリッスンして SSL / TLS でラップし、Cloud SQL インスタンスに渡す中間サーバーとして機能します。

また、一部の言語ではクライアント ライブラリを使用できます。このライブラリは、言語環境から直接使用できます。外部プロセスを必要とせずにプロキシと同じ認証を提供します。ご利用にあたっては、次のページをご覧ください。

最後に、Cloud Run、Cloud Functions、App Engine などの一部の環境には、Cloud SQL Proxy を使用して接続する方法が用意されています。これらの環境を使用した接続の手順については、次のいずれかをご覧ください。

セルフマネージド SSL / TLS 証明書

Cloud SQL Proxy を使用して接続を暗号化する代わりに、Cloud SQL インスタンスに固有のクライアントとサーバーの SSL / TLS 証明書を設定できます。この証明書は、クライアントとサーバーの両方を相互に検証し、その間の接続を暗号化するために使用されます。

Cloud SQL Proxy を使用しない場合は、セルフマネージド SSL / TLS 証明書を使用して暗号化することを強くおすすめします。暗号化しないと、データが安全に送信されず、第三者によって傍受または監視されるおそれがあります。

セルフマネージド SSL / TLS 証明書のご利用にあたっては、SSL / TLS 証明書による承認をご覧ください。

承認済みネットワーク

Cloud SQL プロキシを使用しないと、インスタンスのパブリック IP アドレスへの接続は、接続が承認済みネットワークから送信された場合のみ許可されます。承認済みネットワークとは、ユーザーが接続権限を持たせるよう指定した IP アドレスまたは範囲のことです。

承認済みネットワークのご利用にあたっては、承認済みネットワークでの認証をご覧ください。

データベース接続を管理する

データベース接続は、サーバーと接続元アプリケーションのリソースを消費します。アプリケーションのフットプリントを最小限に抑え、Cloud SQL の接続制限を超える可能性を少なくするには、常に適切な接続管理方法を採用してください。詳細については、データベース接続の管理をご覧ください。

認証のオプション

認証とは、ユーザーの ID を確認することによるアクセス制御です。エンドユーザーについては、ユーザーが認証情報(ユーザー名とパスワード)を入力すると認証が行われます。アプリケーションでは、ユーザーの認証情報がサービス アカウントに割り当てられている場合に認証が行われます。

Cloud SQL では、ユーザー名とパスワードで認証を行うデータベースの組み込み認証を使用します。詳細については、PostgreSQL ユーザーの作成と管理をご覧ください。

また、Cloud SQL は IAM と統合されており、ユーザー アカウントとサービス アカウントのデータベース アクセスのモニタリングおよび管理を適切に行うことができます。この機能を IAM データベース認証と呼びます。

IAM データベース認証について学習する

IAM データベース認証を使用するユーザーの作成と管理について学習する

接続するためのツール

次の表に、Cloud SQL に接続するためのオプションを示します。

接続オプション 詳細
Cloud SQL Proxy
gcloud コマンドライン ツール
Cloud SQL 言語コネクタ
Cloud Shell
Apps Script
サードパーティのデータベース管理ツールを使用して接続する
pgAdmin
Toad Edge
Blendo

IP アドレスが動的に割り振られるアプリケーションへの接続

一部のアプリケーションでは、動的に割り当てられる一時的な IP アドレスを使用して、Cloud SQL インスタンスに接続する必要があります。これは、特に Platform as a Service(Paas)アプリケーションの場合に該当します。

この場合、Cloud SQL Proxy を使用する必要があります。

コードサンプル

Unix または TCP ソケットに接続できる任意の言語を使用して、プロキシに接続できます。アプリケーションでどのように連携するのかを把握できるように、GitHub の詳細な例からコード スニペットをいくつか紹介します。

トラブルシューティング

トラブルシューティング ページの接続セクションをご覧ください。

次のステップ