AWS Glue 中的 AWS 标签 - AWS Glue

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

AWS Glue 中的 AWS 标签

为了便于您管理 AWS Glue 资源,您可以选择将自己的标签分配给某些 AWS Glue 资源类型。标签是为AWS资源分配的标记。每个标签都包含定义的一个键 和一个可选值。您可以在 AWS Glue 中使用标签来组织和标识资源。标签可用于创建成本会计报告并限制对资源的访问。如果您使用的是 AWS Identity and Access Management,则可以控制 AWS 账户中的哪些用户拥有创建、编辑或删除标签的权限。除了调用标签相关的 API 的权限外,您还需要在连接上调用标记 API 的 glue:GetConnection 权限以及对数据库调用标记 API 的 glue:GetDatabase 权限。有关更多信息,请参阅 使用 AWS Glue 的 ABAC

在 AWS Glue 中,您可以为以下资源添加标签:

  • Connection

  • 数据库

  • 爬网程序

  • 交互式会话

  • 开发终端节点

  • 任务

  • 触发器

  • 工作流

  • 蓝图

  • 机器学习转换

  • 数据质量规则集

  • 流架构

  • 流架构注册表

注意

作为最佳实践,要允许标记这些 AWS Glue 资源,请始终在您的策略中包含 glue:TagResource 操作。

在将标签用于 AWS Glue 时注意以下事项。

  • 每个实体支持最多 50 个标签。

  • 在 AWS Glue 中,您可以将标签指定为格式为 {"string": "string" ...} 的键值对列表

  • 在对象上创建标签时,标签键是必需的,而标签值是可选的。

  • 标签键和标签值区分大小写。

  • 标签键和标签值不得包含前缀 aws。禁止对此类标签进行操作。

  • 最大标签键长度为 128 个 Unicode 字符 (采用 UTF-8 格式)。标签键不得为空或为 null。

  • 最大标签值长度为 256 个 Unicode 字符 (采用 UTF-8 格式)。标签值可以为空或为 null。

对 AWS Glue 连接的标记支持

您可以根据资源标签限制 CreateConnectionUpdateConnectionGetConnectionDeleteConnection 操作权限。这使您能够对需要从数据目录获取 JDBC 连接信息的 JDBC 数据源 AWS Glue 任务实施最低权限访问控制。

示例用法

创建带有标签 ["connection-category", "dev-test"](“连接-类别”,“开发-测试”)的 AWS Glue 连接。

为 IAM policy 中的 GetConnection 操作指定标签条件。

{ "Effect": "Allow", "Action": [ "glue:GetConnection" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:ResourceTag/tagKey": "dev-test" } } }

示例

以下示例创建一个具有分配的标签的作业。

AWS CLI

aws glue create-job --name job-test-tags --role MyJobRole --command Name=glueetl,ScriptLocation=S3://aws-glue-scripts//prod-job1 --tags key1=value1,key2=value2

AWS CloudFormation JSON

{ "Description": "AWS Glue Job Test Tags", "Resources": { "MyJobRole": { "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "glue.amazonaws.com" ] }, "Action": [ "sts:AssumeRole" ] } ] }, "Path": "/", "Policies": [ { "PolicyName": "root", "PolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "*", "Resource": "*" } ] } } ] } }, "MyJob": { "Type": "AWS::Glue::Job", "Properties": { "Command": { "Name": "glueetl", "ScriptLocation": "s3://aws-glue-scripts//prod-job1" }, "DefaultArguments": { "--job-bookmark-option": "job-bookmark-enable" }, "ExecutionProperty": { "MaxConcurrentRuns": 2 }, "MaxRetries": 0, "Name": "cf-job1", "Role": { "Ref": "MyJobRole", "Tags": { "key1": "value1", "key2": "value2" } } } } } }

AWS CloudFormation YAML

Description: AWS Glue Job Test Tags Resources: MyJobRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Principal: Service: - glue.amazonaws.com Action: - sts:AssumeRole Path: "/" Policies: - PolicyName: root PolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Action: "*" Resource: "*" MyJob: Type: AWS::Glue::Job Properties: Command: Name: glueetl ScriptLocation: s3://aws-glue-scripts//prod-job1 DefaultArguments: "--job-bookmark-option": job-bookmark-enable ExecutionProperty: MaxConcurrentRuns: 2 MaxRetries: 0 Name: cf-job1 Role: Ref: MyJobRole Tags: key1: value1 key2: value2

有关更多信息,请参阅 AWS 标记策略

有关如何使用标签控制访问的信息,请参阅 使用 AWS Glue 的 ABAC