TiCDC クライアント認証
v8.1.0 以降、TiCDC は Mutual Transport Layer Security (mTLS) または TiDB のユーザー名とパスワードを使用したクライアント認証をサポートします。
- mTLS 認証はトランスポートレイヤーでのセキュリティ制御を提供し、TiCDC がクライアント ID を検証できるようにします。
- TiDB のユーザー名とパスワード認証は、アプリケーションレイヤーでセキュリティ制御を提供し、許可されたユーザーのみが TiCDC ノードを通じてログインできるようにします。
これら 2 つの認証方法は、さまざまなシナリオやセキュリティ要件を満たすために、単独で使用することも、組み合わせて使用することもできます。
注記:
ネットワークアクセスのセキュリティを確保するため、TiCDC クライアント認証はTLSが有効になっています場合にのみ使用することを強くお勧めします。TLS が有効になっていない場合、ユーザー名とパスワードはネットワーク上でプレーンテキストとして送信され、深刻な資格情報漏洩につながる可能性があります。
クライアント認証にmTLSを使用する
TiCDCサーバーで、
security.mtlsパラメータをtrueに設定して、mTLS 認証を有効にします。[security] # This parameter controls whether to enable the TLS client authentication. The default value is false. mtls = trueクライアント証明書を構成します。
TiCDC コマンドラインツール使用する場合、以下の方法でクライアント証明書を指定できます。TiCDC は以下の順序でクライアント証明書の読み取りを試みます。
コマンドラインパラメータ
--certと--key使用して、証明書と秘密鍵を指定します。サーバーが自己署名証明書を使用している場合は、パラメータ--caを使用して信頼できる CA 証明書も指定する必要があります。cdc cli changefeed list --cert client.crt --key client.key --ca ca.crt環境変数
TICDC_CERT_PATH、およびTICDC_CA_PATHTICDC_KEY_PATHして、証明書、秘密キー、および CA 証明書へのパスを指定します。export TICDC_CERT_PATH=client.crt export TICDC_KEY_PATH=client.key export TICDC_CA_PATH=ca.crt共有資格情報ファイル
~/.ticdc/credentialsを使用して証明書を指定します。cdc cli configure-credentialsコマンドを使用して設定を変更できます。
TiCDC オープンAPI使用する場合、
--certと--key使用してクライアント証明書と秘密鍵を指定できます。サーバーが自己署名証明書を使用する場合は、--cacertパラメータを使用して信頼されたCA証明書も指定する必要があります。例:curl -X GET http://127.0.0.1:8300/api/v2/status --cert client.crt --key client.key --cacert ca.crt
クライアント認証にTiDBのユーザー名とパスワードを使用する
ユーザーを作成する TiDB に追加し、ユーザーに TiCDC ノードからログインする権限を付与します。
CREATE USER 'test'@'ticdc_ip_address' IDENTIFIED BY 'password';TiCDCサーバーで、ユーザー名とパスワードの認証を有効にするために
security.client-user-requiredとsecurity.client-allowed-user設定します。[security] # This parameter controls whether to use username and password for client authentication. The default value is false. client-user-required = true # This parameter lists the usernames that are allowed for client authentication. Authentication requests with usernames not in this list will be rejected. The default value is null. client-allowed-user = ["test"]手順 1 で作成したユーザーのユーザー名とパスワードを指定します。
TiCDC コマンドラインツール使用する場合、以下の方法でユーザー名とパスワードを指定できます。TiCDC は以下の順序でクライアント証明書の読み取りを試みます。
コマンドラインパラメータ
--userと--password使用してユーザー名とパスワードを指定します。cdc cli changefeed list --user test --password passwordコマンドラインパラメータ
--userを使用してユーザー名を指定します。次に、ターミナルにパスワードを入力します。cdc cli changefeed list --user test環境変数
TICDC_USERとTICDC_PASSWORD使用してユーザー名とパスワードを指定します。export TICDC_USER=test export TICDC_PASSWORD=password共有資格情報ファイル
~/.ticdc/credentialsを使用してユーザー名とパスワードを指定します。cdc cli configure-credentialsコマンドを使用して設定を変更できます。
TiCDC オープンAPI使用する場合は、
--user <user>:<password>を使用してユーザー名とパスワードを指定できます。例:curl -X GET http://127.0.0.1:8300/api/v2/status --user test:password