重要

このページの日本語コンテンツは古くなっている可能性があります。最新の英語版コンテンツをご覧になるには、こちらをクリックしてください。

シンクコネクターのサービスアカウント

すべての Confluent Cloud コネクターが、Kafka の操作および利用の許可を受けるために認証情報を必要とします。Kafka の API キーとシークレットを作成して使用するか、サービスアカウントを使用することができます。

サービスアカウントを作成する場合、アクセス制御リスト(ACL)でこれらのトピックへの DESCRIBE、CREATE、READ、および WRITE アクセスを設定し、API キーとシークレットを作成します。サービスアカウントが作成されたら、コネクターを作成したユーザーは、コネクターを構成する際にサービスアカウント ID を選択できます。

重要

コネクター構成には、API キーとシークレットか、サービスアカウント ID のいずれかが含まれている必要があります。Confluent Cloud サービスアカウント情報について詳しくは、「サービスアカウント」を参照してください。

例: サービスアカウントの構成

次の例は、Confluent Cloud CLI を使用してサービスアカウントをセットアップする方法を示しています。これらの手順は、どのクラウドプロバイダーで実行しているクラスターでも使用することができます。

シンクコネクターのサービスアカウント

この例では、以下を前提としています。

  • クラスター ID lkc-gqgvx の Kafka クラスターが存在する。
  • シンクコネクターで pageviews という名前のトピックから読み取ります。

以下の例の手順を使用して、サービスアカウントを作成し、ACL を設定して、API キーとシークレットを追加します。

注釈

次の手順では、以下を示します。

  • シンクコネクターのサービスアカウントの基本的な ACL エントリ。特定のコネクターで必要となる可能性がある、追加の ACL エントリについては、「シンクコネクターの成功トピックおよびエラートピック」セクションで確認してください。
  • Confluent CLI バージョン 2 のサンプルコマンド。詳細については、「Confluent CLI v2」を参照してください。
  1. myserviceaccount という名前のサービスアカウントを作成します。

    confluent iam service-account create myserviceaccount --description "test service account"
    
  2. myserviceaccount のサービスアカウント ID を確認します。

    confluent iam service-account list
    
  3. クラスターに対する DESCRIBE の ACL を設定します。

    confluent kafka acl create --allow --service-account "<service-account-id>" --operation "DESCRIBE" --cluster-scope
    
  4. pageviews に対する READ の ACL を設定します。

    confluent kafka acl create --allow --service-account "<service-account-id>" --operation "READ" --topic "pageviews"
    
  5. 以下のトピックプレフィックスを使用して、CREATE の ACL を設定します。

    confluent kafka acl create --allow --service-account "<service-account-id>" --operation "CREATE" --prefix --topic "dlq-lcc"
    
  6. 以下のトピックプレフィックスを使用して、WRITE の ACL を設定します。

    confluent kafka acl create --allow --service-account "<service-account-id>" --operation "WRITE" --prefix --topic "dlq-lcc"
    
  7. 以下のプレフィックスを使用して、コンシューマーグループに対する READ の ACL を設定します。

    confluent kafka acl create --allow --service-account "<service-account-id>" --operation "READ"  --prefix --consumer-group "connect-lcc"
    
  8. <service-account-id> の Kafka API キーとシークレットを作成します。

    confluent api-key create --resource "lkc-gqgvx" --service-account "<service-account-id>"
    
  9. API キーとシークレットを保存します。

コネクター構成には、API キーとシークレットか、サービスアカウント ID のいずれかが含まれている必要があります。サービスアカウント情報について詳しくは、「サービスアカウント」を参照してください。

ソースコネクターのサービスアカウント

この例では、以下を前提としています。

  • クラスター ID lkc-gqgvx の Kafka クラスターが存在する。
  • ソースコネクターで passengers という名前のトピックに書き込みを行う。

以下の例の手順を使用して、サービスアカウントを作成し、ACL を設定して、API キーとシークレットを追加します。

注釈

以下の手順では、ソースコネクターのサービスアカウントの基本的な ACL エントリを示しています。特定のコネクターで必要となる可能性がある、追加の ACL エントリについては、「Debezium のソースコネクター」および「JDBC ベースのソースコネクターおよび MongoDB Atlas のソースコネクター」で確認してください。

  1. myserviceaccount という名前のサービスアカウントを作成します。

    confluent iam service-account create myserviceaccount --description "test service account"
    
  2. myserviceaccount のサービスアカウント ID を確認します。

    confluent iam service-account list
    
  3. クラスターに対する DESCRIBE の ACL を設定します。

    confluent kafka acl create --allow --service-account "<service-account-id>" --operation "DESCRIBE" --cluster-scope
    
  4. passengers に対する WRITE の ACL を設定します。

    confluent kafka acl create --allow --service-account "<service-account-id>" --operation "WRITE" --topic "passengers"
    
  5. <service-account-id> の Kafka API キーとシークレットを作成します。

    confluent api-key create --resource "lkc-gqgvx" --service-account "<service-account-id>"
    
  6. API キーとシークレットを保存します。

コネクター構成には、API キーとシークレットか、サービスアカウント ID のいずれかが含まれている必要があります。サービスアカウント情報について詳しくは、「サービスアカウント」を参照してください。

追加の ACL エントリ

特定のコネクターでは、追加の ACL エントリが必要です。

Debezium のソースコネクター

