启用 Apache Spark 加密 - Amazon Athena

启用 Apache Spark 加密

您可以在 Athena 上启用 Apache Spark 加密。这样做可以加密 Spark 节点之间的传输中数据,还可以加密 Spark 本地存储的静态数据。为了增强这些数据的安全性,Athena 使用以下加密配置:

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

要启用 Spark 加密,可使用 Athena 控制台、AWS CLI 或 Athena API。

新建启用了 Spark 加密的笔记本
  1. https://console.aws.amazon.com/athena/ 打开 Athena 控制台。

  2. 如果控制台导航窗格不可见,请选择左侧的扩展菜单。

  3. 请执行以下操作之一:

    • Notebook explorer(笔记本资源管理器)中,选择 Create notebook(创建笔记本)。

    • Notebook editor(笔记本编辑器)中,选择 Create notebook(创建笔记本),或选择加号图标(+)添加笔记本。

  4. 笔记本名称中,输入笔记本的名称。

  5. 展开 Spark 属性选项。

  6. 选择打开 Spark 加密

  7. 选择创建

您创建的笔记本会话已加密。像往常一样使用新笔记本。当您稍后启动使用笔记本的新会话时,也会对新会话进行加密。

您还可以使用 Athena 控制台为现有笔记本启用 Spark 加密。

为现有笔记本启用加密
  1. 为先前创建的笔记本打开一个新会话

  2. 在笔记本编辑器中,从右上角的 Session(会话)菜单中选择 Edit session(编辑会话)。

  3. 编辑会话详细信息对话框中,展开 Spark 属性

  4. 选择打开 Spark 加密

  5. 选择保存

控制台将启动启用了加密的新会话。您稍后为此笔记本创建的会话也将启用加密。

可在启动会话时使用 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 )
  2. 在 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 加密,使用 StartSession 操作及其 EngineConfiguration SparkProperties 参数在 StartSession 请求中指定加密配置。