AWS EMR - 使用正确的加密密钥写入 S3

AWS EMR - Write to S3 Using the Correct Encryption Key

我有一个 EMR 集群 (v5.12.1) 和我的 S3 存储桶设置,使用相同的 AWS SSE-KMS 密钥进行静态加密。

从 S3 读取数据工作正常,但是当我使用 Pyspark 脚本写入我的 S3 存储桶时 - parquet 文件使用默认 'aws/s3' 密钥加密。

如何让 Spark 使用正确的 KMS 密钥?

集群有 Hadoop 2.8.3 和 Spark 2.2.1

解决方案是不要为输出文件使用 s3a:// 或 s3n:// 路径。

如果您仅使用 s3:// 前缀,文件将写入 S3 并使用正确的 SSE-KMS 密钥加密。

如果您使用 CMK,请确保在配置部分下创建 EMR 集群时使用它:

{
    "Classification": "emrfs-site",
    "Properties": {
                   "fs.s3.enableServerSideEncryption": "true",
                   "fs.s3.serverSideEncryption.kms.keyId": "<YOUR_CMK>"
                  }
}