您可以从 Managed Service for Apache Kafka ACL 资源中移除单个现有权限规则(称为 ACL 条目),而不会影响列表中的其他条目。此功能有助于逐步撤消特定权限。
此操作类似于删除单个 Apache Kafka ACL 绑定,不需要 eTag 进行并发控制。
所需的角色和权限
如需获得移除 ACL 条目所需的权限,请让您的管理员为您授予项目的 Managed Kafka ACL Editor (roles/managedkafka.aclEditor) IAM 角色。
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
此预定义角色包含移除 ACL 条目所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
您需要具备以下权限才能移除 ACL 条目:
-
在 ACL 上授予此权限:
managedkafka.acls.updateEntries
Managed Kafka ACL Editor (roles/managedkafka.aclEditor) 角色包含添加或移除各个 ACL 条目所需的权限。如需了解详情,请参阅 Google Cloud Managed Service for Apache Kafka 预定义角色。
移除 ACL 条目
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init ACL_ID(必需):您要从中移除条目的 Managed Service for Apache Kafka ACL 资源的唯一 ID。此变量用于标识要从中移除条目的资源模式。如需详细了解 ACL ID,请参阅 ACL ID。CLUSTER_ID(必需):包含 ACL 资源的集群的 ID。LOCATION(必需):集群所在的区域。如需详细了解支持的区域,请参阅支持的位置。PRINCIPAL(必需):要移除的 ACL 条目的主账号用户或服务账号。使用User:{google_service_account_email}格式或通配符User:*。OPERATION(必需):要移除的 ACL 条目的操作类型。允许的值包括ALL、READ、WRITE、CREATE、DELETE、ALTER、DESCRIBE、CLUSTER_ACTION、DESCRIBE_CONFIGS、ALTER_CONFIGS和IDEMPOTENT_WRITE。PERMISSION_TYPE(可选,默认值 ALLOW):要移除的权限类型:ALLOW或DENY。HOST(可选,默认值 *):要移除的 ACL 条目的客户端主机。对于 Google Cloud Managed Service for Apache Kafka,此值必须设置为通配符'*'。
gcloud managed-kafka acls remove-acl-entry ACL_ID \ --cluster=CLUSTER_ID \ --location=LOCATION \ --principal=PRINCIPAL \ --operation=OPERATION \ --permission-type=PERMISSION-TYPE \ --host=HOST \
替换以下内容:
示例命令
您必须使用 --principal、--operation、--permission-type 和 --host 标志指定要移除的 ACL 条目的确切详细信息。
运行以下命令可移除一项 ACL 条目,该条目允许特定服务账号从 us-central1 区域中 test-cluster 集群内名为 test-topic 的主题读取数据。如果此 ACL 条目是唯一的条目,则系统会删除该 ACL,并且响应包含 deleted: True。
否则,返回更新后的 ACL 条目。
gcloud managed-kafka acls remove-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='*' \