使用标记控制访问权限

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

您可以将标记附加到 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)
  • 如需创建、更新和删除标记定义: Tag Administrator (roles/resourcemanager.tagAdmin)
  • 如需管理组织级层标记: Organization Viewer (roles/resourcemanager.organizationViewer) - 针对组织资源
  • 如需添加和移除附加到实例的标记: Tag User (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 实例或由 Cloud Data Fusion 实例继承的所有标记: datafusion.instances.listEffectiveTags

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

创建标记键和标记值

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

将标记附加到 Cloud Data Fusion 实例

您可以在创建 Cloud Data Fusion 实例期间和之后将标记附加到该实例。

在创建实例期间附加标记

您可以在创建 Cloud Data Fusion 实例时附加标记。

gcloud

使用带有 --tags 标志的 gcloud beta data-fusion instances create 命令:

gcloud beta data-fusion instances create INSTANCE_ID \
    --tags=tagKeys/TAGKEY_ID=tagValues/TAGVALUE_ID

您可以一次添加多个标记

替换以下内容:

  • INSTANCE_ID:Cloud Data Fusion 实例的名称。
  • TAGKEY_ID:标记键的数字 ID,不带命名空间,例如 123456789012
  • TAGVALUE_ID:标记值的永久数字 ID。例如,4567890123

REST

向以下网址发送 POST 请求:

POST https://datafusion.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances?instanceID=INSTANCE_ID

在请求正文中提供以下 JSON:

{
    "tags": {
        "tagKeys/TAGKEY_ID": "tagValues/TAGVALUE_ID"
    }
    // Other fields omitted
}

替换以下内容:

  • PROJECT_ID:您的项目的 ID。
  • INSTANCE_ID:Cloud Data Fusion 实例的名称。
  • TAGKEY_ID:标记键的数字 ID。
  • TAGVALUE_ID:标记值的永久数字 ID。例如,4567890123

如需了解详情,请参阅 v1v1beta1 API 参考文档。

您可以一次添加多个标记

在创建实例后附加标记

您可以在创建 Cloud Data Fusion 实例后将标记附加到该实例。

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-central1 中的 projects/7890123456 中的实例,请使用以下资源 ID://datafusion.googleapis.com/projects/7890123456/locations/us-central1/instances/instance-ID
  • LOCATION:资源的位置。例如:us-central1

系统会显示一条通知,确认您的标记已创建。

此操作不会导致实例重启。

列出附加到实例的标记

您可以查看直接附加到 Cloud Data Fusion 实例或由 Cloud Data Fusion 实例继承的标记绑定的列表。

gcloud

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

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

替换以下内容:

  • RESOURCE_ID:资源的完整 ID,包括用于标识资源类型的 API 域名 (//datafusion.googleapis.com/)。例如,如需列出位于 us-central1 中的 projects/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

将标记与实例分离

您可以分离直接附加到 Cloud Data Fusion 实例的标记。可以通过附加具有相同键和不同值的标记来替换继承的标记,但不能分离这些标记。如需删除标记,您必须先将其键和值与附加到的每个实例分离。

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-central1 中的 projects/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 条件和标记

后续步骤