

# Amazon Glue 中的 Amazon 标签
<a name="monitor-tags"></a>

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

在 Amazon Glue 中，您可以为以下资源添加标签：
+ Connection
+ 数据库
+ 爬网程序
+ 交互式会话
+ 开发终端节点
+ 任务
+ 触发器
+ 工作流
+ 蓝图
+ Machine Learning 转换
+ 数据质量规则集
+ 流架构
+ 流架构注册表

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

在将标签用于 Amazon Glue 时注意以下事项。
+ 每个实体支持最多 50 个标签。
+ 在 Amazon Glue 中，您可以将标签指定为格式为 `{"string": "string" ...}` 的键值对列表
+ 在对象上创建标签时，标签键是必需的，而标签值是可选的。
+ 标签键和标签值区分大小写。
+ 标签键和标签值不得包含前缀 *aws*。禁止对此类标签进行操作。
+ 最大标签键长度为 128 个 Unicode 字符 (采用 UTF-8 格式)。标签键不得为空或为 null。
+ 最大标签值长度为 256 个 Unicode 字符 (采用 UTF-8 格式)。标签值可以为空或为 null。

## 对 Amazon Glue 连接的标记支持
<a name="tag-connections"></a>

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

**示例用法**  
创建带有标签 ["connection-category", "dev-test"]（“连接-类别”，“开发-测试”）的 Amazon Glue 连接。

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

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

## 示例
<a name="TagExamples"></a>

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

**Amazon 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
```

**Amazon 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"
           } 
        }
      }
    }
  }
}
```

**Amazon 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
```

有关更多信息，请参阅 [Amazon 标记策略](https://www.amazonaws.cn/answers/account-management/aws-tagging-strategies/)。

有关如何使用标签控制访问的信息，请参阅 [使用 Amazon Glue 的 ABAC](security_iam_service-with-iam.md#security_iam_service-with-iam-tags)。