説明
Cloud SQL が暗号化されていない接続を許可すると、転送中の認証情報や業務データが漏えいするおそれがあります。プライベートネットワークでも、接続の暗号化とサーバー証明書の検証を維持してください。
現在の sslMode は従来の requireSsl より優先されるため、requireSsl の省略だけで平文接続が許可されているとは判断できません。エンジンで実際に適用される TLS モードとクライアント設定を合わせて確認してください。
想定される影響
- 保護されていない接続では、機密データが傍受される可能性があります。
- サーバー証明書を正しく検証しないと、中間者攻撃のリスクが高まるおそれがあります。
対処方法
- サポートされる管理ツールで、エンジンに合った暗号化専用モードを設定してください。クライアント証明書も要求する場合は、適用前に必要な証明書を用意してください。
- アプリケーションの TLS とサーバー検証をテストしてください。Cloud SQL Auth Proxy を使う場合は、アプリケーションとプロキシ間の別の接続区間も保護してください。
- 実際の接続が暗号化されることを確認し、データベースの権限とネットワークアクセスも制限してください。
例
Deployment Manager のサポートは終了しています。次の例は MySQL または PostgreSQL の従来の接続設定の抜粋です。エンジン、リージョンなどの全体設定は別途必要です。これらのエンジンでは requireSsl: true が信頼できるクライアント証明書も要求するため、先にクライアントを準備してください。
変更前
yaml
resources:
- name: sql-instance
type: sqladmin.v1beta4.instance
properties:
settings:
tier: db-custom-1-3840
接続の暗号化要件を個別に指定していません。実際に適用される sslMode とクライアントの接続を確認する必要があります。
変更後
yaml
resources:
- name: sql-instance
type: sqladmin.v1beta4.instance
properties:
settings:
tier: db-custom-1-3840
ipConfiguration:
requireSsl: true
従来の requireSsl を有効にします。MySQL・PostgreSQL で sslMode も指定する場合は、互換性のある TRUSTED_CLIENT_CERTIFICATE_REQUIRED を使用してください。