DM接続にTLSを有効にする
このドキュメントでは、DM マスター、DM ワーカー、dmctl コンポーネント間の接続、および DM と上流または下流のデータベース間の接続を含む、DM 接続の暗号化されたデータ転送を有効にする方法について説明します。
DMマスター、DMワーカー、dmctl間の暗号化されたデータ転送を有効にする
このセクションでは、DM マスター、DM ワーカー、dmctl 間の暗号化されたデータ転送を有効にする方法を紹介します。
暗号化されたデータ転送を設定して有効にする
証明書を準備します。
DM-master と DM-worker のサーバー証明書を別々に用意することをお勧めします。2 つのコンポーネントが相互に認証できることを確認してください。dmctl に 1 つのクライアント証明書を共有することもできます。
自己署名証明書を生成するには、
openssl
、cfssl
、およびeasy-rsa
などのopenssl
に基づいたその他のツールを使用できます。openssl
選択した場合は自己署名証明書の生成を参照できます。証明書を構成します。
注記:
DM-master、DM-worker、および dmctl が同じ証明書セットを使用するように構成できます。
DMマスター
設定ファイルまたはコマンドライン引数で設定します。
ssl-ca = "/path/to/ca.pem" ssl-cert = "/path/to/master-cert.pem" ssl-key = "/path/to/master-key.pem"DMワーカー
設定ファイルまたはコマンドライン引数で設定します。
ssl-ca = "/path/to/ca.pem" ssl-cert = "/path/to/worker-cert.pem" ssl-key = "/path/to/worker-key.pem"dmctl
DM クラスターで暗号化された送信を有効にした後、dmctl を使用してクラスターに接続する必要がある場合は、クライアント証明書を指定します。例:
./dmctl --master-addr=127.0.0.1:8261 --ssl-ca /path/to/ca.pem --ssl-cert /path/to/client-cert.pem --ssl-key /path/to/client-key.pem
コンポーネント呼び出し元のIDを確認する
共通名は、発信者の検証に使用されます。通常、着信側は、発信者が提供するキー、証明書、および CA を検証するだけでなく、発信者の ID も検証する必要があります。たとえば、DM-worker には DM-master のみがアクセスでき、他の訪問者は正当な証明書を持っていてもブロックされます。
コンポーネントの呼び出し元の ID を確認するには、証明書を生成するときにCommon Name
(CN) を使用して証明書のユーザー ID をマークし、呼び出し先のCommon Name
リストを構成して呼び出し元の ID を確認する必要があります。
DMマスター
設定ファイルまたはコマンドライン引数で設定します。
cert-allowed-cn = ["dm"]DMワーカー
設定ファイルまたはコマンドライン引数で設定します。
cert-allowed-cn = ["dm"]
証明書を再読み込み
証明書とキーを再ロードするために、DM-master、DM-worker、および dmctl は、新しい接続が作成されるたびに現在の証明書とキー ファイルを再読み取りします。
ssl-ca
ssl-cert
またはssl-key
で指定されたファイルが更新された場合は、DM コンポーネントを再起動して証明書とキー ファイルを再読み込みし、相互に再接続します。
DMコンポーネントと上流または下流のデータベース間の暗号化されたデータ転送を有効にする
このセクションでは、DM コンポーネントと上流または下流のデータベース間の暗号化されたデータ転送を有効にする方法について説明します。
上流データベースへの暗号化されたデータ転送を有効にする
アップストリームデータベースを設定し、暗号化サポートを有効にし、サーバー証明書を設定します。詳細な操作については、 暗号化された接続の使用を参照してください。
ソース構成ファイルで MySQL クライアント証明書を設定します。
注記:
すべての DM マスターおよび DM ワーカー コンポーネントが指定されたパスを介して証明書とキー ファイルを読み取ることができることを確認します。
from: security: ssl-ca: "/path/to/mysql-ca.pem" ssl-cert: "/path/to/mysql-cert.pem" ssl-key: "/path/to/mysql-key.pem"
下流のTiDBへの暗号化されたデータ転送を有効にする
暗号化された接続を使用するようにダウンストリーム TiDB を構成します。詳細な操作については、 安全な接続を使用するように TiDBサーバーを構成するを参照してください。
タスク構成ファイルで TiDB クライアント証明書を設定します。
注記:
すべての DM マスターおよび DM ワーカー コンポーネントが指定されたパスを介して証明書とキー ファイルを読み取ることができることを確認します。
target-database: security: ssl-ca: "/path/to/tidb-ca.pem" ssl-cert: "/path/to/tidb-client-cert.pem" ssl-key: "/path/to/tidb-client-key.pem"