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 接続のタグ付けのサポート
リソースタグに基づき、CreateConnection
、UpdateConnection
、GetConnection
、DeleteConnection
のアクションの許可を制限することができます。これにより、データカタログから 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 を使用」を参照してください。