阿帕奇·卡夫卡 ACLs - Amazon Managed Streaming for Apache Kafka

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

阿帕奇·卡夫卡 ACLs

阿帕奇卡夫卡有一個可插拔的授權者,並附帶授權者實現。 out-of-box MSKAmazon 在經紀人的server.properties文件中啟用此授權者。

阿帕奇卡夫卡ACLs的格式為「主體 P 是 [允許/拒絕] 操作 O 從主機 H 上的任何資源 R 匹配 RP」. ResourcePattern 如果 RP 與特定資源 R 不匹配,則 R 沒有關聯ACLs,因此除了超級使用者之外沒有任何其他人可以訪問 R。若要更改此 Apache Kafka 行為,請allow.everyone.if.no.acl.found將屬性設置為 true。Amazon 默認情況下將其MSK設置為 true。這表示使用 Amazon MSK 叢集時,如果您未在資源ACLs上明確設定,則所有主體都可以存取此資源。如果您在資源ACLs上啟用,則只有授權的主參與者可以存取該資源。如果要限制對主題的訪問,並使用TLS相互身份驗證授權客戶端,請ACLs使用 Apache Kafka 授權者添加。CLI有關添加,刪除和列出的更多信息ACLs,請參閱 Kafka 授權命令行界面。

除了用戶端之外,您還需要授予所有代理程式存取您的主題,以便代理程式可以從主分區複製訊息。如果代理程式無法存取主題,主題的複寫就會失敗。

若要新增或移除主題的讀取和寫入權限
  1. 將您的經紀人添加到ACL表格中,以允許他們從已經到位的所有主題ACLs中讀取。若要授與代理程式主題的讀取權限,請在可與MSK叢集通訊的用戶端機器上執行下列命令。

    Replace (取代) Distinguished-Name 使用DNS任何叢集的啟動程式代理程式,然後以星號 (*) 取代此辨別名稱中第一個句點之前的字串。例如,如果您的一個群集的引導代理程序具有 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 --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