ソースコネクターのサービスアカウント」セクションでは、ソースコネクターのサービスアカウントの基本的な ACL エントリについて説明しています。Debezium のソースコネクターでは、追加の ACL エントリが必要です。Debezium のソースコネクターでは、以下の ACL エントリを追加します。

  • プレフィックスとして <database.server.name> が付いたテーブル関連トピックの作成と書き込みを行うための ACL。以下のコマンドを実行してこれらの ACL を設定します。

     confluent kafka acl create --allow --service-account "<service-account-id>" \
    --operation "CREATE" --prefix --topic "<database.server.name>"
    
     confluent kafka acl create --allow --service-account "<service-account-id>" \
    --operation "WRITE" --prefix --topic "<database.server.name>"
    
  • クラスタースコープレベルの構成を記述するための ACL。以下のコマンドを実行してこれらの ACL を設定します。

     confluent kafka acl create --allow --service-account "<service-account-id>" \
    --cluster-scope --operation "DESCRIBE"
    
     confluent kafka acl create --allow --service-account "<service-account-id>" \
    --cluster-scope --operation "DESCRIBE-CONFIGS"
    

Debezium MySQL CDC Source Connector および Debezium Microsoft SQL Source Connector では、以下のような追加 ACL エントリが必要です。

  • プレフィックスとして dbhistory.<database.server.name>.lcc- が付いたデータベース履歴トピックの作成と書き込みを行うための ACL。たとえば、構成のプロパティが "database.server.name": "cdc" の場合のサーバー名は cdc です。以下のコマンドを実行してこれらの ACL を設定します。

     confluent kafka acl create --allow --service-account "<service-account-id>" \
    --operation "CREATE" --prefix --topic "dbhistory.<database.server.name>.lcc-"
    
     confluent kafka acl create --allow --service-account "<service-account-id>" \
    --operation "WRITE" --prefix --topic "dbhistory.<database.server.name>.lcc-"
    
  • <database.server.name>-dbhistory という名前のデータベース履歴コンシューマーグループの読み取りを行うための ACL。たとえば、構成のプロパティが "database.server.name": "cdc" の場合のサーバー名は cdc です。以下のコマンドを実行してこれらの ACL を設定します。

     confluent kafka acl create --allow --service-account "<service-account-id>" \
    --operation "READ" --consumer-group "<database.server.name>-dbhistory"
    

JDBC ベースのソースコネクターおよび MongoDB Atlas のソースコネクター

ソースコネクターのサービスアカウント」セクションでは、ソースコネクターのサービスアカウントの基本的な ACL エントリについて説明しています。いくつかのソースコネクターでは、トピックプレフィックスを使用できます。プレフィックスが使用されている場合は、追加の ACL エントリが必要です。以下のソースコネクターでは、プレフィックスを使用する場合に追加の ACL エントリが必要です。

これらのソースコネクターでは、以下の ACL エントリを追加します。

confluent kafka acl create --allow --service-account "<service-account-id>" --operation "CREATE" --prefix --topic "<topic.prefix>"
confluent kafka acl create --allow --service-account "<service-account-id>" --operation "WRITE" --prefix --topic "<topic.prefix>"

Oracle CDC Source Connector

redo ログのトピックにアクセスするには、ACL でコネクターに対応する操作(CREATE、READ、WRITE など)のアクセス許可を付与する必要があります。Oracle CDC Sourc Connector のデフォルトの redo ログトピックは ${connectorName}-${databaseName}-redo-log です。このトピックがコネクターによって作成される場合は、lcc- プレフィックスが追加されます。

以下の ACL エントリを追加します。

confluent kafka acl create --allow --service-account "<service-account-id>" --operation "CREATE" --prefix --topic "-lcc"
confluent kafka acl create --allow --service-account "<service-account-id>" --operation "READ" --prefix --topic "-lcc"
confluent kafka acl create --allow --service-account "<service-account-id>" --operation "WRITE" --prefix --topic "-lcc"

以下の 構成プロパティ を設定する場合は、作成される出力トピックの ACL を設定する必要があります。

  • テーブル固有トピックに対する table.topic.name.template
  • LOB オブジェクトに対する lob.topic.name.template
  • 破損した redo ログレコードに対する redo.log-corruption.topic

これらの出力トピックの場合、コネクターに CREATE または WRITE のアクセス許可を付与する必要があります。READ、WRITE または DELETE のアクセス許可が付与されると、コネクターは DESCRIBE 操作の権限を暗黙的に獲得します。

シンクコネクターの成功トピックおよびエラートピック

シンクコネクターのサービスアカウント」セクションでは、シンクコネクターのサービスアカウントの基本的な ACL エントリについて説明しています。いくつかのシンクコネクターでは、起動時に、追加の success-lcc トピックおよび error-lcc トピックが作成されます。以下のシンクコネクターでは、これらのトピックを作成するので、追加の ACL エントリが必要です。

これらのシンクコネクターでは、以下の ACL エントリを追加します。

confluent kafka acl create --allow --service-account "<service-account-id>" --operation "CREATE" --prefix --topic "success-lcc"
confluent kafka acl create --allow --service-account "<service-account-id>" --operation "WRITE" --prefix --topic "success-lcc"
confluent kafka acl create --allow --service-account "<service-account-id>" --operation "CREATE" --prefix --topic "error-lcc"
confluent kafka acl create --allow --service-account "<service-account-id>" --operation "WRITE" --prefix --topic "error-lcc"