在代管 Kafka ACL 中新增 ACL 項目

本文說明如何將 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=*

更改下列內容:

  • ACL_ID。要更新的代管 Kafka ACL 資源 ID。詳情請參閱 ACL ID。如果沒有這個 ID 的受管理 Kafka ACL,系統會自動建立一個。

  • CLUSTER_ID:Kafka 叢集的 ID。

  • LOCATION:Kafka 叢集所在的區域。

  • PRINCIPAL:新 ACL 項目的主體

  • OPERATION作業類型,例如 READCREATE

  • PERMISSION_TYPE:主體對作業擁有的權限。請指定 ALLOWDENY

指令範例

執行下列指令,允許特定服務帳戶從 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:存取權是 ALLOWDENY
      • principal:這個項目適用的使用者或服務帳戶。
    • etag:這是更新後 ACL 的實體標記。用於後續更新期間的樂觀並行控制。新增項目後,這個值會變更。

    • name:ACL 資源的專屬 ID,格式為 projects/{project}/locations/{location}/clusters/{cluster}/acls/{acl_id}

    • patternType:這個 ACL 的資源模式類型。

    • resourceName:這個 ACL 適用的 Kafka 資源名稱。

    • resourceType:Kafka 資源類型。

  • aclCreated:布林值,表示是否因新增這個項目而建立 ACL 資源。

後續步驟

Apache Kafka® 是 The Apache Software Foundation 或其關聯企業在美國與/或其他國家/地區的註冊商標。