本文說明如何將 ACL 項目新增至代管 Kafka ACL 資源。
這項作業類似於建立單一 Apache Kafka ACL 繫結。 與更新作業不同,這項作業不需要 ETag 進行並行控制。
必要角色和權限
如要取得新增 ACL 項目所需的權限,請要求管理員授予您專案的「代管 Kafka ACL 編輯者」 (roles/managedkafka.aclEditor) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
這個預先定義的角色具備 managedkafka.acls.updateEntries 權限,可新增 ACL 項目。
新增 ACL 項目
gcloud
請執行 gcloud managed-kafka acls add-acl-entry 指令。
gcloud managed-kafka acls add-acl-entry ACL_ID \
--cluster=CLUSTER_ID \
--location=LOCATION \
--principal=PRINCIPAL \
--operation=OPERATION \
--permission-type=PERMISSION_TYPE \
--host=*
更改下列內容:
指令範例
執行下列指令,允許特定服務帳戶從 us-central1 區域中 test-cluster 叢集的 test-topic 主題讀取資料。
gcloud managed-kafka acls add-acl-entry topic/test-topic \
--cluster=test-cluster \
--location=us-central1 \
--principal='User:service-account@test-project.iam.gserviceaccount.com' \
--operation=READ \
--permission-type=ALLOW \
--host='*'
以下是輸出內容範例:
acl:
aclEntries:
- host: '*'
operation: READ
permissionType: ALLOW
principal: 'User:service-account@test-project.iam.gserviceaccount.com'
etag: W/another-new-etag
name: projects/test-project/locations/us-central1/clusters/test-cluster/acls/topic/test-topic
patternType: LITERAL
resourceName: test-topic
resourceType: TOPIC
aclCreated: false
add-acl-entry 指令的輸出內容會提供有關產生的 ACL 狀態資訊:
acl:這個部分說明新增項目後更新的 ACL 資源。aclEntries:這是包含這個 ACL 所有存取控制項目的清單。在本範例中,這個清單現在會包含剛才新增的項目。每個項目都有下列欄位:host:ACL 項目的主機。operation:這個項目適用的 Kafka 作業。permissionType:存取權是ALLOW或DENY。principal:這個項目適用的使用者或服務帳戶。
etag:這是更新後 ACL 的實體標記。用於後續更新期間的樂觀並行控制。新增項目後,這個值會變更。name:ACL 資源的專屬 ID,格式為projects/{project}/locations/{location}/clusters/{cluster}/acls/{acl_id}。patternType:這個 ACL 的資源模式類型。resourceName:這個 ACL 適用的 Kafka 資源名稱。resourceType:Kafka 資源類型。
aclCreated:布林值,表示是否因新增這個項目而建立 ACL 資源。