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 : 05-04-2021

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 puis-je 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. Afin d'effectuer un chargement partitionné en chiffrant les fichiers à l'aide d'une clé AWS KMS, le demandeur doit avoir les autorisations kms:GenerateDataKey et kms:Decrypt. Les autorisations kms:GenerateDataKey permettent au demandeur de lancer le téléchargement. Grâce aux autorisations kms:Decrypt, les parties nouvellement chargées peuvent être chiffrées avec la même clé que celle utilisée pour les parties précédentes du même objet.

Remarque : une fois toutes les parties téléchargées avec succès, elles doivent être assemblés pour terminer l'opération de téléchargement partitionné. Étant donné que les parties téléchargées sont chiffrées côté serveur à l'aide d'une clé KMS, les parties de l'objet doivent être déchiffrées avant de pouvoir être assemblées. Pour cette raison, le demandeur doit disposer des autorisations kms:Decrypt pour les demandes de téléchargement en plusieurs parties utilisant le chiffrement côté serveur avec les CMK KMS (SSE-KMS).

Solution

Si votre rôle et votre clé AWS Identity and Access Management (IAM) se trouvent dans le même compte, les autorisations kms:Decrypt doivent être spécifiées dans la stratégie de clé. Si votre rôle IAM appartient à un compte différent de la clé, les autorisations kms:Decrypt doivent être spécifiées dans la stratégie de clé et IAM.

Stratégie de clé

Consultez la stratégie de clé AWS KMS en utilisant l’affichage des stratégies de la console de gestion AWS.

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, avec SSE-KMS, 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é utilisée pour chiffrer l'objet.

Par exemple :

{
  "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"
    ]
  }
}

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).

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 ?


Besoin d'aide pour une question technique ou de facturation ?