

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

# EMRFS プロパティを使用して Amazon S3 の暗号化を指定する
<a name="emr-emrfs-encryption"></a>

**重要**  
Amazon EMR リリースバージョン 4.8.0 から、セキュリティ設定を使用して、より簡単により豊富なオプションで暗号化設定を適用できるようになりました。セキュリティ設定を使用することをお勧めします。詳細については、「[データ暗号化の設定](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-create-security-configuration.html#emr-security-configuration-encryption)」を参照してください。このセクションで説明するコンソールの手順は、リリース 4.8.0 より前のリリースバージョンで使用できます。を使用して AWS CLI クラスター設定と後続のバージョンのセキュリティ設定の両方で Amazon S3 暗号化を設定する場合、セキュリティ設定はクラスター設定を上書きします。

クラスターを作成するときは、コンソールを使用するか、 または EMR SDK を介して`emrfs-site`分類プロパティを使用して、Amazon S3 の EMRFS データのサーバー側の暗号化 (SSE) AWS CLI またはクライアント側の暗号化 (CSE) を指定できます。Amazon S3 の SSE と CSE は相互排他的であるため、いずれかを選択できますが、両方は選択できません。

 AWS CLI 手順については、以下の暗号化タイプに適したセクションを参照してください。

**を使用して EMRFS 暗号化オプションを指定するには AWS マネジメントコンソール**

1. 新しい Amazon EMR コンソールに移動し、サイドナビゲーションから **[古いコンソールに切り替え]** を選択します。古いコンソールに切り替えたときの動作の詳細については、「[Using the old console](https://docs.aws.amazon.com/emr/latest/ManagementGuide/whats-new-in-console.html#console-opt-in)」を参照してください。

1. [**Create cluster (クラスターの作成)**]、[**Go to advanced options (詳細オプションに移動する)**] の順に選択します。

1. 4.7.2 以前の [**Release**] を選択します。

1. アプリケーションに合わせて [**Software and Steps**] の他のオプションを選択し、[**Next**] を選択します。

1. アプリケーションに合わせて、[**Hardware**] ペインおよび [**General Cluster Settings**] ペインで設定を選択します。

1. [**Security**] ペインの [**Authentication and encryption**] で、使用する [**S3 Encryption (with EMRFS)**] オプションを選択します。
**注記**  
Amazon EMR リリースバージョン 4.4 以前を使用しているときは、**[KMS Key Management を使用した S3 サーバー側の暗号化]** (SSE-KMS) を使用できません。
   + **AWS Key Management** を使用するオプションを選択する場合は、**[AWS KMS キー ID]** を選択します。詳細については、「[EMRFS 暗号化 AWS KMS keys に を使用する](#emr-emrfs-awskms)」を参照してください。
   + [**S3 client-side encryption with custom materials provider**] を選択した場合、[**Class name**] と [**JAR location**] に入力してください。詳細については、「[Amazon S3 クライアント側の暗号化](emr-emrfs-encryption-cse.md)」を参照してください。

1. 必要に応じて、アプリケーションの他のオプションを選択し、[**Create Cluster**] を選択します。

## EMRFS 暗号化 AWS KMS keys に を使用する
<a name="emr-emrfs-awskms"></a>

 AWS KMS 暗号化キーは、Amazon EMR クラスターインスタンスおよび EMRFS で使用される Amazon S3 バケットと同じリージョンで作成する必要があります。指定するキーが、クラスターの設定に使用するアカウントとは異なるアカウントにある場合は、その ARN を使用してキーを指定する必要があります。

Amazon EC2 インスタンスプロファイルのロールには、指定した KMS キーを使用するためのアクセス許可が必要です。Amazon EMR 内のインスタンスプロファイルのデフォルトのロールは `EMR_EC2_DefaultRole` です。インスタンスプロファイルに別のロールを使用する場合、または Amazon S3 への EMRFS リクエストに IAM ロールを使用する場合は、必要に応じて各ロールがキーユーザーとして追加されていることを確認してください。これにより、KMS キーを使用するアクセス許可がロールに付与されます。詳細については、「*AWS Key Management Service デベロッパーガイド*」の「[キーポリシーの使用](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-users)」と、「[Amazon S3 への EMRFS リクエストの IAM ロールの設定](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-emrfs-iam-roles.html)」を参照してください。

を使用して AWS マネジメントコンソール 、指定した KMS キーのキーユーザーのリストにインスタンスプロファイルまたは EC2 インスタンスプロファイルを追加するか、 AWS CLI または AWS SDK を使用して適切なキーポリシーをアタッチできます。

Amazon EMR は、[対称 KMS キー](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#symmetric-cmks)のみをサポートします。[非対称 KMS キー](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html#asymmetric-cmks)を使用して、Amazon EMR クラスター内の保管中のデータを暗号化することはできません。KMS キーが対称か非対称かを判別するには、「[対称および非対称 KMS キーを識別する](https://docs.aws.amazon.com/kms/latest/developerguide/find-symm-asymm.html)」を参照してください。

以下の手順では、 AWS マネジメントコンソールを使用して、デフォルトの Amazon EMR インスタンスプロファイル、`EMR_EC2_DefaultRole` を*キーユーザー*として追加する方法について説明します。既に KMS キーが作成されていることを前提としています。新しい KMS キーを作成するには、「*AWS Key Management Service デベロッパーガイド*」の「[Creating Keys](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)」を参照してください。

**暗号化キーユーザーのリストに Amazon EMR の EC2 インスタンスプロファイルを追加するには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms) で AWS Key Management Service (AWS KMS) コンソールを開きます。

1. を変更するには AWS リージョン、ページの右上隅にあるリージョンセレクターを使用します。

1. 変更する KMS キーのエイリアスを選択します。

1. [**Key Users**] のキーの詳細ページで、[**Add**] を選択します。

1. [**Add key users**] ダイアログボックスで、適切なロールを選択します。デフォルトロールの名前は `EMR_EC2_DefaultRole` です。

1. **[Add]** (追加) を選択します。

## Amazon S3 のサーバー側の暗号化
<a name="emr-emrfs-encryption-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 では使用できません。

**を使用して SSE-S3 を有効にしたクラスターを作成するには AWS CLI**
+ 次のコマンドを入力します。

  ```
  aws emr create-cluster --release-label emr-4.7.2 or earlier \
  --instance-count 3 --instance-type m5.xlarge --emrfs Encryption=ServerSide
  ```

`emrfs-site` プロパティで fs.s3.enableServerSideEncryption プロパティを true に設定して、SSE-S3 を有効にすることもできます。以下の SSE-KMS の例を参照して、キー ID のプロパティを省略します。

**を使用して SSE-KMS を有効にしたクラスターを作成するには AWS CLI**
**注記**  
SSE-KMS は、Amazon EMR リリースバージョン 4.5.0 以降でのみ使用できます。
+ 次の AWS CLI コマンドを入力して、SSE-KMS でクラスターを作成します。*keyID* は AWS KMS key、例えば、*a4567b8-9900-12ab-1234-123a45678901* です。

  ```
  aws emr create-cluster --release-label emr-4.7.2 or earlier --instance-count 3 \
  --instance-type m5.xlarge --use-default-roles \
  --emrfs Encryption=ServerSide,Args=[fs.s3.serverSideEncryption.kms.keyId=keyId]
  ```

  **--または--**

  `emrfs-site` 分類を使用して次の AWS CLI コマンドを入力し、次の`myConfig.json`例のようにコンテンツを含む設定 JSON ファイルを指定します。

  ```
  aws emr create-cluster --release-label emr-4.7.2 or earlier --instance-count 3 --instance-type m5.xlarge --applications Name=Hadoop --configurations file://myConfig.json --use-default-roles
  ```

  **myConfig.json** のサンプルコンテンツ:

  ```
  [
    {
      "Classification":"emrfs-site",
      "Properties": {
         "fs.s3.enableServerSideEncryption": "true",
         "fs.s3.serverSideEncryption.kms.keyId":"a4567b8-9900-12ab-1234-123a45678901"
      }
    }
  ]
  ```

### SSE-S3 と SSE-KMS の設定プロパティ
<a name="emr-emrfs-encryption-site-sse-properties"></a>

これらのプロパティは `emrfs-site` 設定分類を使用して設定できます。SSE-KMS は、Amazon EMR リリースバージョン 4.5.0 以降でのみ使用できます。


| プロパティ  | デフォルトの値 | 説明  | 
| --- | --- | --- | 
| fs.s3.enableServerSideEncryption | false |  **true** に設定すると、Amazon S3 に保存されたオブジェクトはサーバー側の暗号化を使用して暗号化されます。キーが指定されていない場合、SSE-S3 が使用されます。  | 
| fs.s3.serverSideEncryption.kms.keyId | n/a |   AWS KMS キー ID または ARN を指定します。キーを指定した場合、SSE-KMS が使用されます。  | 

# Amazon S3 クライアント側の暗号化
<a name="emr-emrfs-encryption-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 S3 の EMRFS データの CSE-KMS を指定するには AWS CLI**
+ 次のコマンドを入力して、*MyKMSKeyID* を、使用する KMS キーのキー ID または ARN に置き換えます。

  ```
  aws emr create-cluster --release-label emr-4.7.2 or earlier
  --emrfs Encryption=ClientSide,ProviderType=KMS,KMSKeyId=MyKMSKeyId
  ```

## カスタムキープロバイダーの作成
<a name="emr-emrfs-create-cse-key"></a>

カスタムキープロバイダーの作成時に使用する暗号化のタイプに応じて、アプリケーションは異なる EncryptionMaterialsProvider インターフェイスを実装する必要があります。どちらのインターフェイスも AWS SDK for Java バージョン 1.11.0 以降で使用できます。
+ Amazon S3 暗号化を実装するには、[com.amazonaws.services.s3.model.EncryptionMaterialsProvider インターフェイス](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/s3/model/EncryptionMaterialsProvider.html)を使用します。
+ ローカルディスク暗号化を実装するには、[com.amazonaws.services.elasticmapreduce.spi.security.EncryptionMaterialsProvider インターフェイス](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/elasticmapreduce/spi/security/EncryptionMaterialsProvider.html)を使用します。

任意の戦略を使用して実装に暗号化マテリアルを提供できます。例えば、静的暗号化マテリアルを提供することも、より複雑な鍵管理システムと統合することも選択できます。

Amazon S3 暗号化を使用している場合は、カスタム暗号化マテリアルに暗号化アルゴリズム **AES/GCM/NoPadding** を使用する必要があります。

ローカルディスク暗号化を使用している場合、カスタム暗号化マテリアルに使用する暗号化アルゴリズムは EMR リリースによって異なります。Amazon EMR 7.0.0 以前では、**AES/GCM/NoPadding** を使用する必要があります。Amazon EMR 7.1.0 以降では、**AES** を使用する必要があります。

EncryptionMaterialsProvider クラスは、暗号化コンテキストによって暗号化マテリアルを取得します。Amazon EMR は、呼び出し元が返す正しい暗号化マテリアルを判別しやすいように、実行時に暗号化コンテキスト情報を設定します。

**Example 例: EMRFS での Amazon S3 の暗号化にカスタムキープロバイダを使用する**  
Amazon EMR が EncryptionMaterialsProvider クラスから暗号化マテリアルをフェッチして暗号化を実行するとき、EMRFS はオプションで materialsDescription 引数に 2 つのフィールド (オブジェクトの Amazon S3 URI とクラスターの JobFlowId) を設定します。これらを EncryptionMaterialsProvider クラスで使用して、暗号化マテリアルを選択的に返すことができます。  
たとえば、プロバイダは Amazon S3 URI プレフィックスごとに異なるキーを返すことができます。最終的に Amazon S3 オブジェクトに保存されるのは、EMRFS によって生成され、プロバイダに渡される materialsDescription 値ではなく、返された暗号化マテリアルの記述です。Amazon S3 オブジェクトの復号化中に、暗号化マテリアルの記述が EncryptionMaterialsProvider クラスに渡されるため、オブジェクトを複合するために一致するキーを再度選択的に返すことができます。  
参照のための EncryptionMaterialsProvider 実装を次に示します。別のカスタムプロバイダ [EMRFSRSAEncryptionMaterialsProvider](https://github.com/awslabs/emr-sample-apps/tree/master/emrfs-plugins/EMRFSRSAEncryptionMaterialsProvider) は GitHub から入手できます。  

```
import com.amazonaws.services.s3.model.EncryptionMaterials;
import com.amazonaws.services.s3.model.EncryptionMaterialsProvider;
import com.amazonaws.services.s3.model.KMSEncryptionMaterials;
import org.apache.hadoop.conf.Configurable;
import org.apache.hadoop.conf.Configuration;

import java.util.Map;

/**
 * Provides KMSEncryptionMaterials according to Configuration
 */
public class MyEncryptionMaterialsProviders implements EncryptionMaterialsProvider, Configurable{
  private Configuration conf;
  private String kmsKeyId;
  private EncryptionMaterials encryptionMaterials;

  private void init() {
    this.kmsKeyId = conf.get("my.kms.key.id");
    this.encryptionMaterials = new KMSEncryptionMaterials(kmsKeyId);
  }

  @Override
  public void setConf(Configuration conf) {
    this.conf = conf;
    init();
  }

  @Override
  public Configuration getConf() {
    return this.conf;
  }

  @Override
  public void refresh() {

  }

  @Override
  public EncryptionMaterials getEncryptionMaterials(Map<String, String> materialsDescription) {
    return this.encryptionMaterials;
  }

  @Override
  public EncryptionMaterials getEncryptionMaterials() {
    return this.encryptionMaterials;
  }
}
```

## を使用したカスタムマテリアルプロバイダーの指定 AWS CLI
<a name="emr-emrfs-encryption-cse-custom-cli"></a>

 AWS CLIを使用するには、`Encryption`、`ProviderType`、`CustomProviderClass`、および `CustomProviderLocation` の各引数を `emrfs` オプションに渡します。

```
aws emr create-cluster --instance-type m5.xlarge --release-label emr-4.7.2 or earlier --emrfs Encryption=ClientSide,ProviderType=Custom,CustomProviderLocation=s3://amzn-s3-demo-bucket/myfolder/provider.jar,CustomProviderClass=classname
```

`Encryption` を `ClientSide` に設定すると、クライアント側の暗号化が有効になります。`CustomProviderClass` は `EncryptionMaterialsProvider` オブジェクトの名前を表します。また、`CustomProviderLocation` は、ローカルまたは Amazon S3 のロケーションを示しています。この場所から Amazon EMR が `CustomProviderClass` をクラスター内の各ノードにコピーし、クラスパスに配置します。

## SDK を使用してカスタムマテリアルプロバイダーを指定する
<a name="emr-emrfs-encryption-cse-custom-sdk"></a>

SDK を使用するには、プロパティ `fs.s3.cse.encryptionMaterialsProvider.uri` を設定し、Amazon S3 に保存するカスタム `EncryptionMaterialsProvider` クラスをクラスター内の各ノードにダウンロードします。これは、`emrfs-site.xml` ファイルで設定します。このとき、CSE を有効にして、カスタムプロバイダーの適切な場所も指定します。

例えば、RunJobFlowRequest AWS SDK for Java を使用する では、コードは次のようになります。

```
<snip>
		Map<String,String> emrfsProperties = new HashMap<String,String>();
	    	emrfsProperties.put("fs.s3.cse.encryptionMaterialsProvider.uri","s3://amzn-s3-demo-bucket/MyCustomEncryptionMaterialsProvider.jar");
	    	emrfsProperties.put("fs.s3.cse.enabled","true");
	    	emrfsProperties.put("fs.s3.consistent","true");
		    emrfsProperties.put("fs.s3.cse.encryptionMaterialsProvider","full.class.name.of.EncryptionMaterialsProvider");

		Configuration myEmrfsConfig = new Configuration()
	    	.withClassification("emrfs-site")
	    	.withProperties(emrfsProperties);

		RunJobFlowRequest request = new RunJobFlowRequest()
			.withName("Custom EncryptionMaterialsProvider")
			.withReleaseLabel("emr-7.12.0")
			.withApplications(myApp)
			.withConfigurations(myEmrfsConfig)
			.withServiceRole("EMR_DefaultRole_V2")
			.withJobFlowRole("EMR_EC2_DefaultRole")
			.withLogUri("s3://myLogUri/")
			.withInstances(new JobFlowInstancesConfig()
				.withEc2KeyName("myEc2Key")
				.withInstanceCount(2)
				.withKeepJobFlowAliveWhenNoSteps(true)
				.withMasterInstanceType("m5.xlarge")
				.withSlaveInstanceType("m5.xlarge")
			);						
					
		RunJobFlowResult result = emr.runJobFlow(request);
</snip>
```

## 引数を使用するカスタム EncryptionMaterialsProvider
<a name="emr-emrfs-encryption-custommaterials"></a>

プロバイダーに直接引数を渡す必要がある場合があります。これを行うには、プロパティとして定義されたカスタム引数を持つ `emrfs-site` 設定分類を使用できます。設定例を次に示します。これは、ファイル `myConfig.json` として保存されます。

```
[
    {
      "Classification": "emrfs-site",
      "Properties": {
        "myProvider.arg1":"value1",
	    "myProvider.arg2":"value2"
      }
    }
 ]
```

から `create-cluster` コマンドを使用すると AWS CLI、次に示すように `--configurations`オプションを使用して ファイルを指定できます。

```
aws emr create-cluster --release-label emr-7.12.0 --instance-type m5.xlarge --instance-count 2 --configurations file://myConfig.json --emrfs Encryption=ClientSide,CustomProviderLocation=s3://amzn-s3-demo-bucket/myfolder/myprovider.jar,CustomProviderClass=classname
```

## EMRFS S3EC V2 サポートを設定する
<a name="emr-emrfs-encryption-cse-s3v2"></a>

S3 Java SDK リリース (1.11.837 以降) では、さまざまなセキュリティ機能拡張がある暗号化クライアントバージョン 2 (S3EC V2) がサポートされます。詳細については、S3 のブログ投稿「[Updates to the Amazon S3 encryption client](https://aws.amazon.com/blogs/developer/updates-to-the-amazon-s3-encryption-client/)」を参照してください。また、「 AWS SDK for Java デベロッパーガイド」の[Amazon S3 暗号化クライアントの移行](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/s3-encryption-migration.html)」を参照してください。

下位互換性を保つため、暗号化クライアント V1 は SDK で引き続き使用できます。デフォルトでは、CSE が有効になっている場合、EMRFS は S3EC V1 を使用して S3 オブジェクトを暗号化および復号します。

S3EC V2 で暗号化された S3 オブジェクトは、リリースバージョンが emr-5.31.0 より前 (emr-5.30.1 以前、emr-6.1.0 以前) の EMR クラスターでは、EMRFS によって復号化できません。

**Example S3EC V2 を使用するように EMRFS を設定する**  
S3EC V2 を使用するように EMRFS を設定するには、次の設定を追加します。  

```
{
  "Classification": "emrfs-site",
  "Properties": {
    "fs.s3.cse.encryptionV2.enabled": "true"
  }
}
```

## Amazon S3 クライアント側暗号化の `emrfs-site.xml` プロパティ
<a name="emr-emrfs-cse-config"></a>


| プロパティ  | デフォルトの値 | 説明  | 
| --- | --- | --- | 
| fs.s3.cse.enabled | false |  **true** に設定すると、Amazon S3 に保存された EMRFS オブジェクトはクライアント側の暗号化を使用して暗号化されます。  | 
| fs.s3.cse.encryptionV2.enabled | false |  `true` に設定すると、EMRFS は S3 暗号化クライアントバージョン 2 を使用して S3 上のオブジェクトの暗号化と復号化を行います。EMR バージョン 5.31.0 以降で使用できます。  | 
| fs.s3.cse.encryptionMaterialsProvider.uri | N/A | カスタム暗号化マテリアルを使用するときに適用されます。EncryptionMaterialsProvider を指定する JAR が保存されている Amazon S3 URI を意味します。この URI を指定すると、Amazon EMR により JAR がクラスター内のすべてのノードに自動的にダウンロードされます。 | 
| fs.s3.cse.encryptionMaterialsProvider | N/A |  クライアント側の暗号化で使用される `EncryptionMaterialsProvider` のクラスパス。CSE-KMS を使用する場合は、`com.amazon.ws.emr.hadoop.fs.cse.KMSEncryptionMaterialsProvider` を指定します。  | 
| fs.s3.cse.materialsDescription.enabled | false |  `true` に設定すると、オブジェクトの Amazon S3 URI と JobFlowId を使用して、暗号化されたオブジェクトの materialsDescription が設定されます。カスタム暗号化マテリアルを使用するときは `true` に設定します。  | 
| fs.s3.cse.kms.keyId | N/A |  CSE-KMS を使用するときに適用されます。暗号化に使用する KMS キーの KeyId、ARN、またはエイリアスの値を示しています。  | 
| fs.s3.cse.cryptoStorageMode | ObjectMetadata  |  Amazon S3 ストレージモード。デフォルトでは、暗号化情報の説明はオブジェクトメタデータに保存されます。インストラクションファイルに説明を保存することもできます。有効な値は、ObjectMetadata と InstructionFile です。詳細については、[「 AWS SDK for Java および Amazon S3 によるクライアント側のデータ暗号化](https://aws.amazon.com/articles/client-side-data-encryption-with-the-aws-sdk-for-java-and-amazon-s3/)」を参照してください。  | 