本文档介绍了如何向托管 Kafka ACL 资源添加 ACL 条目。
此操作类似于创建单个 Apache Kafka ACL 绑定。与更新操作不同,此操作不需要 ETag 来进行并发控制。
所需的角色和权限
如需获得添加 ACL 条目所需的权限,请让您的管理员为您授予项目的 Managed Kafka ACL Editor (roles/managedkafka.aclEditor) IAM 角色。
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
此预定义角色可提供添加 ACL 条目所需的 managedkafka.acls.updateEntries 权限。
添加 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 资源的唯一标识符。格式为projects/{project}/locations/{location}/clusters/{cluster}/acls/{acl_id}。patternType:相应 ACL 的资源模式类型。resourceName:此 ACL 所适用的 Kafka 资源的名称。resourceType:Kafka 资源类型。
aclCreated:一个布尔值,用于指示 ACL 资源是否因添加此条目而创建。