パスワードエンコーダーシークレットの管理

SASL/PLAIN または TLS のパスワードなど、構成に関する機密情報を暗号化するには、カスタムリソース(CR)にパスワードエンコーダーを定義します。この機能は、Confluent for Kubernetes (CFK)で次のようなユースケースに使用されます。

  • Kafka Cluster Linking を使用する場合、送信先クラスターでパスワードエンコーダーシークレットを設定し、送信元クラスターの認証と TLS に関する機密情報を暗号化するために使用する必要があります。
  • Schema Linking を使用する場合、パスワードエンコーダーシークレットは送信元の Schema Registry クラスターで構成する必要があります。

パスワードエンコーダーシークレットの詳細については、「Kafka ブローカーの構成」を参照してください。

パスワードエンコーダーシークレットを指定するには、次の手順に従います。

  1. 以下の内容で password-encoder.txt ファイルを作成します。

    password=<password>
    oldPassword=<old password>
    

    パスワードのローテーションに必要なのは oldPassword のみです。

  2. Kubernetes シークレットまたはコンテナー内のディレクトリパス機能を使用して、パスワードエンコーダーのシークレットを保管します。

    • Kubernetes シークレットを使用するには、前の手順で作成したファイルを使用して Kubernetes シークレットを作成します。

      想定されるキー(ファイル名)は password-encoder.txt です。

      例を次に示します。

      kubectl create secret generic myEncoderSecret \
         --from-file=password-encoder.txt=$MY_PATH/password-encoder.txt
      
    • To use the directory path in the container feature, copy the password-encider.txt file to the container path.

  3. Kafka または Schema Registry の CR で、前の手順で作成したシークレットを指定します。

    spec:
      passwordEncoder:
        secretRef:                --- [1]
        directoryPathInContainer: --- [2]
    
    • spec.passwordEncoder が定義されている場合は、[1] または [2] が必要です。

    • [1] パスワードエンコーダーのシークレット。

    • [2] password-encoder.txt ファイルがあるコンテナー内のパス。

      Vault を使用する際のシークレットと必要なアノテーションを提供する方法については、「Confluent Platform コンポーネントの CR へのシークレットの提供」を参照してください。

  4. kubectl apply コマンドを使用して CR の変更を適用します。

    クラスターは自動的に再起動します。

重要

シークレット([1])が後でアップデートされた場合、または dirPathContainer ファイル([2])が変更された場合は、クラスターを手動で再起動する必要があります。クラスターの再起動の手順については、「Confluent Platform の再起動」を参照してください。