Je souhaite que mon compartiment Amazon Simple Storage Service (Amazon S3) stocke uniquement les objets chiffrés par une clé AWS Key Management Service (AWS KMS) de mon compte AWS. Comment être sûr que seuls ces objets peuvent être chargés dans mon compartiment ?
Brève description
Utilisez le chiffrement par défaut d'Amazon S3 pour vous assurer que les objets chargés sans en-têtes de chiffrement sont chiffrés par AWS KMS avant d'être stockés dans votre compartiment S3. Les en-têtes de chiffrement sont des en-têtes tels que x-amz-server-side-encryption et x-amz-server-side-encryption-aws-kms-key-id. Ensuite, utilisez la politique de compartiment pour vous assurer que les objets chargés sont cryptés à l'aide d'AWS KMS avec l'ID de clé AWS KMS de votre compte AWS.
Remarque : Pour charger un objet chiffré par une clé AWS KMS, la clé et le compartiment S3 doivent se trouver dans la même région AWS.
Résolution
Chiffrement par défaut Amazon S3
Suivez ces étapes pour définir le chiffrement par défaut Amazon S3 de votre compartiment sur AWS KMS à l'aide de la console Amazon S3 :
- Ouvrez la console Amazon S3.
- Choisissez le compartiment que vous souhaitez utiliser pour les objets chiffrés par AWS KMS.
- Choisissez la vue Properties (Propriétés).
- Choisissez Default encryption (Chiffrement par défaut), puis sélectionnez AWS-KMS.
- Sous Clé AWS KMS, choisissez votre clé AWS KMS.
- Sous Clé de compartiment, choisissez Activer. Ce paramètre vous permet d'utiliser les clés de compartiment Amazon S3.
- Sélectionnez Save (Enregistrer).
Remarque : pour activer le chiffrement par défaut d'Amazon S3 à l'aide de l'API REST, d'AWS Command Line Interface (AWS CLI) ou d'un kit AWS SDK, consultez la section Activation du chiffrement par défaut du compartiment Simple Storage Service (Amazon S3).
Politique de compartiment
Suivez ces étapes pour configurer votre politique de compartiment afin de refuser les demandes de téléchargement qui utilisent un autre paramètre de chiffrement (AES-256). Ou bien, des requêtes qui utilisent le chiffrement AWS KMS mais qui contiennent un identifiant de clé qui ne provient pas de votre compte AWS :
- Ouvrez la console Amazon S3.
- Choisissez le compartiment que vous souhaitez utiliser pour les objets chiffrés par AWS KMS.
- Choisissez la vue Permissions (Autorisations).
- Choisissez Bucket Policy (Politique de compartiment).
- Saisissez une politique de compartiment similaire à ce qui suit :
Remarque : remplacez bucketname par le nom de votre compartiment. Remplacez us-east- 1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab par votre région AWS, votre identifiant de compte AWS et votre ID de clé AWS KMS.
{
"Version": "2012-10-17",
"Id": "PutObjPolicy",
"Statement": [
{
"Sid": "RequireKMSEncryption",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::bucketname/*",
"Condition": {
"StringNotEquals": {
"s3:x-amz-server-side-encryption": "aws:kms"
}
}
},
{
"Sid": "RequireSpecificKMSKey",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::samplebucketname/*",
"Condition": {
"StringNotLikeIfExists": {
"s3:x-amz-server-side-encryption-aws-kms-key-id": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
}
}
}
]
}
Après avoir ajouté cette politique de compartiment à votre compartiment S3, vous devez inclure les en-têtes x-amz-server-side-encryption et x-amz-server-side-encryption-aws-kms-key-id lorsque vous chargez des objets vers votre compartiment S3. Pour en savoir plus, consultez Demandes syntax.
Informations connexes
Comment Amazon Simple Storage Service (Amazon S3) utilise AWS KMS
Réduction du coût de SSE-KMS avec les clés de compartiment Amazon S3.