

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

# データ保護
<a name="data-protection"></a>

責任 AWS [共有モデルは](https://aws.amazon.com/compliance/shared-responsibility-model/)、Amazon EMR on EKS でのデータ保護に適用されます。このモデルで説明されているように、 AWS はすべての AWS クラウドを実行するグローバルインフラストラクチャを保護する責任があります。ユーザーには、このインフラストラクチャでホストされているコンテンツに対する制御を維持する責任があります。このコンテンツには、使用する AWS のサービスに対するセキュリティの設定と管理タスクが含まれます。データプライバシーの詳細については、「[データプライバシーのよくある質問](https://aws.amazon.com/compliance/data-privacy-faq/)」を参照してください。欧州でのデータ保護の詳細については、 AWS セキュリティブログ[の 責任 AWS 共有モデルと GDPR](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) ブログ記事を参照してください。

データ保護の目的で、 AWS アカウントの認証情報を保護し、 AWS Identity and Access Management (IAM) を使用して個々のアカウントを設定することをお勧めします。この方法により、それぞれのジョブを遂行するために必要なアクセス許可のみを各ユーザーに付与できます。また、次の方法でデータを保護することをお勧めします。
+ 各アカウントで多要素認証 (MFA) を使用します。
+ SSL/TLS を使用して AWS リソースと通信します。TLS 1.2 以降が推奨されます。
+ で API とユーザーアクティビティのログ記録を設定します AWS CloudTrail。
+  AWS 暗号化ソリューションと、 AWS サービス内のすべてのデフォルトのセキュリティコントロールを使用します。
+ Amazon Macie などのアドバンストマネージドセキュリティサービスを使用します。これは、Amazon S3 に保存されている個人データの検出と保護を支援します。
+ Amazon EMR on EKS の暗号化オプションを使用して保管中および転送中のデータを暗号化します。
+ コマンドラインインターフェイスまたは API AWS を介して にアクセスするときに FIPS 140-2 検証済みの暗号化モジュールが必要な場合は、FIPS エンドポイントを使用します。利用可能な FIPS エンドポイントの詳細については、「[連邦情報処理規格 (FIPS) 140-2](https://aws.amazon.com/compliance/fips/)」 を参照してください。

顧客のアカウント番号などの機密の識別情報は、[**Name **] (名前)フィールドなどの自由形式のフィールドに配置しないことを強くお勧めします。これは、コンソール、API、または AWS CLI SDK を使用して Amazon EMR on EKS または他の AWS サービスを使用する場合も同様です。 AWS SDKs Amazon EMR on EKS や他のサービスに入力したすべてのデータは、診断ログに取り込まれる可能性があります。外部サーバーへの URL を指定するときは、そのサーバーへのリクエストを検証するための認証情報を URL に含めないでください。

## 保管中の暗号化
<a name="encryption-at-rest"></a>

データの暗号化は、承認されていないユーザーがクラスターおよび関連するデータストレージシステムのデータを読み取れないようにするのに役立ちます。このデータには、保管中のデータと呼ばれる、永続的なメディアに保存されているデータや、転送中のデータと呼ばれる、ネットワークを介した転送の間に傍受される可能性のあるデータが含まれます。

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

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

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

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 開発者ガイド」の「[暗号化を使用したデータの保護](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingEncryption.html)」を参照してください。

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

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

Amazon S3 のサーバー側の暗号化をセットアップすると、Amazon S3 はデータをディスクに書き込むときにオブジェクトレベルで暗号化し、アクセスするときに復号します。SSE の詳細については、「Amazon Simple Storage Service 開発者ガイド」の「[サーバー側の暗号化を使用したデータの保護](https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html)」を参照してください。

Amazon EMR on EKS で SSE を指定するときに、次の 2 つの異なるキー管理システムから選択できます。
+ **SSE-S3** — Amazon S3 がキーを管理します。
+ **SSE-KMS** - を使用して AWS KMS key Amazon EMR on EKS に適したポリシーをセットアップします。

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

**ヒント**  
SSE-KMS を使用する際の AWS KMS コストを削減するには、Amazon S3 バケットで Amazon S3 バケットキーを有効にすることを検討してください。Amazon S3 バケットキーは、存続期間の短いバケットレベルのキーを使用して、 AWS KMS API コールを最大 99% 削減します。Amazon S3 バケットキーを有効にする前に、IAM ポリシーと AWS KMS キーポリシーを確認してください。暗号化コンテキストが Amazon S3 オブジェクト ARN からバケット ARN に変更され、アクセスコントロールにオブジェクト ARN を使用するポリシーに影響する可能性があります。詳細については、「*Amazon Simple Storage Service ユーザーガイド*」の「[Amazon S3 バケットキーを使用した SSE-KMS のコストの削減](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-key.html)」を参照してください。

### Amazon S3 クライアント側の暗号化
<a name="encryption-client-side"></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/dev/UsingClientSideEncryption.html)」を参照してください。

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

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

Apache Spark は、ローカルディスクに書き込まれた一時データの暗号化をサポートしています。これには、キャッシュ変数とブロードキャスト変数の両方について、ディスクに保存されているシャッフルファイル、シャッフルスピル、およびデータブロックが含まれます。`saveAsHadoopFile` や `saveAsTable` などの API を使用したアプリケーションによって生成された出力データの暗号化は対象外です。また、ユーザーが明示的に作成した一時ファイルは対象にならない場合があります。詳細については、Spark ドキュメントの「[Local Storage Encryption](https://spark.apache.org/docs/latest/security.html#local-storage-encryption)」（ローカルストレージ暗号化） を参照してください。Spark は、データがメモリに収まらない場合、エグゼキュータプロセスによってローカルディスクに書き込まれる中間データなど、ローカルディスク上の暗号化されたデータをサポートしません。ディスクに保持されたデータは、ジョブランタイムにスコープ設定され、データの暗号化に使用されるキーは、ジョブ実行ごとに Spark によって動的に生成されます。Spark ジョブが終了すると、他のプロセスはデータを復号できません。

ドライバーとエグゼキューターポッドの場合、マウントされたボリュームに保持される保管中のデータを暗号化します。Kubernetes で使用できる AWS ネイティブストレージには、[EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html)、[EFS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEFS.html)、[FSx for Lustre の ](https://docs.aws.amazon.com/fsx/latest/LustreGuide/what-is.html)3 つの異なるオプションがあります。3 つのオプションはすべて、サービスマネージドキーまたは AWS KMS keyを使用して保管時の暗号化を行います。詳細については、「[EKS ベストプラクティスガイド](https://aws.github.io/aws-eks-best-practices/security/docs/data)」を参照してください。この方法では、マウントされたボリュームに保持されるすべてのデータが暗号化されます。

### キー管理
<a name="key-management"></a>

KMS キーを自動的にローテーションするように KMS を設定できます。これにより、古いキーを無期限に保存しながら、年に一度、キーをローテーションして、データを復号することができます。詳細については、[「ローテーション AWS KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html)」を参照してください。

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

転送時の暗号化では、複数の暗号化メカニズムが有効になります。これらはオープンソース機能であり、アプリケーション固有のもので、Amazon EMR on EKS リリースによって異なる可能性があります。次のアプリケーション固有の暗号化機能を Amazon EMR on EKS で有効にできます。
+ Spark
  + Spark コンポーネント間 (ブロック転送サービスと外部シャッフルサービスなど) での内部 RPC 通信は、Amazon EMR のバージョン 5.9.0 以降では AES-256 暗号を使用して暗号化されます。以前のリリースでは、内部 RPC 通信は SASL と、暗号として DIGEST-MD5 を使用して暗号化されます。
  + Spark 履歴サーバーや HTTPS 対応ファイルサーバーなどのユーザーインターフェイスを使用した HTTP プロトコル通信は、Spark の SSL 設定を使用して暗号化されます。詳細については、Spark ドキュメントの「[SSL Configuration](https://spark.apache.org/docs/latest/security.html#ssl-configuration)」を参照してください。

  詳細については、「[Spark のセキュリティ設定](http://spark.apache.org/docs/latest/security.html)」を参照してください。
+ Amazon S3 バケット IAM ポリシーで [aws:SecureTransport 条件](https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_Boolean)を使用して、HTTPS (TLS) を介した暗号化接続のみを許可してください。
+ JDBC または ODBC クライアントにストリーミングされるクエリ結果は、TLS を使用して暗号化されます。