TiCDC クライアント認証
v8.1.0 以降、TiCDC は Mutual Transport Layer Security (mTLS) または TiDB ユーザー名とパスワードを使用したクライアント認証をサポートします。
- mTLS 認証はトランスポートレイヤーでのセキュリティ制御を提供し、TiCDC がクライアント ID を検証できるようにします。
- TiDB のユーザー名とパスワードの認証により、アプリケーションレイヤーでセキュリティ制御が提供され、許可されたユーザーのみが TiCDC ノードを通じてログインできるようになります。
これら 2 つの認証方法は、さまざまなシナリオやセキュリティ要件を満たすために、単独でも組み合わせても使用できます。
注記:
ネットワーク アクセスのセキュリティを確保するため、 TLSが有効になっています場合にのみ TiCDC クライアント認証を使用することを強くお勧めします。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 command-line tool
- TiCDC OpenAPI
TiCDC コマンドラインツールを使用する場合、次の方法でクライアント証明書を指定できます。TiCDC は次の順序でクライアント証明書の読み取りを試みます。
コマンドラインパラメータ
--cert
と--key
使用して、証明書と秘密キーを指定します。サーバーが自己署名証明書を使用する場合は、パラメータ--ca
を使用して信頼できる CA 証明書も指定する必要があります。cdc cli changefeed list --cert client.crt --key client.key --ca ca.crt環境変数
TICDC_CERT_PATH
TICDC_CA_PATH
使用してTICDC_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 command-line tool
- TiCDC OpenAPI
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