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 でファイルを暗号化するために正しい方法を使用しているかどうかわかりません。