

# ステップ 2: AWS Glue 用の IAM ロールを作成する
<a name="create-an-iam-role"></a>

ユーザーに代わり他のサービスを呼び出す際に AWS Glue が引き受けることができる、IAM ロールのアクセス許可を付与する必要があります。これには、AWS Glue で使用するすべてのソース、ターゲット、スクリプト、および一時ディレクトリでの Amazon S3 へのアクセスが含まれます。クローラ、ジョブ、および開発エンドポイントによって許可が必要です。

AWS Identity and Access Management (IAM) を使用してアクセス権限を提供できます。AWS Glue に渡す IAM ロールにポリシーを追加します。

****ジョブエディタで IAM ロールを作成するには****

1. AWS Glue コンソールでジョブを作成するときは、ロールセクションを見つけます。

1. [**Create new role (新しいロールの選択)**] を選択します。

1. インラインロール作成フォームが開き、次のことが可能になります：
   + **ロール名**を指定します。例: `AWSGlueServiceRoleDefault`。
   + 管理ポリシー `AWSGlueServiceRole` が自動的に選択されます。
   + 信頼ポリシーを確認してロールを引き受けます。
   + メタデータのオプションのタグを追加します。

1. [**Create role （ロールの作成）**] を選択します。

1. 新しく作成されたロールがジョブに自動的に選択されます。

または、IAM コンソールを使用してロールを作成できます。

****IAM コンソールを使用してAWS Glue IAM ロールを作成するには****

1. AWS マネジメントコンソール にサインインして、IAM コンソール [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) を開きます。

1. 左のナビゲーションペインで、**[Roles (ロール)]** を選択してください。

1. [**Create role （ロールの作成）**] を選択します。

1.  信頼されたエンティティの種類として **[AWS サービス]** を選択します。次に、サービスまたはユースケースに対して **[AWS Glue]** を検索して選択します。[**次へ**] を選択します。

1. **[許可の追加]** のページで、必要な許可を含むポリシーを選択します。例えば、一般的な AWS Glue 許可の AWS マネージドポリシー `AWSGlueServiceRole` や Amazon S3 リソースにアクセスするための AWS マネージドポリシー **[AmazonS3FullAccess]** などがあります。次に、**[次へ]** を選択します。
**注記**  
Amazon S3 のソースとターゲットに対するアクセス許可を、このロールのポリシーの 1 つにより付与してください。独自のポリシーを、特定の Amazon S3 リソースにアクセスするために指定します。データソースには、`s3:ListBucket` および `s3:GetObject` アクセス許可が必要です。データターゲットには、`s3:ListBucket`、`s3:PutObject`、`s3:DeleteObject` アクセス許可が必要です。リソースの Amazon S3 ポリシーの作成については、「[Specifying Resources in a Policy](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-arn-format.html)」を参照してください。Amazon S3 ポリシーの例については、「[Writing IAM Policies: How to Grant Access to an Amazon S3 Bucket](https://aws.amazon.com/blogs/security/writing-iam-policies-how-to-grant-access-to-an-amazon-s3-bucket/)」を参照してください。  
SSE-KMS で暗号化された Amazon S3 のソースとターゲットにアクセスする予定がある場合は、AWS Glue のクローラ、ジョブ、開発エンドポイントに、データを復号化するためのポリシーをアタッチしてください。詳細については、「[Protecting Data Using Server-Side Encryption with AWS KMS-Managed Keys (SSE-KMS)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html)」を参照してください。  
以下に例を示します。  

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "kms:Decrypt"
         ],
         "Resource": [
           "arn:aws:kms:*:111122223333:key/key-id"
         ]
       }
     ]
   }
   ```

1.  ロールに名前を付けて説明 (オプション) を追加したら、信頼ポリシーおよび許可を確認します。[**Role name (ロール名)**] に、`AWSGlueServiceRoleDefault` などのロール名を入力します。コンソールユーザーからサービスにロールを渡すには、名前に文字列 `AWSGlueServiceRole` のプレフィックスが付けられたロールを作成します。`AWSGlueServiceRole` が提供するポリシーでは、IAM サービスロールが AWS Glue で始まることを想定しています。それ以外の場合は、ユーザーにポリシーを追加して、IAM ロールの `iam:PassRole` アクセス許可をユーザーの命名規則に一致させる必要があります。**[Create Role （ロールの作成）]** を選択します。
**注記**  
ロールを使用してノートブックを作成すると、そのロールがインタラクティブセッションに渡され、その両方で同じロールを使用できるようになります。このように、`iam:PassRole` のアクセス許可がロールのポリシーの一部として必要です。  
次の例を使用して、ロール用の新しいポリシーを作成します。アカウント番号とロール名を自分のものに置き換えます。  

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": "iam:PassRole",
         "Resource": "arn:aws:iam::090000000210:role/<role_name>"
       }
     ]
   }
   ```

1.  ロールにタグを追加します (オプション)。タグは AWS リソースに追加できるキーと値のペアであり、リソースの識別、整理、検索するために役立ちます。続いて、**[Create role （ロールの作成）]** を選択します。