AWSAWS Glue のタグ - AWS Glue

AWSAWS Glue のタグ

AWS Glue リソースを管理しやすくするために、オプションでいくつかの AWS Glue リソースタイプに独自のタグを割り当てることができます。タグとは、AWS リソースに割り当てるラベルです。タグはそれぞれ、1 つのキーとオプションの 1 つの値で設定されており、どちらもお客様側が定義します。AWS Glue のタグを使用して、自分のリソースを整理し識別することができます。タグを使用してコスト計算レポートを作成し、リソースへのアクセスを制限することができます。AWS Identity and Access Management を使用している場合は、AWS アカウント内のどのユーザーがタグを作成、編集、削除する許可を持つかをコントロールできます。タグ関連の API を呼び出すためのアクセス許可に加えて、接続でタグ付け API を呼び出すための glue:GetConnection アクセス許可と、データベースでタグ付け API を呼び出すための glue:GetDatabase アクセス許可も必要です。詳細については、「ABAC AWS Glue を使用」を参照してください。

AWS Glue では、以下のリソースにタグを付けることができます。

  • Connection

  • データベース

  • Crawler

  • インタラクティブセッション

  • 開発エンドポイント

  • ジョブ

  • Trigger トリガー)

  • ワークフロー

  • ブループリント

  • 機械学習変換

  • データ品質ルールセット

  • ストリームスキーマ

  • ストリームスキーマレジストリ

注記

ベストプラクティスとして、これらの AWS Glue リソースのタグ付けを可能にするには、常にポリシーに glue:TagResource アクションを含めます。

AWS Glue でタグを使用するときは、以下について検討します。

  • エンティティ 1 つにつき、最大 50 までのタグがサポートされています。

  • AWS Glue では、タグをキーと値のペアのリスト ({"string": "string" ...} 形式) で指定します。

  • オブジェクトにタグを作成する場合、タグキーは必須で、タグ値はオプションです。

  • タグキーとタグ値の大文字と小文字は区別されます。

  • タグキーとタグ値にプレフィックス awsを含めることはできません。そのようなタグに対するオペレーションは許可されていません。

  • タグキーの最大長は UTF-8 で 128 Unicode 文字です。タグキーを空または null にすることはできません。

  • タグ値の最大長は UTF-8 で 256 Unicode 文字です。タグ値は空または null にすることができます。

AWS Glue 接続のタグ付けのサポート

リソースタグに基づき、CreateConnectionUpdateConnectionGetConnectionDeleteConnection のアクションの許可を制限することができます。これにより、データカタログから JDBC 接続情報を取得する必要がある JDBC データソースを持つ AWS Glue ジョブに対して、最小特権のアクセス制御を実装することができます。

使用例

タグ ["connection-category", "dev-test"] との AWS Glue 接続を作成する。

IAM ポリシーの 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タグ付け戦略」を参照してください。

タグを使用してアクセスをコントロールする方法については、「ABAC AWS Glue を使用」を参照してください。