

# ETL ジョブに必要な IAM アクセス許可を確認する
<a name="getting-started-min-privs-job"></a>

AWS Glue Studio を使用してジョブを作成する場合、ジョブは作成時に指定する IAM ロールのアクセス許可を引き継ぎます。この IAMロール には、データソースからデータを抽出し、ターゲットにデータを書き込み、AWS Glue リソースにアクセスするためのアクセス許可が必要です。

`AWSGlueServiceRole` で正しく使用するには、ジョブ用に作成するロールの名前が「AWS Glue Studio」の文字列で始まる必要があります。例えば、ロール `AWSGlueServiceRole-FlightDataJob` に名前を付けることができます。

## データソースとデータターゲットのアクセス許可
<a name="getting-started-min-privs-data"></a>

AWS Glue Studio ジョブでは使用するすべてのソース、ターゲット、スクリプト、一時ディレクトリに対して Amazon S3 にアクセスできる必要があります。特定の Amazon S3 リソースにきめ細かいアクセス許可を付与するポリシーを作成できます。
+ データソースには、`s3:ListBucket` および `s3:GetObject` アクセス許可が必要です。
+ データターゲットには、`s3:ListBucket`、`s3:PutObject`、`s3:DeleteObject` アクセス許可が必要です。

**注記**  
 IAM ポリシーは、AWS Glue 変換のホストに使用される特定のバケットのために `s3:GetObject` を許可する必要があります。  
 次のバケットは AWS サービスアカウントによって所有されており、世界中で読み取り可能です。これらのバケットは、AWS Glue Studio ビジュアルエディタを介してアクセス可能な変換のサブセットに関連するソースコードのリポジトリとして機能します。バケットのアクセス許可は、バケットのその他の API アクションを拒否するように設定されます。変換用に提供しているこれらのスクリプトは誰でも読むことができますが、サービスチーム外のユーザーはその中に何も「入力」することができません。AWS Glue ジョブが実行されると、そのファイルはローカルインポートとしてプルされるため、ファイルはローカルコンテナにダウンロードされます。その後、そのアカウントとの通信はそれ以上行われません。

 リージョン: バケット名 
+ af-south-1: aws-glue-studio-transforms-762339736633-prod-af-south-1
+ ap-east-1: aws-glue-studio-transforms-125979764932-prod-ap-east-1
+ ap-northeast-2: aws-glue-studio-transforms-673535381443-prod-ap-northeast-2
+ ap-northeast-3: aws-glue-studio-transforms-149976050262-prod-ap-northeast-3
+ ap-south-1: aws-glue-studio-transforms-584702181950-prod-ap-south-1
+ ap-south-2: aws-glue-studio-transforms-380279651983-prod-ap-south-2
+ ap-southeast-1: aws-glue-studio-transforms-737106620487-prod-ap-southeast-1
+ ap-southeast-2: aws-glue-studio-transforms-234881715811-prod-ap-southeast-2
+ ap-southeast-3: aws-glue-studio-transforms-151265630221-prod-ap-southeast-3
+ ap-southeast-4: aws-glue-studio-transforms-052235663858-prod-ap-southeast-4
+ ca-central-1: aws-glue-studio-transforms-622716468547-prod-ca-central-1
+ ca-west-1: aws-glue-studio-transforms-915795495192-prod-ca-west-1
+ eu-central-1: aws-glue-studio-transforms-560373232017-prod-eu-central-1
+ eu-central-2: aws-glue-studio-transforms-907358657121-prod-eu-central-2
+ eu-north-1: aws-glue-studio-transforms-312557305497-prod-eu-north-1
+ eu-south-1: aws-glue-studio-transforms-939684186351-prod-eu-south-1
+ eu-south-2: aws-glue-studio-transforms-239737454084-prod-eu-south-2
+ eu-west-1: aws-glue-studio-transforms-244479516193-prod-eu-west-1
+ eu-west-2: aws-glue-studio-transforms-804222392271-prod-eu-west-2
+ eu-west-3: aws-glue-studio-transforms-371299348807-prod-eu-west-3
+ il-central-1: aws-glue-studio-transforms-806964611811-prod-il-central-1
+ me-central-1: aws-glue-studio-transforms-733304270342-prod-me-central-1
+ me-south-1: aws-glue-studio-transforms-112120182341-prod-me-south-1
+ sa-east-1: aws-glue-studio-transforms-881619130292-prod-sa-east-1
+ us-east-1: aws-glue-studio-transforms-510798373988-prod-us-east-1
+ us-east-2: aws-glue-studio-transforms-251189692203-prod-us-east-2
+ us-west-1: aws-glue-studio-transforms-593230150239-prod-us-west-1
+ us-west-2: aws-glue-studio-transforms-818035625594-prod-us-west-2
+ ap-northeast-1: aws-glue-studio-transforms-200493242866-prod-ap-northeast-1
+ cn-north-1: aws-glue-studio-transforms-071033555442-prod-cn-north-1
+ cn-northwest-1: aws-glue-studio-transforms-070947029561-prod-cn-northwest-1
+ us-gov-west-1: aws-glue-studio-transforms-227493901923-prod-us-gov-west-1-2604
+ eusc-de-east-1: aws-glue-studio-transforms-780995497573-prod-eusc-de-east-1-555

