Comment puis-je résoudre l'erreur de politique de clé KMS « Policy contains a statement with one or more invalid principals » (« La politique contient une instruction avec un ou plusieurs principaux non valides ») ?

Date de la dernière mise à jour : 22/03/2022

J'ai essayé de modifier ma politique de clé AWS Key Management Service (AWS KMS) et j'ai reçu une erreur similaire à la suivante dans la console de gestion AWS :

« PutKeyPolicy request failed (« La demande PutKeyPolicy a échoué)

MalformedPolicyDocumentException – Policy contains a statement with one or more invalid principals » (MalformedPolicyDocumentException – La politique contient une déclaration avec un ou plusieurs mandataires non valides »)

La politique de clé KMS ne contient pas l'Amazon Resource Name (ARN) et contient un principal avec un ID unique similaire à AIDACKCEVSQ6C2EXAMPLE.

Brève description

La demande PutKeyPolicy d'appel d'API AWS KMS échoue lorsque la demande a été rejetée, car la politique de clé spécifiée n'est pas syntaxiquement ou sémantiquement correcte.

Résolution

Syntaxe JSON

Vérifiez que le type de ressource du document de politique JSON est valide. Pour résoudre les erreurs de syntaxe JSON, collez le document de politique JSON dans un embellisseur JSON pour vérifier la mise en forme. Supprimez tous les caractères inutiles et ajoutez les caractères manquants. Vérifiez les doublons d'éléments de politique JSON et de valeurs SID et supprimez-les.

Principaux non valides

Vérifiez l'élément principal de la politique JSON et assurez-vous que l'entité AWS Identity and Access Management (IAM) existe. Assurez-vous que l'identité IAM est correctement spécifiée avec 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, vous leur attribuez des noms conviviaux, tels que Bob ou Developers. Pour des raisons de sécurité, un ID unique, tel que AIDACKCEVSQ6C2EXAMPLE, est également affecté à ces entités IAM.

Par exemple, vous avez un utilisateur IAM nommé Alice spécifié dans une politique de clé KMS AWS. Ensuite, Alice quitte l'entreprise. Ensuite, un nouvel utilisateur nommé Alice est recruté, et un utilisateur IAM est créé avec le même nom. Les ID uniques permettent de s'assurer que la nouvelle Alice n'hérite pas des autorisations qui étaient accordées à l'ancienne.

Supprimez les ID uniques orphelins de la politique de clé. Pour plus d'informations, consultez Utilisation de politiques de clés dans AWS KMS.

Remarque : si la politique de clé KMS dispose d'autorisations sur un autre compte ou principal, la politique de clé n'est effective que dans la Région qui héberge la clé KMS. Pour plus d'informations, consultez Présentation des politiques de clés.

Services AWS non valides

Si un service AWS est répertorié en tant que principal, assurez-vous qu'il est pris en charge par AWS KMS. Le principal doit être l'entité IAM et kms:ViaService doit être utilisé pour les services AWS qui effectuent les demandes au nom de l'entité IAM.

Vérifiez si le service AWS effectue des appels directs vers AWS KMS. Les services AWS ne font pas tous appel directement à AWS KMS, comme Amazon Elastic Compute Cloud (Amazon EC2). Au lieu de cela, les services AWS tels que Amazon EC2 effectuent des appels au nom d'un principal dans le compte AWS. Les services AWS qui effectuent des appels directs vers AWS KMS tels qu'Amazon Simple Notification Service (Amazon SNS) doivent avoir le principal de service dans l'élément principal.

Pour plus d'informations, consultez Services qui prennent en charge la clé de condition kms:ViaService.

Inscription à une Région AWS

Les clés AWS KMS partagées avec un compte AWS qui ne s'est pas inscrit à la Région AWS dans laquelle se trouve la clé dans le compte destinataire ne sont pas valides pour cette Région.

Assurez-vous que la Région AWS est activée dans le compte destinataire ou partagez une autre clé AWS KMS dans une Région activée dans le compte AWS et le compte du destinataire. Pour plus d'informations, consultez Gestion des Régions AWS.


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


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