

# Apache Spark 暗号化を有効にする
<a name="notebooks-spark-encryption"></a>

Athena で Apache Spark 暗号化を有効にできます。有効にすると、Spark ノード間で転送中のデータが暗号化され、Spark にローカル保存されている保管中のデータも暗号化されます。このデータのセキュリティを強化するために、Athena では以下の暗号化設定を使用しています。

```
spark.io.encryption.keySizeBits="256" 
spark.io.encryption.keygen.algorithm="HmacSHA384"
```

Spark 暗号化を有効にするには、Athena コンソール、AWS CLI、または Athena API を使用できます。

## Athena コンソールを使用して新しいノートブックで Spark 暗号化を有効にする
<a name="notebooks-spark-encryption-athena-console-new-notebook"></a>

**Spark 暗号化が有効になっているノートブックを新規作成する方法**

1. [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home) で Athena コンソールを開きます。

1. コンソールのナビゲーションペインが表示されない場合は、左側の展開メニューをクリックします。

1. 次のいずれかを行います。
   + **[Notebook explorer]** (ノートブックエクスプローラー) で、**[Create notebook]** (ノートブックの作成) を選択します。
   + **[Notebook editor]** (ノートブックエディタ) で、**[Create notebook]** (ノートブックの作成) を選択するか、プラスアイコン (**[\$1]**) を選択してノートブックを追加します。

1. **[ノートブック名]** に、ノートブックの名前を入力します。

1. **[Spark プロパティ]** オプションを拡張します。

1. **[Spark 暗号化を有効にする]** を選択します。

1. **[作成]** を選択します。

作成したノートブックセッションが暗号化されます。新しいノートブックは、通常どおりに使用してください。後ほど、ノートブックを使用する新しいセッションを起動すると、新しいセッションも暗号化されます。

## Athena コンソールを使用して既存のノートブックの Spark 暗号化を有効にする
<a name="notebooks-spark-encryption-athena-console-existing-notebook"></a>

また、Athena コンソールを使用して、既存のノートブックの Spark 暗号化を有効にできます。

**既存のノートブックの暗号化を有効にする方法**

1. 以前に作成したノートブックの [[新しいセッションを開く]](notebooks-spark-managing.md#opening-a-previously-created-notebook) を実行します。

1. ノートブックエディタで、右上の **[Session]** (セッション) メニューから **[Edit session]** (セッションの編集) を選択します。

1. **[セッションの詳細の編集]** ダイアログボックスにある **[Spark プロパティ]** を拡張します。

1. **[Spark 暗号化を有効にする]** を選択します。

1. **[保存]** を選択します。

コンソールに、暗号化が有効になっている新しいセッションが起動します。このノートブック用に作成する後続のセッションでも、暗号化が有効になっています。

## AWS CLI を使用して Spark 暗号化を有効にする
<a name="notebooks-spark-encryption-cli"></a>

AWS CLI を使用して、適切な Spark プロパティを指定することで、セッションを起動するときに暗号化を有効にできます。

**AWS CLI を使用して Spark 暗号化を有効にする**

1. 次のようなコマンドを使用して、Spark 暗号化プロパティを指定するエンジン設定 JSON オブジェクトを作成します。

   ```
   ENGINE_CONFIGURATION_JSON=$( 
     cat <<EOF 
   { 
       "CoordinatorDpuSize": 1, 
       "MaxConcurrentDpus": 20, 
       "DefaultExecutorDpuSize": 1, 
       "SparkProperties": { 
         "spark.authenticate": "true", 
         "spark.io.encryption.enabled": "true", 
         "spark.network.crypto.enabled": "true" 
       } 
   } 
   EOF 
   )
   ```

1. AWS CLI で、次の例のように、`athena start-session` コマンドを使用して、作成した JSON オブジェクトを `--engine-configuration` 引数に渡します。

   ```
   aws athena start-session \ 
      --region "region" \ 
      --work-group "your-work-group" \ 
      --engine-configuration "$ENGINE_CONFIGURATION_JSON"
   ```

## Athena API を使用して Spark 暗号化を有効化する
<a name="notebooks-spark-encryption-api"></a>

Athena API で Spark 暗号化を有効にするには、[StartSession](https://docs.aws.amazon.com/athena/latest/APIReference/API_StartSession.html) アクションとその [EngineConfiguration](https://docs.aws.amazon.com/athena/latest/APIReference/API_EngineConfiguration.html) `SparkProperties` パラメータを使用して、`StartSession` リクエスト内の暗号化設定を指定します。