コネクター用の RBAC の構成

RBAC が有効な環境では、個々のコネクターが Connect ワーカーのプリンシパルの構成をオーバーライドできます。これにより、コネクターごとに、特定のトピックに対する特定のアクセス権限を持つ個別のプリンシパルを使用でき、Kafka 環境のセキュリティを強化できます。RBAC を使用する Kafka の本稼働環境では、これをお勧めします。

注釈

次の考慮事項に注意してください。

  • 以下のセクションの構成の手順では、 ワーカー全体のデフォルトプロパティ を含めていることが前提となっています。
  • コネクターの認証情報にシークレットレジストリを使用する場合は、「シークレットレジストリ」を参照してください。
  • Kafka Connect 用の RBAC を構成する前に、ホワイトペーパー『 Kafka Connect のロールベースアクセス制御(RBAC) 』をお読みください。このホワイトペーパーでは、基本的な RBAC の概念を紹介し、Kafka Connect およびコネクターでの RBAC の使用について詳しく説明しています。また、GitHub のデモへのリンクも含まれており、ローカルにインストールした Confluent Platform で動作を確認することができます。

ソースコネクター

Connect クラスターで作成されたすべてのソースコネクターに、次の行と有効なサービスプリンシパルを追加します。

producer.override.sasl.jaas.config": "org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule required\
username=\"${USER_CONNECTOR}\" \
password=\"${USER_CONNECTOR}1\" \
metadataServerUrls=\"http://localhost:8090\";",

シンクコネクター

Connect クラスターで作成されたすべてのシンクコネクターに、次の行と有効なサービスプリンシパルを追加します。

consumer.override.sasl.jaas.config": "org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule required \
username=\"${USER_CONNECTOR}\" \
password=\"${USER_CONNECTOR}1\" \
metadataServerUrls=\"http://localhost:8090\";",

デッドレターキュー

コネクターでデッドレターキュー機能を使用している場合は、コネクターのプロデューサーと管理クライアントの両方に構成ブロックを追加する必要があります。これは、無効な(破棄された)シンクメッセージがプロデューサーに渡され、そのプロデューサーがデッドレターキューにレコードを送信するように構成されていると、管理クライアントがデッドレターキューのトピックを作成するためです。両者に機能を実行するためのサービスプリンシパルが必要です。

デッドレターキュー機能を使用するには、以下に示す 2 つの構成セクションを追加します。

producer.override.sasl.jaas.config": "org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule required \
username=\"${USER_CONNECTOR}\" \
password=\"${USER_CONNECTOR}1\" \
metadataServerUrls=\"http://localhost:8090\";",
admin.override.sasl.jaas.config": "org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule required \
username=\"${USER_CONNECTOR}\" \
password=\"${USER_CONNECTOR}1\" \
metadataServerUrls=\"http://localhost:8090\";",

Schema Registry ベースのコンバーター

Connect では、以下の Schema Registry ベースのコンバーターを使用できます。

  • Avro コンバーター : io.confluent.connect.avro.AvroConverter
  • Protobuf コンバーター : io.confluent.connect.protobuf.ProtobufConverter
  • JSON スキーマコンバーター : io.confluent.connect.json.JsonSchemaConverter

RBAC が有効な Schema Registry とともに Schema Registry ベースのコンバーターを使用するには、まず、コネクターの構成に key.converter プロパティまたは value converter プロパティを追加します。次の例は、Avro、Protobuf、JSON スキーマの value.converter プロパティを示しています。

"value.converter": "io.confluent.connect.avro.AvroConverter"
"value.converter": "io.confluent.connect.protobuf.ProtobufConverter"
"value.converter": "io.confluent.connect.json.JsonSchemaConverter"

次に、Schema Registry での認証を適切に行うため、以下のプロパティを追加します。<username> および <password> には、コネクターの service principal ユーザー名とパスワードを入力します。以下のプロパティは、3 つのコンバーターの間で相互に入れ替えて使用できます。

"value.converter.schema.registry.url": "<schema-registry-url>",
"value.converter.basic.auth.credentials.source": "USER_INFO",
"value.converter.basic.auth.user.info": "<username>:<password>"

一例として Avro の場合、コンバーターの構成スニペットの全体は次のようになります。

"value.converter": "io.confluent.connect.avro.AvroConverter"
"value.converter.schema.registry.url": "<schema-registry-url>",
"value.converter.basic.auth.credentials.source": "USER_INFO",
"value.converter.basic.auth.user.info": "<username>:<password>"

For additional information about Connect converters, see Configuring Key and Value Converters.