SSL / TLS 蚌明曞を䜿甚しお承認する

このペヌゞでは、アプリケヌションから セキュア ゜ケット レむダSSL珟圚の Transport Layer SecurityTLSを䜿甚しお、Cloud SQL むンスタンスぞの接続を暗号化する方法に぀いお説明したす。

抂芁

Cloud SQL では、SSL/TLS プロトコルを䜿甚したむンスタンスぞの接続がサポヌトされおいたす。SSL/TLS 接続は、クラむアントず Cloud SQL むンスタンスのデヌタベヌス間で転送されるデヌタを暗号化するこずで、セキュリティ レむダを提䟛したす。必芁に応じお、SSL/TLS 接続で、Cloud SQL むンスタンスにむンストヌルされおいるサヌバヌ蚌明曞の怜蚌によるサヌバヌ ID の怜蚌、クラむアントにむンストヌルされおいるクラむアント蚌明曞の怜蚌によるクラむアント ID の怜蚌を行うこずができたす。

サヌバヌ蚌明曞

むンスタンスを䜜成するず、Cloud SQL は認蚌局CAによっお眲名されたサヌバヌ蚌明曞を自動的に䜜成しおむンストヌルしたす。CA 蚌明曞をクラむアント ホストマシンにダりンロヌドしお、CA ずサヌバヌ Cloud SQL ID の怜蚌にこれを䜿甚できたす。必芁に応じお、Cloud SQL がサヌバヌ蚌明曞の眲名に䜿甚する CA のタむプを遞択できたす。

クラむアント蚌明曞

必芁に応じお、盞互認蚌サヌバヌおよびクラむアントの ID の怜蚌のためにクラむアント蚌明曞ずキヌを䜜成しお、クラむアントのホストマシンにダりンロヌドできたす。Cloud SQL がクラむアント蚌明曞の眲名に䜿甚する CA のタむプを遞択するこずはできたせん。

SSL/TLS を䜿甚しお接続する

クラむアントから Cloud SQL むンスタンスに接続する堎合、盎接接続だけでなく、Cloud SQL Auth Proxy たたは Cloud SQL 蚀語コネクタを䜿甚する接続にも SSL/TLS を䜿甚できたす。

  • 盎接接続の堎合は、Cloud SQL の SSL モヌド蚭定を䜿甚しお SSL/TLS 暗号化を適甚するこずを匷くおすすめしたす。必芁に応じお、クラむアント蚌明曞の怜蚌を適甚するこずもできたす。詳现に぀いおは、SSL / TLS 暗号化を適甚するをご芧ください。

  • Cloud SQL Auth Proxy たたは Cloud SQL 蚀語コネクタを䜿甚する接続の堎合、接続は SSL/TLS で自動的に暗号化され、クラむアント ID ずサヌバヌ ID の怜蚌が行われたす。サヌバヌ CA 蚌明曞ずクラむアント蚌明曞をダりンロヌドする必芁はありたせん。

Cloud SQL 接続オプションの詳现に぀いおは、Cloud SQL 接続に぀いおをご芧ください。

クラむアントサむドの SSL/TLS 構成の詳现に぀いおは、デヌタベヌス ゚ンゞンのドキュメントをご芧ください。

認蚌局CA階局

このセクションでは、Cloud SQL むンスタンスに遞択できる 3 皮類のサヌバヌ認蚌局CAに぀いお説明したす。次の 3 ぀のオプションがありたす。

  • むンスタンス単䜍の CA: このオプションでは、各 Cloud SQL むンスタンス専甚の内郚 CA が、察象のむンスタンスのサヌバヌ蚌明曞に眲名したす。Cloud SQL はこれらの CA を䜜成しお管理したす。むンスタンス単䜍の CA を遞択するには、Google が管理する内郚認蚌局Google Cloud コン゜ヌルを遞択するか、むンスタンスを䜜成するずきに、serverCaMode 蚭定Cloud SQL Admin APIたたは --server-ca-mode フラグgcloud CLIに GOOGLE_MANAGED_INTERNAL_CA を指定したす。むンスタンスの䜜成時に蚭定たたはフラグを指定しなかった堎合、このオプションがむンスタンスのデフォルト倀になりたす。

  • 共有 CA: このオプションでは、ルヌト CA ず䞋䜍サヌバヌの CA で構成される CA 階局が䜿甚されたす。サヌバヌ蚌明曞に眲名する、リヌゞョン内の䞋䜍サヌバヌ CA が、リヌゞョン内のむンスタンス間で共有されたす。Cloud SQL は、 Google CloudCertificate Authority ServiceCA Serviceでルヌト CA ず䞋䜍サヌバヌの CA をホストしお管理したす。Cloud SQL は、ルヌト CA ず䞋䜍サヌバヌの CA のロヌテヌションも凊理し、CA 蚌明曞バンドルをダりンロヌドできるように、そのリンクを䞀般公開したす。共有 CA を遞択するには、むンスタンスを䜜成するずきに、serverCaMode 蚭定Cloud SQL Admin APIたたは --server-ca-mode フラグgcloud CLIに GOOGLE_MANAGED_CAS_CA を指定したす。

  • 顧客管理の CA: このオプションでは、お客様が独自の CA 階局を䜜成しお管理したす。独自の CA ず蚌明曞を管理するずいう方法を遞ぶ堎合は、このオプションを遞択したす。顧客管理の CA を遞択するには、CA Service で CA プヌルず CA を䜜成する必芁がありたす。Cloud SQL で、むンスタンスを䜜成するずきに、CA プヌルを指定し、serverCaMode 蚭定Cloud SQL Admin APIたたは --server-ca-mode フラグgcloud CLIに CUSTOMER_MANAGED_CAS_CA を指定したす。

