2016-04-04 15 views

答えて

0

また、これを探しています。 Javascript(ブラウザ、ノード)、Android(Java)、さらにはC++(iOSでは動作するかもしれませんが、してください)のKMS APIを持っています。

ただし、iOS SDKではありません。一口。

+1

REST APIを使用してURL署名ルートに行きました。 – sparkFinder

1

AWS S3でAWS KMS CMKを使用してサーバー側の暗号化を検索する場合は、アップロード要求自体で自分のデータに対してサーバー側の暗号化を行う必要があります。

コードは、AWS KMS CMKを使用して、サーバー側の暗号化ではAWS S3に画像をアップロードするためにここにある(SWIFT 3で書かれたコード)

@IBAction func uploadButtonPressed(_ sender: AnyObject) { 
    if documentImageView.image == nil { 
     // Do something here 
    } else { 
     let image = documentImageView.image! // I picked image from my imageView named as "documentImageView". You can choose from wherever you want. 
     let fileManager = FileManager.default 
     let path = (NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as NSString).appendingPathComponent("\(imageName!).jpeg") 
     let imageData = UIImageJPEGRepresentation(image, 0.99) 
     fileManager.createFile(atPath: path as String, contents: imageData, attributes: nil) 

     let fileUrl = NSURL(fileURLWithPath: path) 
     uploadRequest?.bucket = "S3BucketName" 
     uploadRequest?.key = "yourImageName.jpeg" 
     uploadRequest?.contentType = "image/jpeg" 
     uploadRequest?.body = fileUrl as URL! 
     uploadRequest?.serverSideEncryption = AWSS3ServerSideEncryption.awsKms 
     uploadRequest?.ssekmsKeyId = "Your AWS KMS CMK id" 
     uploadRequest?.uploadProgress = { (bytesSent, totalBytesSent, totalBytesExpectedToSend) -> Void in 
      DispatchQueue.main.async(execute: { 
       self.amountUploaded = totalBytesSent. // To show the amount of data uploaded 
       self.fileSize = totalBytesExpectedToSend 
      }) 
     } 

     let transferManager = AWSS3TransferManager.default() 
     transferManager?.upload(uploadRequest).continue(with: AWSExecutor.mainThread(), withSuccessBlock: { (taskk: AWSTask) -> Any? in 

      if taskk.error != nil { 
       // Error 
      } else { 
       // Handle success response 
      } 
      return nil 
     }) 
    } 
} 

注:あなたAWSを提供しなかった場合KMS CMK idssekmsKeyIdにアップロードすると、IAM固有のデフォルトCMK ID(IAM資格情報を使用してAWS S3にアクセスする場合)またはルート資格情報(AWS S3にアクセスする場合)あなたのルート資格情報を使って)。このデフォルトのCMK idを使用して、CMK IdssekmsKeyIdプロパティにアップロード要求で指定するまで、これ以上の暗号化/復号化は行われません。