本文說明如何建立 ACL 項目,並將其新增至代管 Kafka ACL 資源。如果代管 Kafka ACL 資源不存在,這項作業也會建立 ACL 資源。
這項作業類似於建立單一 Apache Kafka ACL 繫結。 與更新作業不同,這項作業不需要 ETag 進行並行控制。
所需角色和權限
如要取得新增 ACL 項目所需的權限,請要求管理員授予您專案的「代管 Kafka ACL 編輯者」 (roles/managedkafka.aclEditor) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
這個預先定義的角色具備 managedkafka.acls.updateEntries 權限,可新增 ACL 項目。
新增 ACL 項目
控制台
前往 Google Cloud 控制台的「Clusters」(叢集) 頁面。
按一下要新增 ACL 項目所在的叢集名稱。
按一下「存取控管」分頁標籤。
按一下「建立 ACL 項目」。
在「建立 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:這是更新後存取控制清單的實體標記。用於後續更新期間的樂觀並行控制。新增項目後,值會隨之變更。name:ACL 資源的專屬 ID。格式為projects/{project}/locations/{location}/clusters/{cluster}/acls/{acl_id}。patternType:這個 ACL 的資源模式類型。resourceName:這個 ACL 適用的 Kafka 資源名稱。resourceType:Kafka 資源的類型。
aclCreated:布林值,指出是否因新增這個項目而建立 ACL 資源。