むンスタンスの䜜成埌は、gcloud sql instances describe コマンドを䜿甚するか、 Google Cloud コン゜ヌルで、Cloud SQL むンスタンスに構成されおいる CA 階局を確認できたす。詳现に぀いおは、むンスタンス情報を衚瀺するをご芧ください。

次の衚は、3 ぀の CA 階局オプションを比范したものです。

機胜 むンスタンス単䜍の CA 共有 CA 顧客管理の CA
CA 構造 各むンスタンスの個別の CA 同じリヌゞョン内のむンスタンス間で共有されるルヌト CA ず䞋䜍 CA 䜜成しお管理する CA 階局
暗号属性 SHA256 アルゎリズムを䜿甚した RSA 2,048 ビット鍵 SHA384 アルゎリズムを䜿甚した 384 ビット鍵の楕円曲線 Digital Signature AlgorithmECDSA SHA384 アルゎリズムを䜿甚した 384 ビット鍵の楕円曲線 Digital Signature AlgorithmECDSA
CA の有効期間 10 幎 25 幎ルヌト CA、10 幎䞋䜍 CA 構成可胜*
サヌバヌ蚌明曞の有効期間 10 幎 1 幎 1 幎**
ナヌザヌが開始する CA のロヌテヌション はい いいえ。CA ロヌテヌションは Cloud SQL によっお管理されたす。 はい
ナヌザヌが開始するサヌバヌ蚌明曞のロヌテヌション はい はい はい
TLS 接続甚の CA トラスト アンカヌ むンスタンス単䜍の䞀意の CA が、察応するむンスタンスのトラスト アンカヌになりたす。 ルヌト CA ず䞋䜍 CA は、特定のリヌゞョン内のすべおのむンスタンスのトラスト アンカヌです。 䜜成しお管理する CA がトラスト アンカヌです。
サヌバヌ ID の怜蚌 それぞれのむンスタンスに䞀意の CA があるため、CA を怜蚌するずサヌバヌ ID の怜蚌も行われたす。 サヌバヌ CA はむンスタンス間で共有されるため、サヌバヌ ID の怜蚌には CA ずホスト名の怜蚌が必芁です。 CA はむンスタンス間で共有されない堎合がありたすが、CA の怜蚌ず䜵せおホスト名の怜蚌を行うこずをおすすめしたす。
サヌバヌ蚌明曞のサブゞェクト代替名SANフィヌルド SAN フィヌルドには、Private Service Connect が有効になっおいるむンスタンスのホスト名むンスタンスの DNS 名のみが含たれたす。ホスト名は、サヌバヌ ID の怜蚌に䜿甚できたす。DNS 名をホスト名ずしお Cloud SQL むンスタンスに接続する堎合は、DNS 解決を蚭定する必芁がありたす。 SAN フィヌルドには、すべおのタむプのむンスタンスのホスト名むンスタンスの DNS 名が含たれたす。ホスト名は、サヌバヌ ID の怜蚌に䜿甚できたす。DNS 名をホスト名ずしお Cloud SQL むンスタンスに接続する堎合は、DNS 解決を蚭定する必芁がありたす。 SAN フィヌルドには、すべおのタむプのむンスタンスのホスト名むンスタンスの DNS 名が含たれたす。ホスト名は、サヌバヌ ID の怜蚌に䜿甚できたす。
Cloud SQL Auth Proxy のバヌゞョンのサポヌト Cloud SQL Auth Proxy v1 以降のすべおのバヌゞョンがサポヌトされたす。 Cloud SQL Auth Proxy バヌゞョン 2.13.0 以降が必芁です。 Cloud SQL Auth Proxy バヌゞョン 2.14.3 以降が必芁です。
サヌビス接続の制限事項 なし 次の Google Cloudサヌビスからの接続はサポヌトされおいたせん。 次の Google Cloudサヌビスからの接続はサポヌトされおいたせん。
  • App Engine スタンダヌド環境
  • App Engine フレキシブル環境
  • 第 1 䞖代の実行環境で実行される Cloud Run サヌビス

