

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 啟用 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>

您可以使用 在啟動工作階段時，透過指定適當的 Spark 屬性 AWS CLI 來啟用加密。

**使用 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` 請求中指定加密組態。