J’ai essayé de modifier ma stratégie de clé AWS Key Management Service (AWS KMS). Cependant, j’ai reçu une erreur semblable à « PutKeyPolicy request failed MalformedPolicyDocumentException - Policy contains a statement with one or more invalid principals » dans la console de gestion AWS.
Brève description
La demande d’appel d’API AWS KMS PutKeyPolicy échoue lorsque la politique de clé spécifiée n’est pas correcte syntaxiquement ou sémantiquement. La stratégie de clé AWS KMS ne contient pas l’ARN. Au lieu de cela, la stratégie de clé contient un principal avec un ID unique semblable à AIDACKCEVSQ6C2EXAMPLE.
Résolution
Syntaxe JSON
Vérifiez que le type de ressource du document de stratégie JSON est valide. Pour résoudre les erreurs de syntaxe JSON, collez le document de stratégie JSON dans un outil de formatage JSON, tel que le JSON Beautifier sur le site Web JSON Beautifier. Supprimez tous les caractères inutiles et ajoutez les caractères manquants. Supprimez les éléments de stratégie JSON et les valeurs SID en double.
Éléments principaux
Dans l’élément principal de la stratégie JSON, assurez-vous que l’identité Gestion des identités et des accès AWS (AWS IAM) existe et possède un ARN valide.
Remarque : vous ne pouvez pas utiliser de caractère générique dans la partie de l’ARN qui spécifie le type de ressource.
Lorsque vous créez des identités IAM, utilisez des noms conviviaux comme Bob ou Développeurs. Pour des raisons de sécurité, un identifiant unique comme AIDACKCEVSQ6C2EXAMPLE est également attribué à ces identités IAM. Supprimez les identifiants uniques orphelins de la stratégie de clé. Pour en savoir plus, consultez la page Stratégies de clés AWS KMS.
Remarque : si la stratégie de clé AWS KMS a des autorisations pour un autre compte ou principal, il est possible que la stratégie de clé ne soit pas active. La stratégie de clé est active uniquement dans la région AWS qui contient la clé AWS KMS.
Services AWS
Si un service AWS est répertorié comme principal, assurez-vous qu’AWS KMS le prend en charge. Le principal doit être l’identité IAM. Vous devez également utiliser la clé de condition kms:ViaService pour les services AWS qui soumettent les demandes d’identité IAM.
Comme tous les services AWS n’appellent pas directement AWS KMS, vérifiez si le service AWS que vous utilisez appelle directement AWS KMS. Par exemple, un service AWS comme Amazon Elastic Compute Cloud (Amazon EC2) appelle un principal du compte. Les services AWS qui effectuent des appels directs vers AWS KMS doivent avoir le principal de service dans l’élément Principal.
Pour en savoir plus, consultez la page Services prenant en charge la clé de condition kms:ViaService.
Région AWS d’inscription
Le compte avec lequel vous partagez les clés AWS KMS doit accéder à la région AWS au sein du compte destinataire. Dans le cas contraire, les clés KMS ne sont pas valides dans cette région.
Assurez-vous que la région est activée sur le compte destinataire. Vous pouvez également partager une autre clé AWS KMS dans une région qui est activée sur le compte AWS et sur le compte destinataire. Pour en savoir plus, consultez la page Spécifier les régions AWS que votre compte peut utiliser.
Informations connexes
Modification d’une stratégie de clé