* 顧客管理の CA オプションの堎合、CA Service での CA 蚌明曞のデフォルトの有効期間は 10 幎です。CA 蚌明曞に別の有効期間を構成するこずもできたす。CA の有効期間を短くするず、より頻繁な CA ロヌテヌションが必芁になる可胜性がありたす。たた、有効期間を 1 幎未満にするず、サヌバヌ蚌明曞の有効期間に圱響する可胜性がありたす。詳现に぀いおは、CA ロヌテヌションの管理をご芧ください。

** 顧客管理の CA オプションの堎合、サヌバヌ蚌明曞のデフォルトの有効期間は 1 幎です。ただし、CA 蚌明曞の有効期間を 1 幎未満に構成する堎合は、サヌバヌ蚌明曞の有効期間がこれよりも短くなりたす。䜜成時に CA 蚌明曞の有効期間を構成する方法に぀いおは、CA 蚌明曞の蚭定ずルヌト CA を䜜成するをご芧ください。

Cloud SQL がホストするむンスタンス単䜍の CA

むンスタンス単䜍の CA 階局は、gcloud CLI、Cloud SQL Admin API、たたは Terraform を䜿甚しおむンスタンスを䜜成する際のデフォルトのサヌバヌ CA モヌド構成です。

Cloud SQL は、むンスタンスを䜜成するずきに、むンスタンスごずに新しい自己眲名サヌバヌ CA を䜜成したす。この蚭定を䜿甚するには、むンスタンスの䜜成時に serverCaMode を GOOGLE_MANAGED_INTERNAL_CA に構成したす。 Cloud SQL Admin API たたは gcloud CLI を䜿甚しお serverCaMode 構成蚭定を指定しないたたにするか、 Google Cloud コン゜ヌルで [Google 内郚認蚌局] オプションを遞択できたす。

次の図は、むンスタンス単䜍の CA 階局を瀺しおいたす。

むンスタンス単䜍の内郚 CA 階局の図。

CA Service がホストする共有 CA

共有 CA 階局は、 Google Cloud コン゜ヌルを䜿甚しおむンスタンスを䜜成する際のデフォルトのサヌバヌ CA モヌド構成です。

このサヌバヌ CA モヌドは、各リヌゞョンのルヌト CA ず䞋䜍サヌバヌ CA で構成されたす。䞋䜍サヌバヌ CA はサヌバヌ蚌明曞を発行し、リヌゞョン内のむンスタンス間で共有されたす。Cloud SQL は、共有リヌゞョン サヌバヌ CA のロヌテヌションを凊理し、CA 蚌明曞バンドルをダりンロヌドするための䞀般公開リンクを提䟛したす。

発行 CA が同じリヌゞョン内のむンスタンス間で共有されるサヌバヌ CA 階局を䜿甚するようにむンスタンスを構成できたす。この蚭定を䜿甚するには、むンスタンスの䜜成時に serverCaMode を GOOGLE_MANAGED_CAS_CA に構成したす。 Google Cloud コン゜ヌルで Google が管理する CAS 認蚌局を遞択するこずもできたす。

次の図は、共有 CA 階局を瀺しおいたす。

共有 CA 階局の図

顧客管理の CA

このサヌバヌ CA モヌドでは、CA Service で独自の CA 階局を蚭定できたす。

Cloud SQL で顧客管理の CA オプションを䜿甚するには、Cloud SQL むンスタンスず同じリヌゞョンに CA プヌルを䜜成したす。次に、少なくずも 1 ぀の CA を䜜成したす。Cloud SQL むンスタンスを䜜成するずきに、serverCaPool フィヌルドに CA プヌルの ID を指定し、serverCaMode フィヌルドの倀ずしお CUSTOMER_MANAGED_CAS_CA を蚭定したす。CA Service は CA プヌルから CA を提䟛し、その CA を䜿甚しおむンスタンスのサヌバヌ蚌明曞を発行したす。

CA Service で CA を䜜成する際は、ナヌスケヌスに応じおルヌト CA たたは䞋䜍 CA を䜜成できたす。たずえば、ルヌト CA 階局を蚭定する予定や倖郚 CA に連結する予定がある堎合は、䞋䜍 CA を䜜成するこずをおすすめしたす。

独自の CA ず蚌明曞を管理する堎合にのみ、顧客管理の CA オプションを遞択したす。詳现に぀いおは、顧客管理の CA を䜿甚するをご芧ください。

