J'essaie de crypter un fichier pdf dans mon application avec une clé que j'ai créée dans AWS IAM et de télécharger le fichier crypté vers S3. J'utilise boto3 pour y parvenir. Je pourrais télécharger le fichier sur S3 sans cryptage cependant. Voici ma fonction qui fait le cryptage:botocore.exceptions.ClientError: Cryptage KMS côté client
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")
Je reçois cette erreur suivante:
botocore.exceptions.ClientError: Une erreur est survenue (ValidationException) lors de l'appel de l'opération Chiffrer: 1 erreur de validation détectée: Valeur à 'texte en clair' n'a pas réussi à satisfaire la contrainte: membre doit avoir une longueur inférieure ou égale à 4096
Je ne suis pas sûr si j'utilise la méthode correcte pour crypter un fichier dans KMS.