本文說明如何使用新的 ACL 項目清單更新代管 Kafka ACL 資源。
您無法使用空白項目清單更新 ACL。如要移除 ACL 的所有 ACL 項目,請刪除代管 Kafka ACL 資源。詳情請參閱「刪除代管 Kafka ACL」。
您也可以新增或移除個別 ACL 項目。詳情請參閱下列文件:
必要角色和權限
如要取得更新 Managed Kafka ACL 所需的權限,請要求管理員授予您專案的「Managed Kafka ACL 編輯者」 (roles/managedkafka.aclEditor) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
這個預先定義的角色具備更新代管 Kafka ACL 所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:
所需權限
如要更新代管 Kafka ACL,必須具備下列權限:
-
全部:
managedkafka.acls.update
擷取 ACL 的 ETag
對代管 Kafka ACL 執行更新作業時,您必須提供 ETag。ETag 可確保變更套用至 Kafka 叢集中現有的 ACL 項目版本。
如要取得 ACL 的目前 ETag,請參閱「查看代管 Kafka ACL」。
如果 ETag 包含終端 'T' 字元,表示 ACL 項目遭到截斷。在這種情況下,您無法使用 Managed Kafka API 執行更新作業,而是要使用標準 Apache Kafka 工具 (例如 kafka-acls.sh 或 AdminClient) 直接管理 ACL。
取代 ACL 項目
gcloud
請執行 gcloud managed-kafka acls update 指令。
gcloud managed-kafka acls update ACL_ID \
--cluster=CLUSTER_ID \
--location=LOCATION \
--etag=ETAG_VALUE \
--acl-entry=principal='PRINCIPAL',operation=OPERATION_TYPE,permission_type=PERMISSION_TYPE,host='*' \
--acl-entry= ...
更改下列內容:
ACL_ID:要更新的代管 Kafka ACL 資源 ID。詳情請參閱「ACL ID」。CLUSTER_ID:Kafka 叢集的 ID。LOCATION:Kafka 叢集所在的區域。ETAG_VALUE:ACL 的 ETag。
針對要納入更新後 ACL 的每個 ACL 項目,指定個別的 --acl-entry 旗標,並取代下列項目:
取代 ACL 項目範例
這項指令會將 us-central1 中 test-kafka-cluster 內 topic/orders 資源模式的所有現有 ACL 項目,替換為單一新項目。這個新項目會將 WRITE 權限授予服務帳戶 producer-app@test-project.iam.gserviceaccount.com。這項指令需要 ACL 資源的目前 etag,在本例中為 "AYk=Ags="。
gcloud managed-kafka acls update topic/orders \
--cluster=test-kafka-cluster \
--location=us-central1 \
--project=test-project \
--etag='"AYk=Ags="' \
--acl-entry=principal='User:producer-app@test-project.iam.gserviceaccount.com',operation=WRITE,permission_type=ALLOW,host='*'
如果指令成功執行,輸出內容會顯示更新後的 ACL 資源設定,包括新的 aclEntries 清單和新的 etag。這個 ACL 資源先前存在的所有項目都會移除。
aclEntries:
- host: '*'
operation: WRITE
permissionType: ALLOW
principal: User:producer-app@test-project.iam.gserviceaccount.com
etag: '"Bcn=Def="' # Note: The etag value changes after a successful update.
name: projects/test-project/locations/us-central1/clusters/my-kafka-cluster/acls/topic/orders
resourcePatternType: TOPIC