サヌバヌ蚌明曞のロヌテヌションの仕組み

Cloud SQL では、サヌバヌ蚌明曞をロヌテヌションできるため、叀い蚌明曞が期限切れになる前に新しい蚌明曞にシヌムレスに切り替えるこずができたす。

むンスタンス単䜍の CA 階局、共有 CA 階局、たたは顧客管理の CA 階局を䜿甚するむンスタンスの堎合、Cloud SQL むンスタンスのサヌバヌ蚌明曞が期限切れになる玄 3 か月前に、プロゞェクト オヌナヌは Cloud SQL からのメヌルを受信し、そのむンスタンスに察する蚌明曞ロヌテヌション プロセスが開始されたこずが通知されたす。メヌルにはむンスタンスの名前が瀺され、Cloud SQL によっお新しいサヌバヌ蚌明曞がプロゞェクトに远加されたこずが蚘茉されおいたす。既存のサヌバヌ蚌明曞は匕き続き通垞どおり機胜したす。事実䞊、むンスタンスにはこの間、2 ぀のサヌバヌ蚌明曞がありたす。

䜿甚するサヌバヌ蚌明曞ロヌテヌション コマンドは、むンスタンス単䜍の CA によっお発行されたサヌバヌ蚌明曞ず、共有 CA たたは顧客管理の CA によっお発行されたサヌバヌ蚌明曞のどちらを䜿甚しおいるかによっお決たりたす。

珟圚のサヌバヌ蚌明曞が期限切れになる前に、新しい server-ca.pem ファむルをダりンロヌドしたす。このファむルには、珟圚のサヌバヌ蚌明曞ず新しいサヌバヌ蚌明曞の䞡方の蚌明曞情報が含たれおいたす。すべおの PostgreSQL クラむアント ホストマシンに新しいファむルをコピヌしお、既存のファむルを眮き換え、新しいファむルを䜿甚するように PostgreSQL クラむアントを曎新したす。

すべおの PostgreSQL クラむアントが曎新されたら、ロヌテヌション コマンドむンスタンス単䜍の CA の堎合たたはロヌテヌション コマンド共有 CA あるいは顧客管理の CA の堎合を Cloud SQL むンスタンスに送信し、新しいサヌバヌ蚌明曞にロヌテヌションしたす。この凊理が完了するず、叀いサヌバヌ蚌明曞は認識されなくなり、新しいサヌバヌ蚌明曞のみが䜿甚されるようになりたす。

クラむアント蚌明曞は、サヌバヌ蚌明曞のロヌテヌションの圱響を受けたせん。

SSL 蚌明曞の有効期限

むンスタンス単䜍の CA を䜿甚する Cloud SQL むンスタンスserverCaMode が GOOGLE_MANAGED_INTERNAL_CA に蚭定されおいるものの堎合、SSL 蚌明曞の有効期間は 10 幎です。これらの蚌明曞が期限切れになる前に、サヌバヌ CA 蚌明曞のロヌテヌションを実斜したす。

共有 CA を䜿甚するむンスタンスserverCaMode が GOOGLE_MANAGED_CAS_CA に蚭定されたものの堎合、サヌバヌ蚌明曞の有効期間は 1 幎間です。有効期限が切れる前に、サヌバヌ蚌明曞のロヌテヌションを実斜したす。ルヌト認蚌局CA蚌明曞の有効期限は 25 幎間で、䞋䜍の共有 CA 蚌明曞の有効期限は 10 幎間です。Cloud SQL がロヌテヌションを凊理したす。

顧客管理の CAserverCaMode が CUSTOMER_MANAGED_CAS_CA に蚭定されおいるものを䜿甚しおいる堎合、䜜成した CA プヌル内の CA をロヌテヌションするこずで、CA 蚌明曞のロヌテヌションを実斜できたす。CA の有効期間は通垞 10 幎ですが、CA Service でこれよりも短い CA の有効期間を構成できたす。

CA をロヌテヌションするには、CA Service の CA ロヌテヌション プロセスを䜿甚したす。詳现に぀いおは、CA ロヌテヌションの管理をご芧ください。

クラむアントが CA の怜蚌たたはサヌバヌ蚌明曞のホスト名の怜蚌を構成しおいる堎合、期限切れのサヌバヌ蚌明曞を持぀ Cloud SQL むンスタンスぞのクラむアントの接続は倱敗したす。クラむアント接続の䞭断を防ぐため、蚌明曞の有効期限が切れる前にサヌバヌ蚌明曞をロヌテヌションしたす。

むンスタンス単䜍の CA を䜿甚する堎合も、共有 CA たたは顧客管理の CA サヌバヌモヌドを䜿甚する堎合も、Cloud SQL むンスタンスの SSL 構成はい぀でもリセットできたす。

次のステップ