복붙노트

[HADOOP] Spark / Hadoop은 AWS S3에서 SSE-KMS 암호화를 지원하지 않습니다

HADOOP

Spark / Hadoop은 AWS S3에서 SSE-KMS 암호화를 지원하지 않습니다

KMS 키 (SSE-KMS)를 사용하여 서버 측 암호화로 S3에 rdd를 저장하려고하는데 다음 예외가 발생합니다.

다음은 암호화에 SSE-KMS를 사용하여 S3에 rdd를 작성하는 테스트 코드입니다.

val sparkConf = new SparkConf().
  setMaster("local[*]").
  setAppName("aws-encryption")
val sc = new SparkContext(sparkConf)

sc.hadoopConfiguration.set("fs.s3a.access.key", AWS_ACCESS_KEY)
sc.hadoopConfiguration.set("fs.s3a.secret.key", AWS_SECRET_KEY)
sc.hadoopConfiguration.setBoolean("fs.s3a.sse.enabled", true)
sc.hadoopConfiguration.set("fs.s3a.server-side-encryption-algorithm", "SSE-KMS")
sc.hadoopConfiguration.set("fs.s3a.sse.kms.keyId", KMS_ID)

val s3a = new org.apache.hadoop.fs.s3a.S3AFileSystem
val s3aName = s3a.getClass.getName
sc.hadoopConfiguration.set("fs.s3a.impl", s3aName)

val rdd = sc.parallelize(Seq("one", "two", "three", "four"))
println("rdd is: " + rdd.collect())
rdd.saveAsTextFile(s"s3a://$bucket/$objKey")

그러나 AES256 암호화로 s3에 rdd를 작성할 수 있습니다.

spark / hadoop의 "SSE-KMS"대신 KMS 키 암호화에 다른 값이 있습니까?

아무도 내가 여기서 누락되었거나 잘못하고있는 것을 제안 할 수 있습니까?

다음과 같은 환경 세부 사항 :

미리 감사드립니다.

해결법

  1. ==============================

    1.불행히도 기존 버전의 Hadoop, 즉 2.8은 SSE-KMS를 지원하지 않는 것 같습니다.

    불행히도 기존 버전의 Hadoop, 즉 2.8은 SSE-KMS를 지원하지 않는 것 같습니다.

    관찰 결과는 다음과 같습니다.

    동일한 관측치 Java 용 AWS SDK

  2. from https://stackoverflow.com/questions/46168680/doesnt-spark-hadoop-support-sse-kms-encryption-on-aws-s3 by cc-by-sa and MIT license