Je souhaite résoudre mon erreur de stratégie de clé AWS Key Management Service (AWS KMS).
Brève description
Si vous n'avez pas modifié correctement votre stratégie de clé AWS KMS, l'opération d'API AWS KMS PutKeyPolicy échoue. L'un des messages d'erreur suivants peut s'afficher :
« PutKeyPolicy request failed MalformedPolicyDocumentException - Policy contains a statement with one or more invalid principals.. »
« Policy contains a statement with one or more invalid principals »
Pour résoudre ce problème, effectuez une ou plusieurs des actions de résolution suivantes.
Résolution
Utiliser une syntaxe JSON valide
Vérifiez que vous utilisez un type de ressource de document de politique JSON valide. Pour résoudre les erreurs de syntaxe JSON, collez le document de politique JSON dans un outil de formatage JSON. Supprimez les caractères inutiles, puis incluez les caractères manquants. Assurez-vous de supprimer tous les éléments de politique JSON et les valeurs d'identification de sécurité (SID) en double.
Spécifier les éléments principaux
Dans l'élément principal de la politique JSON, confirmez que vous avez créé une identité AWS Identity and Access Management (IAM) et un Amazon Resource Name (ARN) valides.
La stratégie de clé est active uniquement dans la région AWS qui contient la clé AWS KMS. Si la stratégie de clé AWS KMS a des autorisations pour un autre compte ou principal AWS, il est possible que la stratégie de clé ne soit pas active. Assurez-vous que votre stratégie de clé contient la clé AWS KMS dans la bonne région.
Vous devez spécifier l'élément principal comme identité IAM. Si vous avez spécifié un service AWS en tant que principal, assurez-vous qu’AWS KMS le prend en charge. Pour les services AWS qui prennent en charge la clé de condition et effectuent les demandes avec une session d'accès direct, utilisez la clé de condition AWS KMS kms:ViaService.
Les services AWS qui effectuent des appels directs vers AWS KMS doivent avoir le principal de service dans l’élément Principal. Vérifiez que le service AWS que vous utilisez appelle directement AWS KMS.
Accéder à la région
Le compte avec lequel vous partagez les clés AWS KMS doit accéder à la région au sein du compte destinataire. Assurez-vous d'activer la région dans le compte destinataire. Vous pouvez également partager une autre clé AWS KMS dans une région que vous avez activée sur le compte AWS et sur le compte destinataire.