サーバー側の暗号化を使用して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は事前にありがとう。