Wenn Sie in AWS S3 mit Ihrem AWS KMS CMK nach serverseitiger Verschlüsselung suchen, können Sie angeben, dass Sie die serverseitige Verschlüsselung für meine Daten in der Upload-Anforderung selbst durchführen müssen.
Der Code ist hier für das Hochladen von Bild zu AWS S3 mit Server-Verschlüsselung mit AWS KMS CMK (-Code in swift 3 geschrieben)
@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
})
}
}
. HINWEIS: Wenn Sie nicht Ihre AWS liefern KMS-CMK-ID an Eigenschaft ssekmsKeyId in der Upload-Anforderung erstellt AWS S3 eine Standard-CMK-ID für Ihr IAM (wenn Sie mit Ihren IAM-Anmeldeinformationen auf AWS S3 zugreifen) oder Root-Anmeldeinformationen (wenn Sie auf AWS S3 zugreifen) Verwenden Sie Ihre Root-Anmeldeinformationen). Eine weitere Verschlüsselung/Entschlüsselung erfolgt mit dieser Standard-CMK-ID nur bis Sie die Ihre CMK-ID in ssekmsKeyId Eigenschaft in Upload-Anforderung angeben.
Ich ging die URL-Signatur-Route mit ihren REST-APIs. – sparkFinder