使用标记控制访问权限

本页面介绍了如何在 Cloud Data Fusion 中使用标记管理资源。

关于标记

标记是一种可附加到 Google Cloud 中的资源的键值对。您可以使用标记,根据资源是否有特定标记,有条件地允许或拒绝政策。例如,您可以根据资源是否具有特定标记,有条件地授予 Identity and Access Management (IAM) 角色。如需详细了解标记,请参阅标记概览

通过创建可将值关联到 Google Cloud 资源的标记绑定资源,系统会将标记关联到资源。

准备工作

如需获取以下用例的权限,请让管理员在资源层次结构的适当级别授予建议的角色。如需详细了解 Cloud Data Fusion 中的 IAM,请参阅使用 IAM 进行访问权限控制

所需的角色和权限

如需获取使用标记管理 Cloud Data Fusion 中的资源所需的权限,请让管理员向您授予 Cloud Data Fusion 服务账号以及 Compute Engine 默认服务帐号或自定义服务帐号的以下 IAM 角色:

  • 如需查看附加到资源的标记定义和标记,请执行以下操作: Tag Viewer (roles/resourcemanager.tagViewer)
  • 如需创建、更新和删除代码定义,请执行以下操作: 代码管理员 (roles/resourcemanager.tagAdmin)
  • 如需在组织级别管理标记,请执行以下操作: 针对组织资源的 Organization Viewer (roles/resourcemanager.organizationViewer)
  • 如需添加和移除附加到资源的标记,请执行以下操作: 标记用户 (roles/resourcemanager.tagUser) - 针对标记值以及您将标记值附加到的资源上
  • 如需将标记附加到 Cloud Data Fusion 实例,请执行以下操作: Cloud Data Fusion Admin (roles/datafusion.admin)

如需详细了解如何授予角色,请参阅管理访问权限

这些预定义角色包含在 Cloud Data Fusion 中使用标记管理资源所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

如需使用标记管理 Cloud Data Fusion 中的资源,您需要拥有以下权限:

  • resourcemanager.tagKeys.get
  • resourcemanager.tagKeys.list
  • resourcemanager.tagValues.get
  • resourcemanager.tagValues.list
  • 相应资源类型的 listTagBindings。例如,如需查看附加到 Cloud Data Fusion 实例的标记,请使用以下代码: datafusion.instances.listTagBindings
  • 相应资源类型的 listEffectiveTags。例如,如需查看 Cloud Data Fusion 实例附加或由其继承的所有标记,请使用以下代码: datafusion.instances.listEffectiveTags

您也可以使用自定义角色或其他预定义角色来获取这些权限。

创建标记键和标记值

在附加标记之前,您需要创建标记并配置其值。要创建标记键和标记值,请参阅创建标记添加标记值

将标记附加到资源

创建标记后,将其附加到资源。

gcloud

如需将标记附加到实例,您必须使用 create 命令创建标记绑定资源:

gcloud resource-manager tags bindings create \
  --tag-value=TAGVALUE_NAME \
  --parent=RESOURCE_ID \
  --location=LOCATION

请替换以下内容:

  • TAGVALUE_NAME:附加标记值的永久 ID 或命名空间名称,例如 tagValues/567890123456
  • RESOURCE_ID:资源的完整 ID,包括 API 域名,用于标识资源类型 (//datafusion.googleapis.com/)。例如,如需将标记附加到位于 us-central1projects/7890123456 中的实例,请使用以下资源 ID://datafusion.googleapis.com/projects/7890123456/locations/us-central1/instances/instance-ID
  • LOCATION:资源的位置。例如:us-central1

系统会显示一条通知,确认您的代码已创建完毕。

列出附加到资源的标记

您可以查看直接附加到资源或由资源继承的标记绑定的列表。

gcloud

如需获取附加到资源的标记绑定列表,请使用 list 命令:

gcloud resource-manager tags bindings list \
  --parent=RESOURCE_ID \
  --location=LOCATION

请替换以下内容:

  • RESOURCE_ID:资源的完整 ID(包括 API 域名),用于标识资源类型 (//datafusion.googleapis.com/)。例如,如需列出位于 us-central1projects/7890123456 中的实例中的标记,请使用以下资源 ID://datafusion.googleapis.com/projects/7890123456/locations/us-central1/instances/instance-ID
  • LOCATION:资源的位置。例如:us-central1

响应的格式如下:

tagBindings/%2F%2Fcloudresourcemanager.googleapis.com%2Fprojects%2F7890123456/tagValues/567890123456
  tagValue: tagValues/567890123456
  resource: //datafusion.googleapis.com/projects/7890123456/locations/us-central1/instances/instance-ID

将标记与资源分离

您可以分离已直接附加到资源的标记。可通过附加具有相同键和不同值的标记来替换继承的标记,但不能分离它们。在删除某个标记之前,您必须先将该标记的键和值与其附加到的每个资源分离。

gcloud

如需删除标记绑定,请使用 delete 命令:

gcloud resource-manager tags bindings delete \
  --tag-value=TAGVALUE_NAME \
  --parent=RESOURCE_ID \
  --location=LOCATION

请替换以下内容:

  • TAGVALUE_NAME:附加标记值的永久 ID 或命名空间名称,例如 tagValues/567890123456
  • RESOURCE_ID:资源的完整 ID,包括 API 域名,用于标识资源类型 (//datafusion.googleapis.com/)。例如,如需将标记附加到位于 us-central1projects/7890123456 中的实例,请使用以下资源 ID://datafusion.googleapis.com/projects/7890123456/locations/us-central1/instances/instance-ID
  • LOCATION:资源的位置。例如:us-central1

系统会显示一条通知,确认您的代码已更新。

删除标记键和标记值

移除标记键或值定义时,请确保标记与资源分离。在删除标记定义本身之前,您必须先删除现有的标记连接(称为标记绑定)。如需删除标记键和标记值,请参阅删除标记

Identity and Access Management 条件和标记

您可以使用标记和 IAM 条件来有条件地向层次结构中的用户授予角色绑定。如果应用了具有条件角色绑定的 IAM 政策,则更改或删除附加到资源的标记可能会移除用户对该资源的访问权限。如需了解详情,请参阅 Identity and Access Management 条件和标记

后续步骤