メインコンテンツまでスキップ
バージョン: 3.19

ワイヤ通信の暗号化

注記

このページは英語版のページが機械翻訳されたものです。英語版との間に矛盾または不一致がある場合は、英語版を正としてください。

ScalarDB Cluster は、トランスポート層セキュリティ (TLS) を使用したワイヤ暗号化をサポートしています。このドキュメントでは、ScalarDB Cluster でのワイヤ暗号化の設定について説明します。

ワイヤ暗号化機能では、次のものが暗号化されます:

  • ScalarDB Cluster ノードとクライアント間の通信。
  • すべての ScalarDB Cluster ノード間の通信 (クラスターの内部通信)。
  • Transaction Coordinator とクライアント間の通信。
  • Transaction Coordinator と、Transaction Coordinator が2フェーズコミットを実行する対象の ScalarDB Cluster 間の通信。
  • すべての Transaction Coordinator ノード間の通信。

この機能では、gRPC の TLS サポートが使用されます。詳細については、公式の gRPC Security Policy を参照してください。

注記

実稼働環境では、ScalarDB Cluster ノードと基盤となるデータベース間のワイヤ暗号化を有効にすることを強くお勧めします。ScalarDB Cluster ノードと基盤となるデータベース間のワイヤ暗号化を有効にする方法については、基盤となるデータベースの製品ドキュメントを参照してください。

設定

このセクションでは、ワイヤ暗号化に使用できる設定について説明します。

ScalarDB Cluster ノードの設定

ワイヤ暗号化を有効にするには、scalar.db.cluster.tls.enabledtrue に設定する必要があります。

名前説明デフォルト
scalar.db.cluster.tls.enabledワイヤ暗号化 (TLS) が有効かどうか。false

次の設定も設定する必要があります。

名前説明デフォルト
scalar.db.cluster.tls.ca_root_cert_pemTLS 通信用のカスタム CA ルート証明書 (PEM データ)。
scalar.db.cluster.tls.ca_root_cert_pathTLS 通信用のカスタム CA ルート証明書 (ファイルパス)。
scalar.db.cluster.tls.override_authorityTLS 通信のカスタムオーソリティ。これは、実際に接続しているホストを変更するものではありません。これはテスト用ですが、DNS オーバーライドの代替としてテスト以外でも安全に使用できます。たとえば、scalar.db.cluster.node.tls.cert_chain_path に設定した証明書チェーンファイルで提示されるホスト名を指定できます。
scalar.db.cluster.node.tls.cert_chain_pathTLS 通信に使用される証明書チェーンファイル。
scalar.db.cluster.node.tls.private_key_pathTLS 通信に使用される秘密鍵ファイル。

証明機関 (CA) ルート証明書を指定するには、scalar.db.cluster.tls.ca_root_cert_pem または scalar.db.cluster.tls.ca_root_cert_path のいずれかを設定する必要があります。両方を設定すると、scalar.db.cluster.tls.ca_root_cert_pem が使用されます。

Transaction Coordinator の設定

Transaction Coordinator でワイヤ暗号化を有効にするには、scalar.db.cluster.tls.enabledtrue に設定する必要があります。

名前説明デフォルト
scalar.db.cluster.tls.enabledワイヤ暗号化 (TLS) が有効かどうか。false

次の設定も設定する必要があります。

名前説明デフォルト
scalar.db.cluster.tls.ca_root_cert_pemTLS 通信用のカスタム CA ルート証明書 (PEM データ)。
scalar.db.cluster.tls.ca_root_cert_pathTLS 通信用のカスタム CA ルート証明書 (ファイルパス)。
scalar.db.cluster.tls.override_authorityTLS 通信のカスタムオーソリティ。これは、実際に接続しているホストを変更するものではありません。これはテスト用ですが、DNS オーバーライドの代替としてテスト以外でも安全に使用できます。たとえば、scalar.db.cluster.transaction_coordinator.tls.cert_chain_path に設定した証明書チェーンファイルで提示されるホスト名を指定できます。
scalar.db.cluster.transaction_coordinator.tls.cert_chain_pathTLS 通信に使用される証明書チェーンファイル。
scalar.db.cluster.transaction_coordinator.tls.private_key_pathTLS 通信に使用される秘密鍵ファイル。

CA ルート証明書を指定するには、scalar.db.cluster.tls.ca_root_cert_pem または scalar.db.cluster.tls.ca_root_cert_path のいずれかを設定する必要があります。両方を設定すると、scalar.db.cluster.tls.ca_root_cert_pem が使用されます。

上記の設定は、Transaction Coordinator のすべての接続に適用されます。対象クラスターが異なる認証局によって署名されたサーバー証明書を提示する場合、または scalar.db.cluster.tls.override_authority に異なる値が必要な場合は、scalar.db.cluster.transaction_coordinator.clusters.<CLUSTER_ID>.<PROPERTY_NAME> を使用して、単一の対象クラスターの設定を上書きできます。たとえば、対象クラスター cluster1 のみの CA ルート証明書を次のように指定できます:

scalar.db.cluster.transaction_coordinator.clusters.cluster1.tls.ca_root_cert_path=/path/to/cluster1-ca.pem

クライアントの設定

クライアント側でワイヤ暗号化を有効にするには、scalar.db.cluster.tls.enabledtrue に設定する必要があります。

名前説明デフォルト
scalar.db.cluster.tls.enabledワイヤ暗号化 (TLS) が有効かどうか。false

次の設定も設定する必要があります。

名前説明デフォルト
scalar.db.cluster.tls.ca_root_cert_pemTLS 通信用のカスタム CA ルート証明書 (PEM データ)。
scalar.db.cluster.tls.ca_root_cert_pathTLS 通信用のカスタム CA ルート証明書 (ファイルパス)。
scalar.db.cluster.tls.override_authorityTLS 通信のカスタムオーソリティ。これは、実際に接続しているホストを変更するものではありません。これはテスト用ですが、DNS オーバーライドの代替としてテスト以外でも安全に使用できます。たとえば、scalar.db.cluster.node.tls.cert_chain_path に設定した証明書チェーンファイルで提示されるホスト名を指定できます。

CA ルート証明書を指定するには、scalar.db.cluster.tls.ca_root_cert_pem または scalar.db.cluster.tls.ca_root_cert_path のいずれかを設定する必要があります。両方を設定すると、scalar.db.cluster.tls.ca_root_cert_pem が使用されます。

アプリケーションが ScalarDB Cluster と Transaction Coordinator の両方に接続する場合、上記の設定は両方の接続に適用されます。Transaction Coordinator がクラスターとは異なる認証局によって署名されたサーバー証明書を提示する場合は、scalar.db.cluster.client.transaction_coordinator.<PROPERTY_NAME> を使用して、Transaction Coordinator への接続のみの設定を上書きできます。たとえば、Transaction Coordinator への接続のみの CA ルート証明書を次のように指定できます:

scalar.db.cluster.client.transaction_coordinator.tls.ca_root_cert_path=/path/to/transaction-coordinator-ca.pem