Apache Kafka ACL - Amazon Managed Streaming for Apache Kafka

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Apache Kafka ACL

Apache Kafka にはプラガブルオーソライザーがあり、 out-of-box オーソライザーの実装が付属しています。Amazon MSK では、ブローカーの server.properties ファイルでこのオーソライザーが有効になります。

Apache Kafka ACLs「プリンシパル P は [許可/拒否] オペレーション O From Host H on any Resource R matching ResourcePattern RP」です。RP が特定のリソース R と一致しない場合、R には ACL が関連付けられていないため、スーパーユーザー以外は R にアクセスできません。この Apache Kafka の動作を変更するには、プロパティ allow.everyone.if.no.acl.found を true に設定します。Amazon MSK は、デフォルトで true に設定します。これは、Amazon MSK クラスターでは、リソースに ACL を明示的に設定しない場合、すべてのプリンシパルがこのリソースにアクセスできることを意味します。リソースで ACL を有効にすると、許可されたプリンシパルのみがリソースにアクセスできます。トピックへのアクセスを制限し、TLS 相互認証を使用してクライアントを承認する場合は、Apache Kafka オーソライザー CLI を使用して ACL を追加します。ACL の追加、削除、および一覧表示の詳細については、Kafka 認可コマンドラインインターフェイスを参照してください。

クライアントに加えて、ブローカーがプライマリパーティションからメッセージを複製できるように、すべてのブローカーにトピックへのアクセスを許可する必要もあります。ブローカーがトピックにアクセスできない場合、トピックのレプリケーションは失敗します。

トピックに対する読み取りおよび書き込みアクセス権を追加するか削除するには
  1. ブローカーを ACL テーブルに追加して、ACL が設定されているすべてのトピックから読み取りを実行できるようにします。ブローカーにトピックへの読み取りアクセスを許可するには、MSK クラスターと通信できるクライアントマシンで次のコマンドを実行します。

    Distinguished-Name をクラスターのブートストラップブローカーの DNS に置き換え、この識別名の最初のピリオドより前の文字列をアスタリスク (*) に置き換えます。たとえば、クラスターのブートストラップブローカーの 1 つに DNS b-6.mytestcluster.67281x.c4.kafka.us-east-1.amazonaws.com がある場合は、以下のコマンドの Distinguished-Name*.mytestcluster.67281x.c4.kafka.us-east-1.amazonaws.com に置き換えます。ブートストラップブローカーを取得する方法については、「Amazon MSK クラスター用のブートストラップブローカーの取得」を参照してください。

    <path-to-your-kafka-installation>/bin/kafka-acls.sh --authorizer-properties --bootstrap-server BootstrapServerString --add --allow-principal "User:CN=Distinguished-Name" --operation Read --group=* --topic Topic-Name
  2. トピックへの読み取りアクセス権を付与するには、クライアントマシンで次のコマンドを実行します。相互 TLS 認証を使用する場合は、プライベートキーの作成時に使用したのと同じ Distinguished-Name を使用します。

    <path-to-your-kafka-installation>/bin/kafka-acls.sh --authorizer-properties --bootstrap-server BootstrapServerString --add --allow-principal "User:CN=Distinguished-Name" --operation Read --group=* --topic Topic-Name

    読み取りアクセス権を削除するには、同じコマンドを実行し、--add--remove に置き換えます。

  3. トピックへの書き込みアクセス権を付与するには、クライアントマシンで次のコマンドを実行します。相互 TLS 認証を使用する場合は、プライベートキーの作成時に使用したのと同じ Distinguished-Name を使用します。

    <path-to-your-kafka-installation>/bin/kafka-acls.sh --authorizer-properties --bootstrap-server BootstrapServerString --add --allow-principal "User:CN=Distinguished-Name" --operation Write --topic Topic-Name

    書き込みアクセス権を削除するには、同じコマンドを実行し、--add--remove に置き換えます。