AWS 标签在 AWS Glue - AWS Glue

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

AWS 标签在 AWS Glue

为了便于您管理 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 作业实施最低权限访问控制。

示例用法

使用标签 [" AWS Glue 连接类别","dev-test"] 创建连接。

为 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