翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Apache Kafka には、プラグイン可能なオーソライザーがあり、すぐに使用できるオーソライザーの実装とともに出荷されます。Amazon MSK では、ブローカーの server.properties
ファイルでこのオーソライザーが有効になります。
Apache Kafka ACL の形式は、「プリンシパル P は [許可/拒否] オペレーション O です。ResourcePattern RP に一致する任意のリソース R のホスト H から」です。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 認可コマンドラインインターフェイス
Amazon MSK はブローカーをスーパーユーザーとして設定するため、すべてのトピックにアクセスできます。これにより、 allow.everyone.if.no.acl.found
プロパティがクラスターの設定に対して定義されているかどうかにかかわらず、ブローカーはプライマリパーティションからメッセージをレプリケートできます。
トピックに対する読み取りおよび書き込みアクセス権を追加するか削除するには
-
ブローカーを ACL テーブルに追加して、ACL が設定されているすべてのトピックから読み取りを実行できるようにします。ブローカーにトピックへの読み取りアクセスを許可するには、MSK クラスターと通信できるクライアントマシンで次のコマンドを実行します。
Distinguished-Name
をクラスターのブートストラップブローカーの DNS に置き換え、この識別名の最初のピリオドより前の文字列をアスタリスク (*
) に置き換えます。たとえば、クラスターのブートストラップブローカーの 1 つに DNSb-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 --bootstrap-server BootstrapServerString --add --allow-principal "User:CN=Distinguished-Name
" --operation Read --group=* --topicTopic-Name
-
トピックへの読み取りアクセス権を付与するには、クライアントマシンで次のコマンドを実行します。相互 TLS 認証を使用する場合は、プライベートキーの作成時に使用したのと同じ
Distinguished-Name
を使用します。<path-to-your-kafka-installation>
/bin/kafka-acls.sh --bootstrap-server BootstrapServerString --add --allow-principal "User:CN=Distinguished-Name
" --operation Read --group=* --topicTopic-Name
読み取りアクセス権を削除するには、同じコマンドを実行し、
--add
を--remove
に置き換えます。 -
トピックへの書き込みアクセス権を付与するには、クライアントマシンで次のコマンドを実行します。相互 TLS 認証を使用する場合は、プライベートキーの作成時に使用したのと同じ
Distinguished-Name
を使用します。<path-to-your-kafka-installation>
/bin/kafka-acls.sh --bootstrap-server BootstrapServerString --add --allow-principal "User:CN=Distinguished-Name
" --operation Write --topicTopic-Name
書き込みアクセス権を削除するには、同じコマンドを実行し、
--add
を--remove
に置き換えます。