暗号化オプション - Amazon EMR

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

暗号化オプション

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

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

以下の暗号オプションも使用できます。また、セキュリティ設定では設定できません。

注記

Amazon EMR バージョン 5.24.0 から、AWS KMS をキープロバイダーとして指定している場合、セキュリティ設定オプションを使用して EBS ルートデバイスとストレージボリュームを暗号化できます。詳細については、「ローカルディスク暗号化」を参照してください。

データの暗号化には、キーと証明書が必要です。セキュリティ設定により、AWS Key Management Service で管理されるキー、Amazon S3 で管理されるキー、指定するカスタムプロバイダーからのキーと証明書を含めて、複数のオプションから選択できる柔軟性が得られます。AWS KMS をキープロバイダーとして使用する場合、料金は暗号化キーの保存と使用に対して適用されます。詳細については、「AWS KMS 料金表」を参照してください。

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

Amazon S3 内に保管中の EMRFS データの暗号化

Amazon S3 暗号化は、Amazon S3 への読み取りおよび書き込みが行われる 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 ユーザーガイド」の「暗号化を使用したデータの保護」を参照してください。

注記

AWS KMS を使用するときは、ストレージと暗号化キーの使用に対して料金が適用されます。詳細については、AWS KMS 料金表を参照してください。

Amazon S3 のサーバー側の暗号化

Amazon S3 のサーバー側の暗号化をセットアップすると、Amazon S3 はデータをディスクに書き込むときにオブジェクトレベルで暗号化し、アクセスするときに復号します。SSE に関する詳細は、「Amazon Simple Storage Service ユーザーガイド」の「サーバー側の暗号化を使用したデータの保護」を参照してください。

Amazon EMR で SSE を指定するときに、次の 2 つの異なるキー管理システムから選択できます。

  • SSE-S3 — Amazon S3 がキーを管理します。

  • SSE-KMS— 次のものを使用します。AWS KMS keyAmazon EMR に適したポリシーを使用してセットアップします。Amazon EMR の主な要件の詳細については、を参照してください。を使用するAWS KMS keys暗号化用

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

Amazon S3 クライアント側暗号化

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

注記

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

ローカルディスク暗号化

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

オープンソースの HDFS 暗号化

HDFS は、分散処理中にクラスターインスタンス間でデータを交換します。また、インスタンスストアボリュームと、インスタンスにアタッチされた EBS ボリュームとの間でデータを読み書きします。ローカルディスク暗号化を有効にすると、次のオープンソース Hadoop 暗号化オプションがアクティブになります。

注記

転送中の暗号化を有効にすることで、追加の Apache Hadoop 暗号化を有効にできます。詳細については、「転送中の暗号化」を参照してください。これらの暗号化設定では、HDFS 透過的暗号化はアクティブにされず、手動で設定することができます。詳細については、「Amazon EMR リリースガイド」の「Transparent encryption in HDFS on Amazon EMR」を参照してください。

インスタンスストアの暗号化

NVMe ベースの SSD をインスタンスストアボリュームとして使用する EC2 インスタンスタイプでは、Amazon EMR 暗号化設定に関係なく NVMe 暗号化が使用されます。詳細については、「Linux インスタンス用 Amazon EC2 ユーザーガイド」の「NVMe SSD ボリューム」を参照してください。他のインスタンスストアボリュームの場合、Amazon EMR は、EBS ボリュームが EBS 暗号化と LUKS のどちらを使用して暗号化されているかにかかわらず、ローカルディスクの暗号化が有効になると、LUKS を使用してインスタンスストアボリュームを暗号化します。

EBS ボリュームの暗号化

アカウントで EBS ボリュームの Amazon EC2 暗号化がデフォルトで有効になっているリージョンにクラスターを作成すると、ローカルディスク暗号化が有効になっていなくても EBS ボリュームは暗号化されます。詳細については、「Amazon EC2 Linux インスタンス用ユーザーガイド」の「デフォルトで暗号化」を参照してください。セキュリティ設定でローカルディスク暗号化を有効にすると、Amazon EMR 設定が Amazon EC2 よりも優先されます。 encryption-by-default クラスター 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」を参照してください。

    キープロバイダーには、以下を設定できます。AWS KMS keyAmazon EMR に適したポリシー、または暗号化アーティファクトを提供するカスタム Java クラスを使用します。AWS KMS を使用するときは、ストレージと暗号化キーの使用に対して料金が適用されます。詳細については、「AWS KMS 料金表」を参照してください。

注記

クラスターで EBS 暗号化が有効になっているかどうかを確認するには、DescribeVolumes API コールを使用することをお勧めします。詳細については、を参照してください。DescribeVolumes。クラスターで lsblk を実行すると、EBS 暗号化ではなく LUKS 暗号化のステータスのみが確認されます。

転送中の暗号化

転送時の暗号化では、複数の暗号化メカニズムが有効になります。これらはオープンソース機能であり、アプリケーション固有のもので、Amazon EMR リリースによって異なる可能性があります。以下のアプリケーション固有の暗号化機能は、Apache アプリケーション設定を使用して有効にできます。詳細については、を参照してください。アプリケーションの設定

Hadoop
HBase
Hive
  • JDBC/ODBC クライアントとの通信 HiveServer2 (HS2) は Amazon EMR リリース 6.9.0 以降では SSL 設定を使用して暗号化されます。

  • 詳細については、「」を参照してください。SSL 暗号化Apache Hive ドキュメントのセクションです。

Spark
  • Spark コンポーネント間 (ブロック転送サービスと外部シャッフルサービスなど) での内部 RPC 通信は、Amazon EMR のバージョン 5.9.0 以降では AES-256 暗号を使用して暗号化されます。以前のリリースでは、内部 RPC 通信は SASL と、暗号として DIGEST-MD5 を使用して暗号化されます。

  • Spark 履歴サーバーや HTTPS 対応ファイルサーバーなどのユーザーインターフェイスを使用した HTTP プロトコル通信は、Spark の SSL 設定を使用して暗号化されます。詳細については、Spark ドキュメントの「SSL Configuration」を参照してください。

  • 詳細については、を参照してください。Spark のセキュリティ設定Apache Spark ドキュメントのセクションです。

Tez
Presto
  • Presto のノード間の内部通信は SSL/TLS を使用します (Amazon EMR バージョン 5.6.0 以降のみ)。

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