

# AWS Glue​ によって書き込まれたデータの暗号化
<a name="encryption-security-configuration"></a>

*セキュリティ設定*は、AWS Glue が使用できるセキュリティプロパティのセットです。セキュリティ構成を使用して、保管時にデータを暗号化できます。以下のシナリオでは、セキュリティ設定を使用できるいくつかの方法を示します。
+ 暗号化された Amazon CloudWatch Logs​ を書き込む ​AWS Glue クローラーにセキュリティ設定をアタッチします。クローラーにセキュリティ設定のアタッチの詳細については、「[ステップ 3: セキュリティ設定を構成する](define-crawler-configure-security-settings.md)」を参照してください。
+ 抽出、変換、ロード (ETL) ジョブにセキュリティ設定をアタッチして、暗号化された Amazon Simple Storage Service (Amazon S3) ターゲット、および暗号化された CloudWatch Logs を書き込みます。
+ ETL ジョブにセキュリティ設定をアタッチして、暗号化された Amazon S3 データとして​ジョブブックマークを書き込みます。
+ 開発エンドポイントにセキュリティ設定をアタッチして、暗号化された ​Amazon S3 ターゲットを書き込みます。

**重要**  
現時点では、セキュリティ設定は、ETL ジョブのパラメータとして渡されるサーバー側暗号化 (SSE-S3) 設定をすべてオーバーライドします。したがって、ジョブにセキュリティ設定と SSE-S3 の両方が関連付けられている場合、SSE-S3 パラメータは無視されます。

セキュリティ設定の詳細については、「[AWS Glue コンソールでのセキュリティ設定の管理](console-security-configurations.md)」を参照してください。

**Topics**
+ [セキュリティ設定を使用するための AWS Glue​ のセットアップ](#encryption-setup-Glue)
+ [VPC ジョブとクローラーの AWS KMS へのルートを作成する](#encryption-kms-vpc-endpoint)
+ [AWS Glue コンソールでのセキュリティ設定の管理](console-security-configurations.md)

## セキュリティ設定を使用するための AWS Glue​ のセットアップ
<a name="encryption-setup-Glue"></a>

以下の手順を実行して、セキュリティ設定を使用するように AWS Glue​ 環境をセットアップします。

1. ​AWS Glue クローラーに渡される IAM ロールおよび CloudWatch Logs を暗号化するジョブ​への AWS KMS​ アクセス許可を付与するため、AWS Key Management Service​ (AWS KMS) キーを作成または更新します。詳しくは、*Amazon CloudWatch Logs ユーザーガイド*の「[AWS KMS を使用して CloudWatch Logs のログデータを暗号化する](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/encrypt-log-data-kms.html)」を参照してください。

   次の例では、{{"role1"}}、{{"role2"}}、および {{"role3"}} が、クローラーおよびジョブに渡される IAM ロールです。

   ```
   {
          "Effect": "Allow",
          "Principal": { "Service": "logs.{{region}}.amazonaws.com",
          "AWS": [
                   {{"role1"}},
                   {{"role2"}},
                   {{"role3"}}
                ] },
                       "Action": [
                              "kms:Encrypt*",
                              "kms:Decrypt*",
                              "kms:ReEncrypt*",
                              "kms:GenerateDataKey*",
                              "kms:Describe*"
                       ],
                       "Resource": "*"
   }
   ```

   キーを使用して ​CloudWatch Logs を暗号化する場合、`"Service": "logs.{{region}}.amazonaws.com"`​ と表示される ​`Service` ステートメントが必要です。

1. 使用する前に、AWS KMS​ キーが `ENABLED`​ であることを確認します。

**注記**  
データレイクフレームワークとして Iceberg を使用している場合、Iceberg テーブルにはサーバー側の暗号化を有効にする独自のメカニズムがあります。AWS Glue のセキュリティ設定に加えて、これらの設定を有効にする必要があります。Iceberg テーブルでサーバー側の暗号化を有効にするには、「[Iceberg ドキュメント](https://iceberg.apache.org/docs/latest/aws/#s3-server-side-encryption)」のガイダンスを確認してください。

## VPC ジョブとクローラーの AWS KMS へのルートを作成する
<a name="encryption-kms-vpc-endpoint"></a>

インターネットを介さずに、仮想プライベートクラウド (VPC) のプライベートエンドポイントから AWS KMS に直接接続できます。VPC エンドポイントを使用すると、VPC と AWS KMS の間の通信は完全に AWS ネットワーク内で実施されます。

VPC 内に AWS KMS VPC エンドポイントを作成することができます。この手順を実行しないと、ジョブまたはクローラーがジョブの `kms timeout` またはクローラーの `internal service exception` で失敗する可能性があります。詳細な手順については、「*AWS Key Management Serviceデベロッパーガイド*」の「[VPC エンドポイントを介した AWS KMS への接続](https://docs.aws.amazon.com/kms/latest/developerguide/kms-vpc-endpoint.html)」を参照してください。

これらの手順に従って、[VPC コンソール](https://console.aws.amazon.com//vpc)で次の操作を行う必要があります。
+ **[Enable Private DNS name]** (プライベート DNS 名を有効にする) を選択します。
+ Java Database Connectivity (JDBC) にアクセスするジョブまたはクローラーに使用する **[Security group]** (セキュリティグループ) (自己参照ルールを持つ) を選択します。AWS Glue 接続の詳細については、「[データへの接続](glue-connections.md)」を参照してください。

JDBC データストアにアクセスするクローラーまたはジョブにセキュリティ設定を追加する場合、AWS Glue には AWS KMS エンドポイントへのルートが必要です。ネットワークアドレス変換 (NAT) ゲートウェイまたは AWS KMS VPC エンドポイントを使用してルートを指定できます。NAT ゲートウェイを作成するには、*Amazon VPC ユーザーガイド*の「[NAT ゲートウェイ](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html)」を参照してください。