

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon EMR 暗号化オプション
<a name="emr-data-encryption-options"></a>

Amazon EMR リリース 4.8.0 以降においては、セキュリティ設定を使用して、保管中のデータ、転送中のデータ、またはその両方の暗号化の設定を指定できます。保管中のデータの暗号化を有効にすると、Amazon S3 内にある EMRFS データもしくはローカルディスク内にあるデータのいずれかまたはその両方の暗号化を選択できるようになります。作成する各セキュリティ設定は、クラスター設定ではなく Amazon EMR に保存されるため、設定を簡単に再利用して、クラスターの作成時にいつでもデータ暗号化設定を指定できます。詳細については、「[Amazon EMR コンソールまたは を使用してセキュリティ設定を作成する AWS CLI](emr-create-security-configuration.md)」を参照してください。

次の図は、セキュリティ設定で使用できるさまざまなデータ暗号化オプションを示しています。

![\[Amazon EMR では、転送時および保管時の暗号化オプションがいくつかあります。\]](http://docs.aws.amazon.com/ja_jp/emr/latest/ManagementGuide/images/emr-encryption-options.png)


以下の暗号オプションも使用できます。また、セキュリティ設定では設定できません。
+ Amazon EMR のバージョン 4.1.0 以降では、必要に応じて、HDFS で透過的データ暗号化の設定を選択することもできます。詳細については、「*Amazon EMR リリースガイド*」の「[Transparent encryption in HDFS on Amazon EMR](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-encryption-tdehdfs.html)」を参照してください。
+ セキュリティ設定をサポートしていない Amazon EMR のリリースバージョンを使用している場合は、手動で Amazon S3 の EMRFS データの暗号化を設定できます。詳細については、「[EMRFS プロパティを使用して Amazon S3 の暗号化を指定する](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-emrfs-encryption.html)」を参照してください。
+  5.24.0 より前の Amazon EMR バージョンを使用している場合、暗号化された EBS ルートデバイスボリュームは、カスタム AMI を使用する場合にのみサポートされます。詳細については、「*Amazon EMR 管理ガイド*」の「[暗号化された Amazon EBS ルートデバイスボリュームを使用してカスタム AMI を作成する](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-custom-ami.html#emr-custom-ami-encrypted)」を参照してください。

**注記**  
Amazon EMR バージョン 5.24.0 以降では、 をキープロバイダー AWS KMS として指定すると、セキュリティ設定オプションを使用して EBS ルートデバイスとストレージボリュームを暗号化できます。詳細については、「[ローカルディスク暗号化](#emr-encryption-localdisk)」を参照してください。

データの暗号化には、キーと証明書が必要です。セキュリティ設定を使用すると、 が管理するキー、Amazon S3 が管理するキー AWS Key Management Service、提供するカスタムプロバイダーのキーと証明書など、複数のオプションから柔軟に選択できます。をキープロバイダー AWS KMS として使用する場合、暗号化キーのストレージと使用には料金が適用されます。詳細については、[AWS KMS 料金表](https://aws.amazon.com/kms/pricing/)を参照してください。

暗号化オプションを指定する前に、使用するキーと証明書の管理システムを決定します。これにより、暗号化設定の一部として指定するキーと証明書、またはカスタムプロバイダーをまず作成できます。

## Amazon S3 内に保管中の EMRFS データの暗号化
<a name="emr-encryption-s3"></a>

Amazon S3 暗号化は、Amazon S3 への読み取りおよび書き込みが行われる Amazon EMR ファイルシステム (EMRFS) オブジェクトで使用できます。保管中のデータの暗号化を有効にする場合は、**デフォルトの暗号化モード**として、Amazon S3 サーバー側での暗号化 (SSE) またはクライアント側での暗号化 (CSE) を指定します。オプションで、[**Per bucket encryption overrides (バケットごとの暗号化オーバーライド)**] を使用して、バケットごとに異なる暗号化方法を指定できます。Amazon S3 の暗号化が有効かどうかにかかわらず、Transport Layer Security (TLS) は、EMR クラスターノードと Amazon S3 の間で転送される EMRFS オブジェクトを暗号化します。Amazon S3 の暗号化の詳細については、「*Amazon Simple Storage Service ユーザーガイド*」の「[暗号化によるデータの保護](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingEncryption.html)」を参照してください。

**注記**  
を使用する場合 AWS KMS、暗号化キーのストレージと使用には料金が適用されます。詳細については、「[AWS KMS 料金](https://aws.amazon.com/kms/pricing/)」を参照してください。

### Amazon S3 のサーバー側の暗号化
<a name="emr-encryption-s3-sse"></a>

すべての Amazon S3 バケットにはデフォルトで暗号化が設定されており、S3 バケットにアップロードされたすべての新しいオブジェクトは保管時に自動的に暗号化されます。Amazon S3 は、ディスクにデータを書き込むときにオブジェクトレベルでデータを暗号化し、アクセス時にデータを復号します。SSE に関する詳細は、「*Amazon Simple Storage Service ユーザーガイド*」の「[サーバー側の暗号化を使用したデータの保護](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html)」を参照してください。

Amazon EMR で SSE を指定するときに、次の 2 つの異なるキー管理システムから選択できます。
+ **SSE-S3** — Amazon S3 がキーを管理します。
+ **SSE-KMS** – を使用して AWS KMS key 、Amazon EMR に適したポリシーをセットアップします。Amazon EMR のキー要件の詳細については、[「暗号化 AWS KMS keys に を使用する](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-encryption-enable.html#emr-awskms-keys)」を参照してください。

SSE とお客様が用意したキーとの組み合わせ (SSE-C) は、Amazon EMR では使用できません。

### Amazon S3 クライアント側の暗号化
<a name="emr-encryption-s3-cse"></a>

Amazon S3 のクライアント側の暗号化を使用すると、Amazon S3 の暗号化と復号はクラスターの EMRFS クライアントで行われます。オブジェクトは Amazon S3 にアップロードされる前に暗号化され、ダウンロード後に復号化されます。指定するプロバイダーが、クライアントが使用する暗号化キーを提供します。クライアントは、 AWS KMS によって提供されるキー (CSE-KMS) か、クライアント側のルートキーを提供するカスタム Java クラス (CSE-C) を使用できます。CSE-KMS と CSE-C では、指定するプロバイダーと、復号化または暗号化されるオブジェクトのメタデータに応じて、暗号化の仕様が少し異なります。これらの差異に関する詳細は、「*Amazon Simple Storage Service ユーザーガイド*」の「[クライアント側の暗号化を使用したデータの保護](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingClientSideEncryption.html)」を参照してください。

**注記**  
Amazon S3 CSE では、Amazon S3 と交換される EMRFS データのみが暗号化されます。クラスターインスタンスボリュームのすべてのデータが暗号化されるわけではありません。さらに、Hue は EMRFS を使用しないため、Hue S3 ファイルブラウザが Amazon S3 に書き込むオブジェクトは暗号化されません。

## Amazon EMR WAL 内に保管中のデータ暗号化
<a name="emr-encryption-wal"></a>

先書きログ記録 (WAL) 用にサーバー側の暗号化 (SSE) を設定すると、Amazon EMR は保管中のデータを暗号化します。Amazon EMR で SSE を指定するときに、次の 2 つの異なるキー管理システムから選択できます。

**SSE-EMR-WAL**  
Amazon EMR はキーを管理します。デフォルトでは、Amazon EMR は Amazon EMR WAL に保存したデータを SSE-EMR-WAL で暗号化します。

**SSE-KMS-WAL**  
 AWS KMS キーを使用して、Amazon EMR WAL に適用されるポリシーを設定します。カスタマー KMS キーを使用して EMR WAL の保管時の暗号化を設定する方法の詳細については、「[Encryption at rest using a customer KMS key for the EMR WAL service](https://docs.aws.amazon.com/emr/latest/ManagementGuide/encryption-at-rest-kms.html)」を参照してください。

**注記**  
Amazon EMR で WAL を有効にすると、SSE で独自のキーを使用することはできません。詳細については、「[Write-ahead logs (WAL) for Amazon EMR](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-hbase-wal.html)」を参照してください。

## ローカルディスク暗号化
<a name="emr-encryption-localdisk"></a>

Amazon EMR セキュリティ設定を使用してローカルディスク暗号化を有効にすると、次のメカニズムが連携してローカルディスクを暗号化します。

### オープンソースの HDFS 暗号化
<a name="w2aac30c19c13c11c23b5"></a>

HDFS は、分散処理中にクラスターインスタンス間でデータを交換します。また、インスタンスストアボリュームと、インスタンスにアタッチされた EBS ボリュームとの間でデータを読み書きします。ローカルディスク暗号化を有効にすると、次のオープンソース Hadoop 暗号化オプションがアクティブになります。
+ [セキュア Hadoop RPC](https://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-common/SecureMode.html#Data_Encryption_on_RPC) は `Privacy` に設定され、単純認証とセキュリティ層 (SASL、Simple Authentication Security Layer) が使用されます。
+ [HDFS ブロックデータ転送時のデータ暗号化](https://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-common/SecureMode.html#Data_Encryption_on_Block_data_transfer.)は `true` に設定され、AES 256 暗号化を使用するように設定されます。

**注記**  
追加の Apache Hadoop 暗号化をアクティブ化するには、転送時の暗号化を有効にします。詳細については、「[転送中の暗号化](#emr-encryption-intransit)」を参照してください。これらの暗号化設定では、HDFS 透過的暗号化はアクティブにされず、手動で設定することができます。詳細については、「*Amazon EMR リリースガイド*」の「[Transparent encryption in HDFS on Amazon EMR](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-encryption-tdehdfs.html)」を参照してください。

### インスタンスストアの暗号化
<a name="w2aac30c19c13c11c23b7"></a>

NVMe ベースの SSD をインスタンスストアボリュームとして使用する EC2 インスタンスタイプでは、Amazon EMR 暗号化設定に関係なく NVMe 暗号化が使用されます。詳細については、「*Amazon EC2 ユーザーガイド*」の「[NVMe SSD ボリューム](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ssd-instance-store.html#nvme-ssd-volumes)」を参照してください。他のインスタンスストアボリュームの場合、Amazon EMR は、EBS ボリュームが EBS 暗号化と LUKS のどちらを使用して暗号化されているかにかかわらず、ローカルディスクの暗号化が有効になると、LUKS を使用してインスタンスストアボリュームを暗号化します。

### EBS ボリュームの暗号化
<a name="w2aac30c19c13c11c23b9"></a>

アカウントで EBS ボリュームの Amazon EC2 暗号化がデフォルトで有効になっているリージョンにクラスターを作成する場合、ローカルディスクの暗号化が有効になっていなくても EBS ボリュームは暗号化されます。詳細については、*「Amazon EC2 ユーザーガイド*」の「[Encryption by default](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#encryption-by-default)」を参照してください。セキュリティ設定でローカルディスクの暗号化が有効になっている場合、Amazon EMR 設定はクラスター EC2 インスタンスのデフォルトの Amazon EC2 暗号化設定よりも優先されます。

セキュリティ設定を使用して EBS ボリュームを暗号化するには、以下のオプションを使用できます。
+ **EBS 暗号化** - Amazon EMR バージョン 5.24.0 以降では、EBS 暗号化を有効にすることを選択できます。EBS 暗号化オプションは、EBS ルートデバイスボリュームとアタッチされたストレージボリュームを暗号化します。EBS 暗号化オプションは、 をキープロバイダー AWS Key Management Service として指定した場合にのみ使用できます。EBS 暗号化を使用することをお勧めします。
+ **LUKS 暗号化** - Amazon EBS ボリュームに LUKS 暗号化を使用することを選択した場合、LUKS 暗号化はルートデバイスボリュームではなく、アタッチされたストレージボリュームにのみ適用されます。LUKS の暗号化の詳細については、「[LUKS on-disk specification](https://gitlab.com/cryptsetup/cryptsetup/wikis/Specification)」を参照してください。

  キープロバイダーの場合、Amazon EMR に適したポリシー、または暗号化アーティファクトを提供するカスタム Java クラス AWS KMS key を使用して を設定できます。を使用する場合 AWS KMS、暗号化キーのストレージと使用には料金が適用されます。詳細については、「[AWS KMS 料金表](https://aws.amazon.com/kms/pricing/)」を参照してください。

**注記**  
クラスターで EBS 暗号化が有効になっているかどうかを確認するには、`DescribeVolumes` API コールを使用することをお勧めします。詳細については、「[DescribeVolumes](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeVolumes.html)」を参照してください。クラスターで `lsblk` を実行すると、EBS 暗号化ではなく LUKS 暗号化のステータスのみが確認されます。

## 転送中の暗号化
<a name="emr-encryption-intransit"></a>

転送時の暗号化では、複数の暗号化メカニズムが有効になります。これらはオープンソース機能であり、アプリケーション固有のもので、Amazon EMR リリースによって異なる可能性があります。転送中の暗号化を有効にするには、Amazon EMR で [Amazon EMR コンソールまたは を使用してセキュリティ設定を作成する AWS CLI](emr-create-security-configuration.md) を使用します。転送中の暗号化が有効になっている EMR クラスターの場合、Amazon EMR は転送中の暗号化を有効にするようにオープンソースのアプリケーション設定を自動的に設定します。高度なユースケースでは、Amazon EMR のデフォルトの動作を上書きするようにオープンソースのアプリケーション設定を直接設定できます。詳細については、「[in-transit encryption support matrix](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-encryption-support-matrix.html)」および「[Configure applications](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-configure-apps.html)」を参照してください。

転送中の暗号化に関連するオープンソースアプリケーションの詳細については、以下を参照してください。
+ セキュリティ設定で転送中の暗号化を有効にすると、Amazon EMR は転送中の暗号化をサポートするすべてのオープンソースアプリケーションエンドポイントの転送中の暗号化を有効にします。さまざまなアプリケーションエンドポイントの転送中の暗号化のサポートは、Amazon EMR リリースバージョンによって異なります。詳細については、「[転送中の暗号化サポートマトリックス](https://docs.aws.amazon.com/)」を参照してください。
+ オープンソース設定を上書きすることで、以下を実行できます。
  + ユーザーが提供する TLS 証明書が要件を満たしていない場合は、TLS ホスト名の検証を無効にする
  + パフォーマンスと互換性の要件に基づいて、特定のエンドポイントの転送中の暗号化を無効にする
  + 使用する TLS バージョンと暗号スイートを制御する。

  アプリケーション固有の設定の詳細については、「[転送中の暗号化サポートマトリックス](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-encryption-support-matrix.html)」を参照してください。
+ セキュリティ設定で転送中の暗号化を有効にすることに加えて、一部の通信チャネルでは、転送中の暗号化を有効にするために追加のセキュリティ設定も必要です。例えば、一部のオープンソースアプリケーションエンドポイントでは、転送中の暗号化に Simple Authentication and Security Layer (SASL) を使用します。そのためには、EMR クラスターのセキュリティ設定で Kerberos 認証を有効にする必要があります。これらのエンドポイントの詳細については、「[転送中の暗号化サポートマトリックス](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-encryption-support-matrix.html)」を参照してください。
+ TLS v1.2 以降をサポートするソフトウェアを使用することをお勧めします。Amazon EMR on EC2 は、デフォルトの Corretto JDK ディストリビューションが含まれています。このディストリビューションは、Java で実行されるオープンソースネットワークで許可される TLS バージョン、暗号スイート、およびキーサイズを決定します。現在、ほとんどのオープンソースフレームワークは、Amazon EMR 7.0.0 以降のリリースで TLS v1.2 以降を適用しています。これは、ほとんどのオープンソースフレームワークが Amazon EMR 7.0.0 以降の Java 17 で実行されるためです。古い Amazon EMR リリースバージョンは古い Java バージョンを使用するため、TLS v1.0 および v1.1 をサポートする場合がありますが、Corretto JDK は Java がサポートする TLS バージョンを変更し、既存の Amazon EMR リリースに影響を与える可能性があります。

転送時の暗号化で使用する暗号化アーティファクトを指定するには、Amazon S3 にアップロードする証明書の圧縮ファイルを提供するか、暗号化アーティファクトを提供するカスタム Java クラスを参照するかのいずれかを行います。詳細については、「[Amazon EMR 暗号化を使用して転送中のデータを暗号化するための証明書の提供](emr-encryption-enable.md#emr-encryption-certificates)」を参照してください。