2.2.2.3. Kafka クレデンシャルの取得

アプリケーションまたはサービスを Kafka インスタンスに接続するには、まず以下の Kafka クレデンシャルを取得する必要があります。

  • ブートストラップ URL を取得します。
  • クレデンシャル (ユーザー名とパスワード) を使用してサービスアカウントを作成します。

OpenShift Streams では、認証プロトコルは SASL_SSL です。

前提条件

  • Kafka インスタンスを作成し、ステータスが ready である。
  • Kafka トピックを作成している。

手順

  1. Kafka ブローカーの URL (ブートストラップ URL) を取得します。

    rhoas status

    コマンドは、以下のような出力を返します。

      Kafka
      ---------------------------------------------------------------
      ID:                     1ptdfZRHmLKwqW6A3YKM2MawgDh
      Name:                   my-kafka
      Status:                 ready
      Bootstrap URL:        my-kafka--ptdfzrhmlkwqw-a-ykm-mawgdh.kafka.devshift.org:443
  2. ユーザー名とパスワードを取得するには、以下の構文を使用してサービスアカウントを作成します。

    rhoas service-account create --name "<account-name>" --file-format json

    注記

    サービスアカウントの作成時に、ファイル形式および場所を選択してクレデンシャルを保存できます。詳細は、rhoas service-account create --help コマンドを参照してください。

    以下に例を示します。

    rhoas service-account create --name "my-service-acct" --file-format json

    サービスアカウントが作成され、JSON ファイルに保存されます。

  3. サービスアカウントの認証情報を確認するには、credentials.json ファイルを表示します。

    cat credentials.json

    コマンドは、以下のような出力を返します。

    {"clientID":"srvc-acct-eb575691-b94a-41f1-ab97-50ade0cd1094", "password":"facf3df1-3c8d-4253-aa87-8c95ca5e1225"}
  4. Kakfa トピックとの間でメッセージを送受信する権限を付与します。以下のコマンドを使用します。ここで、clientID は (ステップ 3 からの)credentials.json ファイルで指定される値に置き換えます。

    rhoas kafka acl grant-access --producer --consumer --service-account $CLIENT_ID --topic test-topic --group all

    以下に例を示します。

    rhoas kafka acl grant-access --producer --consumer --service-account srvc-acct-eb575691-b94a-41f1-ab97-50ade0cd1094 --topic test-topic --group all