1

サーバー側の暗号化を使用してS3のrddをKMSキー(SSE-KMS)で保存しようとしていますが、次の例外が発生します。AWS S3でSSE-KMS暗号化をサポートしていません。

スレッド "メイン" com.amazonaws.services.s3.model.AmazonS3Exceptionの例外:ステータスコード:400、 AWSサービス:アマゾンS3、AWSリクエストID:695E32175EBA568A、AWSエラー コード:InvalidArgument、AWSのエラーメッセージ:暗号化方法 が指定されていない場合、S3拡張要求ID: Pi + HFLg0WsAWtkdI2S/xViOcRPMCi7zdHiaO5n1f7tiwpJe2z0lPY1C2Cr53PnnUCj3358Gx3AQ =

0123続き

は、暗号化のための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書けるように思います、が。

「SSE-KMS」ではなく、spark/hadoopのKMSキー暗号化の値が異なりますか?

誰かが私がここで行方不明または間違っていることを示唆できますか?次のように

環境の詳細:

  • スパーク:1.6.1
  • のHadoop:2.6.0
  • AWS-のJava-SDK:

1.7.4は事前にありがとう。

答えて

0

残念ながら、すなわち2.8はSSE-KMSをサポートしていないのHadoopの既存のバージョンのように思える:(

次の観察である:

  1. SSE-KMSは、Hadoopの2.8.1
  2. までサポートされていません。
  3. は、SSE-KMSのHadoop 3.0.0alpha版でのHadoop 2.9
  4. で導入されることになって、SSE-KMSがサポートされています。

同じ観察w.r.t. Javaの

ため
  1. SSE-KMSは、AWS-javaの-SDK 1.9.5
にAWS SDKを導入しました。
関連する問題