データソースとして Amazon Redshift を選択した場合は、クラスターのアクセス許可のロールを指定できます。Amazon Redshift クラスターに対して実行されるジョブが、一時的な認証情報を使用して一時的なストレージとして Amazon S3 にアクセスするコマンドを発行します。ジョブが 1 時間を超えて実行されると、これらの認証情報が期限切れになり、ジョブが失敗します。この問題を回避するために、一時的な認証情報を使用してジョブに必要なアクセス許可を付与するロールを Amazon Redshift クラスター自体に割り当てることができます。詳細については、「*AWS Glue デベロッパーガイド*」から「[Moving Data to and from Amazon Redshift](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-redshift.html)」を参照してください。

ジョブで Amazon S3 以外のデータソースまたはターゲットを使用する場合は、これらのデータソースおよびターゲットにアクセスするために、ジョブで使用される IAM ロールに必要なアクセス許可をアタッチする必要があります。詳細については、「*AWS Glue デベロッパーガイド*」の「[Setting Up Your Environment to Access Data Stores](https://docs.aws.amazon.com/glue/latest/dg/start-connecting.html)」を参照してください。

データストアでコネクタと接続を使用している場合は、追加のアクセス許可が必要です。詳細については、[コネクタの使用に必要なアクセス許可](#getting-started-min-privs-connectors) をご覧ください。

## ジョブの削除に必要なアクセス許可
<a name="getting-started-min-privs-delete-job"></a>

AWS Glue Studio では、コンソールで複数のジョブを選択して削除できます。このアクションを実行するには、`glue:BatchDeleteJob` アクセス許可が必要です。これは、ジョブを削除するために `glue:DeleteJob` のアクセス許可を必要とする AWS Glue コンソールとは異なります。

## AWS Key Management Service アクセス許可
<a name="getting-started-min-privs-kms"></a>

AWS Key Management Service (AWS KMS) でサーバー側の暗号化を使用する Amazon S3 ソースとターゲットにアクセスする場合は、ジョブが使用する AWS Glue Studio ロールにポリシーをアタッチして、ジョブがデータを復号化できるようにします。ジョブロールには、`kms:ReEncrypt`、`kms:GenerateDataKey`、`kms:DescribeKey` のアクセス許可が必要です。さらに、ジョブロールには、AWS KMS カスタマーマスターキー（CMK）で暗号化された Amazon S3 オブジェクトをアップロードまたはダウンロードするための `kms:Decrypt` アクセス許可が必要です。　

AWS KMS CMK を使用するための追加料金はがかかります。詳細については、「[AWS Key Management Service デベロッパーガイド](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys)」の 「[AWS Key Management Service の概念 - カスタマーマスターキー (CMK)](https://aws.amazon.com/kms/pricing)」および 「*AWS Key Management Service の料金*」を参照してください。

## コネクタの使用に必要なアクセス許可
<a name="getting-started-min-privs-connectors"></a>

AWS Glue カスタムコネクタと接続を使用してデータストアにアクセスしている場合、AWS Glue ETL ジョブの実行に使用されるロールには、追加のアクセス許可がアタッチされている必要があります。
+ AWS Marketplace から購入したコネクタにアクセスするための AWS マネージドポリシー `AmazonEC2ContainerRegistryReadOnly`。
+ `glue:GetJob` および `glue:GetJobs` アクセス許可。
+ 接続で使用されるシークレットにアクセスするための AWS Secrets Manager アクセス許可。IAM ポリシーのサンプルについては、「[例: シークレット値を取得するアクセス許可](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_examples.html#auth-and-access_examples_read)」を参照してください。

AWS Glue ETL ジョブが Amazon VPC を実行中の VPC 内で実行される場合、VPC は [ETL ジョブの VPC を設定します](getting-started-vpc-config.md) で説明されているように設定する必要があります。