重要
このページの日本語コンテンツは古くなっている可能性があります。最新の英語版コンテンツをご覧になるには、こちらをクリックしてください。
シンクコネクターのサービスアカウント¶
すべての 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」を参照してください。
myserviceaccount
という名前のサービスアカウントを作成します。confluent iam service-account create myserviceaccount --description "test service account"
myserviceaccount
のサービスアカウント ID を確認します。confluent iam service-account list
クラスターに対する DESCRIBE の ACL を設定します。
confluent kafka acl create --allow --service-account "<service-account-id>" --operation "DESCRIBE" --cluster-scope
pageviews
に対する READ の ACL を設定します。confluent kafka acl create --allow --service-account "<service-account-id>" --operation "READ" --topic "pageviews"
以下のトピックプレフィックスを使用して、CREATE の ACL を設定します。
confluent kafka acl create --allow --service-account "<service-account-id>" --operation "CREATE" --prefix --topic "dlq-lcc"
以下のトピックプレフィックスを使用して、WRITE の ACL を設定します。
confluent kafka acl create --allow --service-account "<service-account-id>" --operation "WRITE" --prefix --topic "dlq-lcc"
以下のプレフィックスを使用して、コンシューマーグループに対する READ の ACL を設定します。
confluent kafka acl create --allow --service-account "<service-account-id>" --operation "READ" --prefix --consumer-group "connect-lcc"
<service-account-id>
の Kafka API キーとシークレットを作成します。confluent api-key create --resource "lkc-gqgvx" --service-account "<service-account-id>"
API キーとシークレットを保存します。
コネクター構成には、API キーとシークレットか、サービスアカウント ID のいずれかが含まれている必要があります。サービスアカウント情報について詳しくは、「サービスアカウント」を参照してください。
ソースコネクターのサービスアカウント¶
この例では、以下を前提としています。
- クラスター ID
lkc-gqgvx
の Kafka クラスターが存在する。 - ソースコネクターで
passengers
という名前のトピックに書き込みを行う。
以下の例の手順を使用して、サービスアカウントを作成し、ACL を設定して、API キーとシークレットを追加します。
注釈
以下の手順では、ソースコネクターのサービスアカウントの基本的な ACL エントリを示しています。特定のコネクターで必要となる可能性がある、追加の ACL エントリについては、「Debezium のソースコネクター」および「JDBC ベースのソースコネクターおよび MongoDB Atlas のソースコネクター」で確認してください。
myserviceaccount
という名前のサービスアカウントを作成します。confluent iam service-account create myserviceaccount --description "test service account"
myserviceaccount
のサービスアカウント ID を確認します。confluent iam service-account list
クラスターに対する DESCRIBE の ACL を設定します。
confluent kafka acl create --allow --service-account "<service-account-id>" --operation "DESCRIBE" --cluster-scope
passengers
に対する WRITE の ACL を設定します。confluent kafka acl create --allow --service-account "<service-account-id>" --operation "WRITE" --topic "passengers"
<service-account-id>
の Kafka API キーとシークレットを作成します。confluent api-key create --resource "lkc-gqgvx" --service-account "<service-account-id>"
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 エントリが必要です。
- MySQL Source(JDBC)Connector for Confluent Cloud
- PostgreSQL Source(JDBC)Connector for Confluent Cloud
- Microsoft SQL Server Source(JDBC)Connector for Confluent Cloud
- Oracle Database Source Connector for Confluent Cloud
- MongoDB Atlas Source Connector for Confluent Cloud
これらのソースコネクターでは、以下の 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 エントリが必要です。
- AWS Lambda Sink Connector for Confluent Cloud
- Azure Functions Sink Connector for Confluent Cloud
- Google Cloud Functions Sink Connector for Confluent Cloud
- Datadog Metrics Sink for Confluent Cloud
これらのシンクコネクターでは、以下の 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"