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>"
}
}
我有一个 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>"
}
}