我正在尝试使用我在 AWS IAM 中创建的密钥加密我的应用程序中的 pdf 文件,并将加密的文件上传到 S3。我使用 boto3 来实现这一点。不过,我可以将文件上传到 S3 而无需加密。这是我的加密功能:
def write(self):
print 'Write to S3'
client = boto3.client('kms')
s3 = boto3.client('s3')
input_file = open('265987747.pdf', 'rb')
data = input_file.read()
input_file.close()
print type(data)
response = client.encrypt(
KeyId='alias/efax',
Plaintext=data,
EncryptionContext={
'string': 'string'
}
)
#Upload file to S3
#s3.upload_file("265987747.pdf", "bucket_efax", "265987747.pdf")
我收到以下错误:
botocore.exceptions.ClientError: An error occurred (ValidationException) when calling the Encrypt operation: 1 validation error detected: Value at 'plaintext' failed to satisfy constraint: Member must have length less than or equal to 4096
我不确定我是否使用正确的方法来加密 KMS 中的文件。