J'essaie de charger un fichier volumineux sur Amazon S3 en le chiffrant à l'aide d'une clé AWS KMS. Pourquoi le chargement échoue-t-il ?

Dernière mise à jour : 18/06/2020

J'essaie de charger un fichier volumineux vers mon compartiment Amazon Simple Storage Service (Amazon S3). Dans ma demande de chargement, j'inclus les informations de chiffrement à l'aide d'une clé AWS Key Management Service (AWS KMS). Cependant, j'obtiens une erreur Accès refusé. Par contre, si je charge un fichier plus petit avec les informations de chiffrement, le chargement réussit. Comment résoudre ce problème ?

Brève description

Vérifiez que vous avez l'autorisation d'effectuer des actions kms:Decrypt sur la clé AWS KMS que vous utilisez pour chiffrer l'objet.

L'interface de ligne de commande (CLI) AWS (commandes aws s3), les kits SDK AWS et de nombreux programmes tiers effectuent automatiquement un chargement partitionné lorsque le fichier est volumineux. Pour effectuer un chargement partitionné avec chiffrement à l'aide d'une clé AWS KMS, le demandeur doit disposer des autorisations kms:GenerateDataKey pour lancer le chargement et kms:Decrypt pour charger des parties d'objet. Le demandeur doit disposer des autorisations kms:Decrypt afin que les parties nouvellement chargées puissent être chiffrées avec la même clé que celle utilisée pour les parties précédentes du même objet. 

Solution

Si votre utilisateur ou rôle AWS Identity and Access Management (IAM) se trouve sur le même compte AWS que la clé AWS KMS, vous devez être autorisé à effectuer l'action kms:Decrypt dans la stratégie de clé. Si votre utilisateur ou rôle IAM appartient à un compte différent de celui de la clé, il est nécessaire de disposer de l'autorisation d'effectuer des actions kms:Decrypt à la fois dans la stratégie de clé et dans vos autorisations IAM.

Stratégie de clé

Consultez la stratégie de clé AWS KMS en consultant la politique d'AWS Management Console.

Dans la politique de clé, recherchez des instructions dans lesquelles l'Amazon Resource Name (ARN) de votre utilisateur ou rôle IAM est répertorié en tant que mandataire AWS. L'ARN a le format arn:aws:iam::111122223333:user/john.

Ensuite, vérifiez la liste des actions autorisées par les instructions associées à votre utilisateur ou rôle IAM. La liste des actions autorisées doit inclure kms:Decrypt pour que les chargements partitionnés fonctionnent.

Par exemple, cette instruction dans une politique de clé permet à l'utilisateur John d'effectuer les actions kms:Decrypt et kms:GenerateDataKey :

  {
            "Sid": "Allow use of the key",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:user/john"
            },
            "Action": [
                "kms:Decrypt",
                "kms:GenerateDataKey"
            ],
            "Resource": "*"
        },

Autorisations IAM

Pour consulter vos autorisations IAM, ouvrez la console IAM, puis votre utilisateur ou rôle IAM.

Consultez la liste des stratégies d'autorisations appliquées à votre utilisateur ou rôle IAM. Vérifiez qu'une politique vous permettant d'effectuer l'action kms:Decrypt est appliquée à la clé que vous utilisez pour chiffrer l'objet.

Par exemple, cette instruction autorise l'utilisateur IAM à effectuer des actions kms:Decrypt et kms:GenerateDataKey sur la clé (arn:aws:kms:example-region-1:123456789098:key/111aa2bb-333c-4d44-5555-a111bb2c33dd) :

{
  "Version": "2012-10-17",
  "Statement": {
    "Effect": "Allow",
    "Action": [
      "kms:Decrypt",
      "kms:GenerateDataKey"
    ],
    "Resource": [
      "arn:aws:kms:example-region-1:123456789098:key/111aa2bb-333c-4d44-5555-a111bb2c33dd"
    ]
  }
}

Pour plus d'informations sur la mise à jour de vos autorisations IAM, consultez la Modification des autorisations d’un utilisateur IAM.


Cet article vous a-t-il été utile ?

Cette page peut-elle être améliorée ?


Vous avez besoin d'aide ?