

# AWS Glue での暗号化のセットアップ
<a name="set-up-encryption"></a>

次のワークフローの例では、AWS Glue で暗号化を使用するときに設定するオプションに注目します。この例では、特定の AWS Key Management Service (AWS KMS) キーの使用方法を示していますが、特定のニーズに基づいて他の設定を選択することもできます。このワークフローでは、AWS Glue の設定時に暗号化に関連するオプションのみをハイライト表示しています。

1. AWS Glue コンソールのユーザーがすべての AWS Glue API オペレーションを許可するアクセス許可ポリシー (例: `"glue:*"`) を使用しない場合は、次のアクションが許可されていることを確認してください。
   + `"glue:GetDataCatalogEncryptionSettings"`
   + `"glue:PutDataCatalogEncryptionSettings"`
   + `"glue:CreateSecurityConfiguration"`
   + `"glue:GetSecurityConfiguration"`
   + `"glue:GetSecurityConfigurations"`
   + `"glue:DeleteSecurityConfiguration"`

1. 暗号化されたカタログにアクセスまたは書き込みするクライアント (つまりコンソールユーザー、クローラー、ジョブ、開発エンドポイントなど) には、以下のアクセス許可が必要です。

1. 暗号化された接続パスワードにアクセスするユーザーまたはロールには、次のアクセス許可が必要です。

1. 暗号化されたデータを Amazon S3 に書き込む抽出、変換、ロード (ETL) ジョブのロールには、以下のアクセス許可が必要です。

------
#### [ JSON ]

****  

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

------

1. 暗号化された Amazon CloudWatch Logs を書き込む ETL ジョブまたはクローラーでは、キーポリシーおよび IAM ポリシーに以下のアクセス許可が必要です。

   キーポリシー (IAM ポリシーではない) の場合:

   ```
   {
    	"Effect": "Allow",
    	"Principal": {
    		"Service": "logs.region.amazonaws.com"
    	},
    	"Action": [
    		"kms:Encrypt*",
    		"kms:Decrypt*",
    		"kms:ReEncrypt*",
    		"kms:GenerateDataKey*",
    		"kms:Describe*"
    	],
    	"Resource": "<arn of key used for ETL/crawler cloudwatch encryption>"
    }
   ```

   キーポリシーの詳細については、「*AWS Key Management Service デベロッパーガイド*」の「[Using Key Policies in AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)」を参照してください。

   `logs:AssociateKmsKey` 許可にアタッチする IAM ポリシーの場合:

   ```
   {
    	"Effect": "Allow",
    	"Principal": {
    		"Service": "logs.region.amazonaws.com"
    	},
    	"Action": [
    		"logs:AssociateKmsKey"
    	],
    	"Resource": "<arn of key used for ETL/crawler cloudwatch encryption>"
    }
   ```

1. 暗号化されたジョブのブックマークを使用する ETL ジョブには、次のアクセス許可が必要です。

------
#### [ JSON ]

****  

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

------

1. AWS Glue コンソールで、ナビゲーションペインの [**設定**] を選択します。

   1. [**Data catalog settings**] (データカタログ設定) ページで [**Metadata encryption**] (メタデータの暗号化) を選択し、Data Catalog を暗号化します。このオプションは、選択した AWS KMS キーを使用して、Data Catalog のすべてのオブジェクトを暗号化します。

   1.  [**AWS KMS key**] で、[**aws/glue**] を選択します。自身で作成した AWS KMS キーを選択することもできます。
**重要**  
AWS Glue は、対称カスタマーマスターキー (CMK) のみをサポートしています。[**AWS KMS key**] (KMS キー) リストには、対称キーのみが表示されます。ただし、[**Choose a AWS KMS key ARN**] (KMS キー ARN を選択します) を選択した場合、任意のキータイプの ARN をコンソールで入力します。対称キーには ARN だけを入力するようにしてください。

   暗号化が有効になっている場合、Data Catalog にアクセスするクライアントには、AWS KMS のアクセス許可が付与されている必要があります。

1. ナビゲーションペインで、[**セキュリティ設定**] を選択します。セキュリティ設定は、AWS Glue プロセスを設定するために使用できるセキュリティプロパティのセットです。次に [**セキュリティ設定の追加**] を選択します。設定で、次のオプションのいずれかを選択します。

   1. [**S3 暗号化**] を選択します。[**暗号化モード**] では、**SSE-KMS**を選択します。[**AWS KMS キー**] については、[**aws/s3**] を選択します (ユーザーがこのキーを使用するアクセス権限を持っていることを確認してください)。これにより、ジョブによって Amazon S3 に書き込まれたデータは、AWS 管理の AWS Glue AWS KMS キーを使用できるようになります。

   1. [**CloudWatch Logs の暗号化**] を選択し、CMK を選択します (ユーザーにこのキーを使用するアクセス許可があることを確認してください)。詳しくは、「*AWS Key Management Service デベロッパーガイド*」の「[Encrypt Log Data in CloudWatch Logs Using AWS KMS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html)」を参照してください。
**重要**  
AWS Glue は、対称カスタマーマスターキー (CMK) のみをサポートしています。[**AWS KMS key**] (KMS キー) リストには、対称キーのみが表示されます。ただし、[**Choose a AWS KMS key ARN**] (KMS キー ARN を選択します) を選択した場合、任意のキータイプの ARN をコンソールで入力します。対称キーには ARN だけを入力するようにしてください。

   1. [**詳細プロパティ**] を選択し、[**ジョブのブックマーク暗号化モード**] を選択します。[**AWS KMS キー**] には、[**aws/glue**] を選択します (ユーザーがこのキーを使用するアクセス権限を持っていることを確認してください)。これにより、AWS Glue AWS KMS キーを使用して Amazon S3 に書き込まれたジョブブックマークの暗号化が可能になります。

1. ナビゲーションペインで [**Connections (接続)**] を選択します。

   1. [**接続の追加**] を選択して、ETL ジョブのターゲットとなる Java Database Connectivity (JDBC) データ・ストアへの接続を作成します。

   1. Secure Sockets Layer (SSL) 暗号化が使用されるようにするには、[**Require SSL connection (SSL接続を要求)**] を選択し、接続をテストします。

1. ナビゲーションペインで **ジョブ**を選択します。

   1. [**ジョブを追加**] を選択して、データを変換するジョブを作成します。

   1. ジョブ定義で、作成したセキュリティ構成を選択します。

1. AWS Glue コンソールで、オンデマンドでジョブを実行します。ジョブによって書き込まれた Amazon S3 データ、ジョブによって書き込まれた CloudWatch Logs、およびジョブブックマークがすべて暗号化されていることを確認します。