Politiques de résolution des IAM problèmes - AWS Gestion de l’identité et des accès

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Politiques de résolution des IAM problèmes

Une politique est une entité dans AWS qui, lorsqu'elle est attachée à une identité ou à une ressource, définit leurs autorisations. AWS évalue ces politiques lorsqu'un mandant, tel qu'un utilisateur, fait une demande. Les autorisations dans les politiques déterminent si la demande est autorisée ou refusée. Les politiques sont stockées dans AWS sous forme de JSON documents attachés aux principes en tant que politiques basées sur l'identité ou aux ressources en tant que politiques basées sur les ressources. Vous pouvez associer une politique basée sur l'identité à un principal (ou à une identité), tel qu'un IAM groupe, un utilisateur ou un rôle. Les politiques basées sur l'identité incluent AWS politiques gérées, politiques gérées par le client et politiques intégrées. Vous pouvez créer et modifier des politiques gérées par le client dans le AWS Management Console en utilisant à la fois les options visuelles et les options de l'JSONéditeur. Lorsque vous consultez une politique dans le AWS Management Console, vous pouvez consulter un résumé des autorisations accordées par cette politique. Vous pouvez utiliser l'éditeur visuel et les résumés des politiques pour vous aider à diagnostiquer et à corriger les erreurs courantes rencontrées lors de la gestion des IAM politiques.

N'oubliez pas que toutes les IAM politiques sont stockées selon une syntaxe qui commence par les règles de JavaScript Object Notation (JSON). Vous n'avez pas besoin de comprendre cette syntaxe pour créer ou gérer vos politiques. Vous pouvez créer et modifier une politique à l'aide de l'éditeur visuel du AWS Management Console. Pour en savoir plus sur JSON la syntaxe des IAM politiques, consultezGrammaire du langage IAM JSON politique .

Rubriques de résolution des erreurs de stratégie IAM

Résolution des problèmes à l'aide de l'éditeur visuel

Lorsque vous créez ou modifiez une politique gérée par le client, vous pouvez utiliser les informations de l'éditeur visuel pour vous aider à résoudre les erreurs dans votre politique. Pour voir un exemple d'utilisation de l'éditeur visuel pour la création d'un politique, veuillez consulter Contrôle de l'accès aux identités.

Restructuration de politique

Lorsque vous créez une politique, AWS valide, traite et transforme la politique avant de la stocker. Lorsque la politique est récupérée, AWS le retransforme en un format lisible par l'homme sans modifier les autorisations. Cela peut entraîner des différences dans ce que vous voyez dans l'éditeur visuel ou dans JSONl'onglet des politiques.

  • Les blocs d'autorisation de l'éditeur visuel peuvent être ajoutés, supprimés ou réorganisés, et le contenu d'un bloc peut être optimisé.

  • Dans l'JSONonglet, les espaces blancs insignifiants peuvent être supprimés et les éléments JSON des cartes peuvent être réorganisés. En outre, Compte AWS IDsdans les principaux éléments, vous pouvez remplacer le nom de ressource Amazon (ARN) du Utilisateur racine d'un compte AWS.

En raison de ces modifications possibles, vous ne devez pas comparer les documents JSON de politique sous forme de chaînes.

Lorsque vous créez une politique gérée par le client dans le AWS Management Console, vous pouvez choisir de travailler entièrement dans l'JSONéditeur. Si vous ne modifiez jamais la politique dans l'éditeur visuel et que vous choisissez Suivant dans l'JSONéditeur, la stratégie est moins susceptible d'être restructurée. Lorsque vous utilisez l'éditeur visuel, vous IAM pouvez restructurer la politique afin d'optimiser son apparence. Cette restructuration existe uniquement dans votre session d'édition et n'est pas enregistrée automatiquement.

Si votre politique est restructurée lors de votre session de modification, IAM déterminez s'il convient d'enregistrer la restructuration en fonction des situations suivantes :

Utilisation de cette option de l'éditeur Si vous modifiez votre politique Et puis choisissez Suivant dans cet onglet Lorsque vous sélectionnez Enregistrer les modifications
Visuel Modifié Visuel La stratégie est restructurée
Visuel Modifié JSON La stratégie est restructurée
Visuel Non modifié Visuel La stratégie est restructurée
JSON Modifié Visuel La stratégie est restructurée
JSON Modifié JSON La structure de la stratégie n'est pas modifiée
JSON Non modifié JSON La structure de la stratégie n'est pas modifiée

IAMpeut restructurer des politiques complexes ou des politiques comportant des blocs d'autorisation ou des instructions autorisant plusieurs services, types de ressources ou clés de condition.

Choix d'une ressource ARN dans l'éditeur visuel

Lorsque vous créez ou modifiez une politique à l'aide de l'éditeur visuel, vous devez d'abord choisir un service, puis les actions de ce dernier. Si le service et les actions que vous avez sélectionnés prennent en charge la sélection de ressources spécifiques, l'éditeur visuel répertorie les types de ressources pris en charge. Vous pouvez ensuite choisir Ajouter ARN pour fournir des informations sur votre ressource. Vous pouvez choisir parmi les options suivantes pour ajouter et ARN pour un type de ressource.

  • Utiliser le ARN générateur : vous pouvez voir différents champs pour créer le vôtre ARN en fonction du type de ressource. Vous pouvez également choisir Any (Tout) pour fournir des autorisations pour n'importe quelle valeur du paramètre spécifié. Par exemple, si vous avez sélectionné le groupe de niveaux d'accès Amazon EC2 Read, les actions de votre politique prennent en charge le type de instance ressource. Indiquez la région, le compte et InstanceIdles valeurs de votre ressource. La politique accorde des autorisations à n'importe quelle instance de votre compte si vous fournissez votre identifiant de compte et que vous choisissez N'importe quel pour la région et l'ID d'instance.

  • Tapez ou collez le ARN — Vous pouvez spécifier les ressources par leur Amazon Resource Name (ARN). Vous pouvez inclure un caractère générique (*) dans n'importe quel champ du ARN (entre chaque paire de deux-points). Pour de plus amples informations, veuillez consulter IAMJSONéléments de politique : Resource.

Refus des autorisations dans l'éditeur visuel

Par défaut, la politique que vous créez à l'aide de l'éditeur visuel autorise les actions que vous sélectionnez. Pour refuser les actions choisies, sélectionnez Switch to deny permissions (Basculer vers le refus des autorisations). Les demandes étant refusées par défaut, nous vous recommandons d'autoriser uniquement les actions et les ressources dont un utilisateur a besoin. Vous ne devez créer une déclaration de refus que si vous souhaitez annuler séparément une autorisation autorisée par une autre déclaration ou politique. Nous vous recommandons de limiter le nombre de refus d'autorisation au minimum, car ils peuvent rendre la résolution des problèmes d'autorisation plus complexe. Pour plus d'informations sur le mode d'IAMévaluation de la logique des politiques, consultezLogique d’évaluation de stratégies.

Note

Par défaut, seul le Utilisateur racine d'un compte AWS a accès à toutes les ressources de ce compte. Par conséquent, si vous n'êtes pas connecté en tant qu'utilisateur racine, vous devez disposer des autorisations accordées par une politique.

Spécification de plusieurs services dans l'éditeur visuel

Lorsque vous utilisez l'éditeur visuel pour construire une politique, vous pouvez sélectionner un seul service à la fois. Il s'agit d'une bonne pratique car l'éditeur visuel vous permet ensuite de choisir parmi les actions associées à ce service. Vous pouvez ensuite choisir parmi les ressources prises en charge par ce service et les actions sélectionnées. Cela facilite la création et la résolution des problèmes de votre politique.

Vous pouvez également utiliser un caractère générique (*) pour spécifier manuellement plusieurs services. Par exemple, saisissez Code* pour fournir des autorisations pour tous les services commençant par Code, tels que CodeBuild et CodeCommit. Cependant, vous devez ensuite saisir les actions et les ressources ARNs pour compléter votre politique. De plus, lorsque vous enregistrez votre politique, celle-ci peut être restructurée de façon à inclure chaque service dans un bloc d'autorisation distinct.

Vous pouvez également utiliser une JSON syntaxe (telle que des caractères génériques) pour les services, créez, modifiez et enregistrez votre politique à l'aide de l'option de l'JSONéditeur.

Réduction de la taille de votre politique dans l'éditeur visuel

Lorsque vous utilisez l'éditeur visuel pour créer une politique, il IAM crée un JSON document pour stocker votre politique. Vous pouvez consulter ce document en passant à l'option JSONéditeur. Si ce JSON document dépasse la limite de taille d'une politique, l'éditeur visuel affiche un message d'erreur. Vous ne pourrez pas consulter ni enregistrer la politique. Pour connaître la IAM limite de taille d'une politique gérée, consultezIAMet limites STS de caractères.

Pour réduire la taille de votre politique dans l'éditeur visuel, modifiez votre politique ou déplacez les blocs d'autorisation dans une autre politique. Le message d'erreur indique le nombre de caractères que contient votre document de politique. Vous pouvez utiliser ces informations pour réduire le montant de votre police.

Résolution des problèmes de services, d'actions ou de types de ressources non reconnus dans l'éditeur visuel

Il se peut que l'éditeur visuel affiche un avertissement indiquant que votre politique inclut un service, une action ou un type de ressource non reconnu.

Note

IAMpasse en revue les noms des services, les actions et les types de ressources pour les services qui prennent en charge les résumés des politiques. Toutefois, le récapitulatif de votre politique peut contenir une valeur de ressource ou une condition qui n'existe pas. Testez toujours vos stratégies avec le simulateur de stratégie.

Si votre stratégie inclut des services, des actions ou des types de ressource non reconnus, une des erreurs suivantes s'est produite :

  • Service d'aperçu : les services en mode aperçu ne prennent pas en charge l'éditeur visuel. Si vous participez à l'aperçu, vous devez saisir manuellement les actions et les ressources ARNs pour terminer votre politique. Vous pouvez ignorer les avertissements et continuer. Vous pouvez également choisir l'option de l'JSONéditeur pour taper ou coller un document JSON de politique.

  • Service personnalisé : les services personnalisés ne prennent pas en charge l'éditeur visuel. Si vous utilisez un service personnalisé, vous devez saisir manuellement les actions et les ressources ARNs pour compléter votre politique. Vous pouvez ignorer les avertissements et continuer. Vous pouvez également choisir l'option de l'JSONéditeur pour taper ou coller un document JSON de politique.

  • Le service ne prend pas en charge l'éditeur visuel : si votre politique inclut un service généralement disponible (GA) qui ne prend pas en charge l'éditeur visuel, vous devez saisir manuellement les actions et les ressources ARNs pour terminer votre politique. Vous pouvez ignorer les avertissements et continuer. Vous pouvez également choisir l'option de l'JSONéditeur pour taper ou coller un document JSON de politique.

    Les services disponibles pour tous sont des services mis à disposition du public qui ne sont pas des services d'aperçu ou personnalisés. Si un service non reconnu est disponible pour tous et que son nom est orthographié correctement, il ne prend pas en charge l'éditeur visuel. Pour savoir comment demander la prise en charge de l'éditeur visuel ou du résumé de stratégie pour un service disponible pour tous (GA), consultez Le service ne prend pas en charge les résumés des IAM politiques.

  • L'action ne prend pas en charge l'éditeur visuel : si votre politique inclut un service pris en charge avec une action non prise en charge, vous devez saisir manuellement les actions et les ressources ARNs pour terminer votre politique. Vous pouvez ignorer les avertissements et continuer. Vous pouvez également choisir l'option de l'JSONéditeur pour taper ou coller un document JSON de politique.

    Si votre politique contient un service pris en charge avec une action non prise en charge, le service ne prend pas en charge intégralement l'éditeur visuel. Pour savoir comment demander la prise en charge de l'éditeur visuel ou du résumé de stratégie pour un service disponible pour tous (GA), consultez Le service ne prend pas en charge les résumés des IAM politiques.

  • Le type de ressource ne prend pas en charge l'éditeur visuel : si votre politique inclut une action prise en charge avec un type de ressource non pris en charge, vous pouvez ignorer le message d'avertissement et poursuivre. Cependant, nous IAM ne pouvons pas confirmer que vous avez inclus des ressources pour toutes les actions que vous avez sélectionnées, et des avertissements supplémentaires pourraient s'afficher.

  • Faute de frappe : lorsque vous saisissez manuellement un service, une action ou une ressource dans l'éditeur visuel, vous pouvez parfois créer une politique qui inclut une faute de frappe. Nous vous recommandons d'utiliser l'éditeur visuel en effectuant une sélection dans la liste des services et des actions. Complétez ensuite la section des ressources conformément aux instructions. Si un service ne prend pas entièrement en charge l'éditeur visuel, vous devrez peut-être saisir manuellement certaines parties de votre politique.

    Si vous êtes sûr que votre politique ne contient aucune des erreurs ci-dessus, il se peut que votre politique contienne une faute de frappe. Vérifiez les problèmes suivants :

    • Noms de type de service, d'action et de ressource mal orthographiés, tels que s2 au lieu s3 ou ListMyBuckets au lieu de ListAllMyBuckets

    • Texte superfluARNs, tel que arn:aws:s3: : :*

    • Deux points manquants dans des actions, telles que iam.CreateUser

    Vous pouvez évaluer une politique susceptible de contenir des fautes de frappe en choisissant Suivant pour consulter le résumé de la politique. Vérifiez ensuite si la politique fournit les autorisations que vous souhaitiez.

Résoudre les problèmes liés aux résumés des politiques

Vous pouvez diagnostiquer et résoudre les problèmes liés aux résumés de politique.

Récapitulatif de politique manquant

La IAM console inclut des tableaux récapitulatifs des politiques qui décrivent le niveau d'accès, les ressources et les conditions autorisées ou refusées pour chaque service d'une politique. Les politiques sont résumées dans trois tables : récapitulatif de la politique, récapitulatif du service et récapitulatif de l'action. La table récapitulative de la politique comprend une liste des services et des résumés des autorisations définies par la politique choisie. Vous pouvez afficher le résumé de la politique pour toutes les politiques attachées à une entité sur la page Détails de la politique pour la politique en question. Vous pouvez afficher le récapitulatif des politiques gérées sur la page Politiques. If AWS ne parvient pas à afficher le résumé d'une politique, vous verrez le document JSON de politique et l'erreur suivante :

Aucun récapitulatif pour cette politique ne peut être généré. Vous pouvez toujours consulter ou modifier le document JSON de politique.

Si votre politique ne comprend pas de récapitulatif, une des erreurs suivantes s'est produite :

  • Élément de stratégie non pris en charge : IAM ne prend pas en charge la génération de résumés de stratégie pour les politiques qui incluent l'un des éléments de stratégie suivants :

    • Principal

    • NotPrincipal

    • NotResource

  • Aucune autorisation de politique : si une politique ne fournit pas d'autorisations effectives, le récapitulatif de politique ne peut pas être généré. Par exemple, si une politique contient une instruction unique avec l'élément "NotAction": "*", cela signifie qu'elle accorde l'accès à toutes les actions, sauf « toutes les actions »(*). Cela signifie qu'elle accorde l'accès Deny ou Allow à rien.

    Note

    Soyez prudent lorsque vous utilisez ces éléments de politique tels que NotPrincipalNotAction, etNotResource. Pour en savoir plus sur l'utilisation des éléments de la politique, veuillez consulter IAMJSONréférence à un élément de politique.

    Si vous fournissez des services et des ressources qui ne correspondent pas, vous pouvez créer une politique qui ne fournit pas d'autorisations effectives. Cela peut se produire lorsque vous spécifiez des actions dans un service et des ressources provenant d'un autre service. Dans ce cas, le récapitulatif de la politique n'apparaît pas. La seule indication qu'un problème est survenu est que la colonne de ressource du récapitulatif contient une ressource provenant d'un service différent. Si cette colonne contient une ressource non appariée, recherchez d'éventuelles erreurs dans votre politique. Testez vos politiques avec le simulateur de politiques pour mieux comprendre la politique.

Le récapitulatif de politique inclut des services, des actions ou des types de ressource non reconnus

Dans la IAM console, si un résumé de politique inclut un symbole d'avertissement ( Warning hazard sign icon with yellow triangle background. ), la politique peut inclure un service, une action ou un type de ressource non reconnu. Pour en savoir plus sur les avertissements dans un récapitulatif de politique, veuillez consulter Récapitulatif de la politique (liste des services).

Note

IAMpasse en revue les noms des services, les actions et les types de ressources pour les services qui prennent en charge les résumés des politiques. Toutefois, le récapitulatif de votre politique peut contenir une valeur de ressource ou une condition qui n'existe pas. Testez toujours vos stratégies avec le simulateur de stratégie.

Si votre stratégie inclut des services, des actions ou des types de ressource non reconnus, une des erreurs suivantes s'est produite :

  • Service d'aperçu : les services en mode aperçu ne prennent pas en charge les récapitulatifs de politique.

  • Service personnalisé : les services personnalisés ne prennent pas en charge les récapitulatifs de politique.

  • Le service ne prend pas en charge les récapitulatifs : si votre politique contient un service disponible pour tous (GA) qui ne prend pas en charge les récapitulatifs de politique, le service figure dans la section Unrecognized services (Services non reconnus) de la table récapitulative de la politique. Les services disponibles pour tous sont des services mis à disposition du public qui ne sont pas des services d'aperçu ou personnalisés. Si un service non reconnu est généralement disponible et que son nom est correctement orthographié, le service ne prend pas en charge les résumés des IAM politiques. Pour savoir comment demander la prise en charge du récapitulatif de politique d'un service disponible pour tous (GA), veuillez consulter Le service ne prend pas en charge les résumés des IAM politiques.

  • L'action ne prend pas en charge les récapitulatifs : si votre politique contient un service pris en charge avec une action non prise en charge, l'action figure alors dans la section Unrecognized actions (Actions non reconnues) de la table récapitulative du service. Pour en savoir plus sur les avertissements dans un récapitulatif de service, consultez Récapitulatif du service (liste des actions).

  • Le type de ressource ne prend pas en charge les récapitulatifs : si votre politique inclut une action prise en charge avec un type de ressource non pris en charge, la ressource figure dans la section Unrecognized resource types (Types de ressource non reconnus) de la table récapitulative du service. Pour en savoir plus sur les avertissements dans un récapitulatif de service, consultez Récapitulatif du service (liste des actions).

  • Faute de frappe — AWS vérifie que la syntaxe JSON est correcte et que la politique n'inclut pas de fautes de frappe ou d'autres erreurs dans le cadre de la validation de la politique.

Note

En tant que bonne pratique, nous vous recommandons d'utiliser IAM Access Analyzer pour valider vos IAM politiques afin de garantir des autorisations sécurisées et fonctionnelles. Nous vous recommandons d'ouvrir vos politiques existantes, d'examiner et de résoudre toutes les recommandations de validation des politiques.

Le service ne prend pas en charge les résumés des IAM politiques

Il est possible que les résumés des IAM politiques ou l'éditeur visuel ne prennent pas en charge un service ou une action généralement disponible (GA). Les services disponibles pour tous sont des services mis à disposition du public qui ne sont pas des services d'aperçu ou personnalisés. Si un service non reconnu est disponible pour tous et que son nom est orthographié correctement, il ne prend pas en charge ces fonctionnalités. Si votre politique inclut un service pris en charge avec une action non prise en charge, le service ne prend pas entièrement en charge les résumés des IAM politiques.

Pour demander à un service d'ajouter un résumé des IAM politiques ou le support d'un éditeur visuel
  1. Connectez-vous au AWS Management Console et ouvrez la IAM console à l'adresse https://console.aws.amazon.com/iam/.

  2. Recherchez la stratégie incluant le service non pris en charge :

    • Si la stratégie est une stratégie gérée, choisissez Stratégies dans le panneau de navigation. Dans la liste des stratégies, choisissez le nom de la stratégie à afficher.

    • Si la stratégie est une stratégie en ligne attachée à l'utilisateur, choisissez Utilisateurs dans le panneau de navigation. Dans la liste des utilisateurs, choisissez le nom de l'utilisateur dont vous souhaitez afficher la politique. Dans le tableau des politiques dédiées à l'utilisateur, développez l'en-tête du récapitulatif de politique à afficher.

  3. Sur le côté gauche du AWS Management Console pied de page, choisissez Feedback. Dans le champ Feedback for, IAM tapezI request that the <ServiceName> service add support for IAM policy summaries and the visual editor. Si vous avez besoin de plusieurs services pour prendre en charge les récapitulatifs, saisissez I request that the <ServiceName1>, <ServiceName2>, and <ServiceName3> services add support for IAM policy summaries and the visual editor.

Pour demander à un service d'ajouter un résumé des IAM politiques, un support pour une action manquante
  1. Connectez-vous au AWS Management Console et ouvrez la IAM console à l'adresse https://console.aws.amazon.com/iam/.

  2. Recherchez la stratégie incluant le service non pris en charge :

    • Si la stratégie est une stratégie gérée, choisissez Stratégies dans le panneau de navigation. Dans la liste des stratégies, choisissez le nom de la stratégie à afficher.

    • Si la stratégie est une stratégie en ligne attachée à l'utilisateur, choisissez Utilisateurs dans le panneau de navigation. Dans la liste des utilisateurs, choisissez le nom de l'utilisateur dont vous souhaitez afficher la politique. Dans le tableau des politiques dédiées à l'utilisateur, sélectionnez le nom de la politique à afficher pour développer le récapitulatif de politique.

  3. Dans le récapitulatif de la politique, sélectionnez le nom du service incluant une action non prise en charge.

  4. Sur le côté gauche du AWS Management Console pied de page, choisissez Feedback. Dans le champ Feedback for, IAM tapezI request that the <ServiceName> service add IAM policy summary and the visual editor support for the <ActionName> action. Si vous souhaitez signaler plusieurs actions non prises en charge, saisissez I request that the <ServiceName> service add IAM policy summary and the visual editor support for the <ActionName1>, <ActionName2>, and <ActionName3> actions.

Pour demander qu'un service différent contienne des actions manquantes, répétez les trois dernières étapes.

Ma politique n'accorde pas les autorisations escomptées

Pour attribuer des autorisations à un utilisateur, un groupe, un rôle ou une ressource, vous devez créer une politique, autrement dit un document qui définit les autorisations. Le document de politique inclut les éléments suivants :

  • Effet : si la politique autorise ou refuse l'accès

  • Action : la liste des actions qui sont autorisées ou rejetées par la politique

  • Ressource : la liste des ressources sur lesquelles les actions peuvent se produire

  • Condition (Facultatif) : les circonstances dans lesquelles la politique accorde l'autorisation

Pour en savoir plus sur ces éléments et d'autres éléments d'une politique, veuillez consulter IAMJSONréférence à un élément de politique.

Pour accorder l'accès, votre politique doit définir une action avec une ressource prise en charge. Si votre politique inclut également une condition, cette condition doit inclure une clé de condition ou doit s'appliquer à l'action. Pour savoir quelles ressources sont soutenues par une action, consultez le AWS documentation pour votre service. Pour savoir quelles conditions sont prises en charge par une action, voir Actions, ressources et clés de condition pour AWS Des services.

Vérifiez si votre politique définit une action, une ressource ou une condition qui n'accorde pas d'autorisations. Consultez le résumé de votre politique à l'aide de la IAM console à l'adresse https://console.aws.amazon.com/iam/. Vous pouvez utiliser les récapitulatifs de politiques afin d'identifier et de corriger les problèmes dans votre politique.

Il existe plusieurs raisons pour lesquelles un élément peut ne pas accorder d'autorisations alors qu'il est défini dans la IAM politique :

Pour voir des exemples de récapitulatifs de politiques incluant des avertissements, veuillez consulter Récapitulatif de la politique (liste des services).

Une action est définie sans ressource applicable

La politique ci-dessous définit toutes les actions ec2:Describe* et définit une ressource spécifique. Aucune des actions ec2:Describe n'est autorisée, car aucune de ces actions ne prend en charge les autorisations de niveau ressource. Les autorisations au niveau des ressources signifient que l'action prend en charge l'utilisation des ressources ARNsdans l'élément de Resourcela politique. Si une action ne prend pas en charge les autorisations de niveau ressource, cette instruction de la politique doit utiliser le caractère générique (*) dans l'élément Resource. Pour savoir quels services prennent en charge les autorisations au niveau des ressources, veuillez consulter AWS des services qui fonctionnent avec IAM.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "ec2:Describe*", "Resource": "arn:aws:ec2:us-east-2:ACCOUNT-ID:instance/*" }] }

Cette politique ne fournit pas d'autorisations, et le récapitulatif de politique inclut l'erreur suivante :

This policy does not grant any permissions. To grant access, policies must have an action that has an applicable resource or condition.

Pour corriger cette politique, vous devez utiliser le caractère générique * dans l'élément Resource.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "ec2:Describe*", "Resource": "*" }] }

Une ressource est définie sans action applicable

La politique ci-dessous définit une ressource de compartiment Amazon S3, mais n'inclut pas d'action S3 pouvant être effectuée sur cette ressource. Cette politique accorde également un accès complet à toutes les CloudFront actions Amazon.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "cloudfront:*", "Resource": [ "arn:aws:cloudfront:*", "arn:aws:s3:::amzn-s3-demo-bucket" ] }] }

Cette politique fournit des autorisations pour toutes les CloudFront actions. Mais comme elle définit la ressource S3 amzn-s3-demo-bucket sans définir d'actions S3, le récapitulatif de politique inclut l'avertissement suivant :

This policy defines some actions, resources, or conditions that do not provide permissions. To grant access, policies must have an action that has an applicable resource or condition.

Pour corriger cette politique de façon à fournir des autorisations de compartiment S3, vous devez définir des actions S3 pouvant être exécutées sur une ressource du compartiment.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "cloudfront:*", "s3:CreateBucket", "s3:ListBucket*", "s3:PutBucket*", "s3:GetBucket*" ], "Resource": [ "arn:aws:cloudfront:*", "arn:aws:s3:::amzn-s3-demo-bucket" ] }] }

Sinon, pour corriger cette politique visant à fournir uniquement des CloudFront autorisations, supprimez la ressource S3.

Une condition est définie sans action applicable

La politique ci-dessous définit deux actions Amazon S3 pour toutes les ressources S3, si le préfixe S3 est égal à custom et l'ID de version à 1234. Toutefois, la clé de condition s3:VersionId est utilisée pour le balisage de version d'objet et n'est pas pris en charge par les actions de compartiment définies. Pour savoir quelles conditions sont prises en charge par une action, voir Actions, ressources et clés de condition pour AWS Services et choisissez le service pour consulter la documentation du service relative aux clés de condition.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucketVersions", "s3:ListBucket" ], "Resource": "*", "Condition": { "StringEquals": { "s3:prefix": [ "custom" ], "s3:VersionId": [ "1234" ] } } } ] }

Cette politique fournit les autorisations pour l'action s3:ListBucketVersions et l'action s3:ListBucket si le nom du compartiment inclut le préfixe custom. Mais comme la condition s3:VersionId n'est prise en charge par aucune des actions définies, le récapitulatif de politique inclut l'erreur suivante :

This policy does not grant any permissions. To grant access, policies must have an action that has an applicable resource or condition.

Pour corriger cette politique de façon à utiliser le balisage de version d'objet S3, vous devez définir une action S3 qui prend en charge la clé de condition s3:VersionId.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucketVersions", "s3:ListBucket", "s3:GetObjectVersion" ], "Resource": "*", "Condition": { "StringEquals": { "s3:prefix": [ "custom" ], "s3:VersionId": [ "1234" ] } } } ] }

Cette politique fournit des autorisations pour chaque action et condition de la politique. Toutefois, la politique ne fournit toujours pas d'autorisations, car il n'existe pas de cas où une même action correspond à deux conditions. À la place, vous devez créer deux instructions séparées : chacune comprendra uniquement les actions et les conditions auxquelles elles s'appliquent.

Pour corriger cette politique, créez deux instructions. La première instruction inclut les actions qui prennent en charge la condition s3:prefix, et la seconde instruction inclut les actions qui prennent en charge la condition s3:VersionId.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucketVersions", "s3:ListBucket" ], "Resource": "*", "Condition": { "StringEquals": { "s3:prefix": "custom" } } }, { "Effect": "Allow", "Action": "s3:GetObjectVersion", "Resource": "*", "Condition": { "StringEquals": { "s3:VersionId": "1234" } } } ] }

Résolution des problèmes de gestion des politiques

Vous pouvez diagnostiquer et résoudre les problèmes liés à la gestion des politiques.

Joindre ou détacher une police d'assurance dans un compte IAM

Momentanée AWS les politiques gérées sont liées à un service. Ces politiques sont utilisées uniquement avec un rôle lié à un service pour ce service. Dans la IAM console, lorsque vous consultez la page des détails de la politique, celle-ci inclut une bannière indiquant que la politique est liée à un service. Vous ne pouvez pas associer cette politique à un utilisateur, à un groupe ou à un rôle au sein de celui-ciIAM. Lorsque vous créez un rôle lié à un service pour le service, cette politique est automatiquement attachée à votre nouveau rôle. Puisque la politique est obligatoire, vous ne pouvez pas la détacher du rôle lié au service.

Modifier les politiques relatives à vos IAM identités en fonction de leur activité

Vous pouvez mettre à jour les politiques relatives à vos IAM identités (utilisateurs, groupes et rôles) en fonction de leur activité. Pour ce faire, consultez les événements de votre compte dans CloudTrail l'historique des événements. CloudTrail les journaux d'événements contiennent des informations détaillées sur les événements que vous pouvez utiliser pour modifier les autorisations de la politique.

Un utilisateur ou un rôle tente d'effectuer une action dans AWS et cette demande est refusée.

Déterminez si l'utilisateur ou le rôle doit être autorisé à effectuer l'action. Si tel est le cas, vous pouvez ajouter l'action et même ARN la ressource à laquelle ils ont tenté d'accéder à leur politique.

Un utilisateur ou un rôle possède des autorisations qu'il n'utilise pas.

Envisagez de supprimer ces autorisations de leur politique. Veillez à ce que vos politiques accordent le privilège le plus faible requis pour exécuter uniquement les actions nécessaires.

Pour plus d'informations sur l'utilisation CloudTrail, consultez la section Affichage CloudTrail des événements dans la CloudTrail console dans AWS CloudTrail Guide de l'utilisateur.

Résoudre les problèmes liés aux documents JSON de politique

Vous pouvez diagnostiquer et résoudre les problèmes liés aux documents JSON de politique.

Valider vos politiques

Lorsque vous créez ou modifiez une JSON politique, vous IAM pouvez effectuer une validation de stratégie pour vous aider à créer une politique efficace. IAMidentifie les erreurs de JSON syntaxe, tandis qu'IAMAccess Analyzer fournit des vérifications de politique supplémentaires avec des recommandations pour vous aider à affiner davantage vos politiques. Pour en savoir plus sur la validation de politiques, veuillez consulter IAMvalidation des politiques. Pour en savoir plus sur les vérifications des politiques IAM d'Access Analyzer et les recommandations pratiques, consultez la section Validation des politiques IAMAccess Analyzer.

Je ne suis pas autorisé à valider les politiques dans l'JSONéditeur

Dans le volet AWS Management Console, le message d'erreur suivant peut s'afficher si vous n'êtes pas autorisé à consulter les résultats de validation des politiques IAM d'Access Analyzer :

You need permissions. You do not have the permissions required to perform this operation. Ask your administrator to add permissions.

Pour corriger cette erreur, demandez à votre administrateur d'ajouter l'autorisation access-analyzer:ValidatePolicy pour vous.

Plus d'un objet JSON de politique

Une IAM politique ne doit comporter qu'un seul JSON objet. Vous désignez un objet en le plaçant entre accolades { }. Vous pouvez imbriquer d'autres objets dans un JSON objet en incorporant des {} entretoises supplémentaires dans la paire extérieure. Une politique ne doit contenir qu'une seule paire d'accolades {} la plus externe. L'exemple suivant est incorrect car il contient deux objets au niveau supérieur (appelés dans red):

{ "Version": "2012-10-17", "Statement": { "Effect":"Allow", "Action":"ec2:Describe*", "Resource":"*" } } { "Statement": { "Effect": "Allow", "Action": "s3:*", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" } }

Toutefois, il est possible de rectifier l'exemple précédent à l'aide d'une syntaxe de politique appropriée. Au lieu d'utiliser deux objets de politique complets, avec chacun son propre élément Statement, vous pouvez combiner les deux blocs en un seul élément Statement. La valeur de l'élément Statement est un tableau de deux objets, comme illustré dans l'exemple suivant (marqué en gras) :

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:Describe*", "Resource":" *" }, { "Effect": "Allow", "Action": "s3:*", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" } ] }

Plus d'un élément de JSON déclaration

Au premier abord, cette erreur peut sembler être une variante de celle de la section précédente. Toutefois, d'un point de vue syntaxique, il s'agit d'un type d'erreur différent. L'exemple suivant comporte un seul objet de politique, comme indiqué par la paire de parenthèses { } au premier niveau. Toutefois, cet objet contient deux éléments Statement.

Une IAM politique ne doit contenir qu'un seul Statement élément, à savoir le nom (Statement) apparaissant à gauche de deux points, suivi de sa valeur à droite. La valeur d'un élément Statement doit être un objet, indiqué par des accolades { }, contenant un élément Effect, un élément Action et un élément Resource. L'exemple suivant est incorrect car il contient deux Statement éléments dans l'objet de politique (appelé dans red):

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "ec2:Describe*", "Resource": "*" }, "Statement": { "Effect": "Allow", "Action": "s3:*", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" } }

Un objet de valeur peut être un tableau de plusieurs objets de valeur. Pour résoudre ce problème, combinez les deux éléments Statement en un même élément avec un tableau d'objets, comme illustré dans l'exemple suivant (marqué en gras) :

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:Describe*", "Resource":"*" }, { "Effect": "Allow", "Action": "s3:*", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" } ] }

La valeur de l'élément Statement est un tableau d'objets. Dans cet exemple, le tableau se compose de deux objets, chaque objet étant à lui seul une valeur correcte pour un élément Statement. Chaque objet du tableau est séparé par des virgules.

Plusieurs éléments d'effet, d'action ou de ressource dans un élément de JSON déclaration

Dans la partie valeur de la paire nom/valeur de Statement, l'objet doit comporter uniquement un élément Effect, un élément Action et un élément Resource. La politique suivante est incorrecte car elle comporte deux Effect éléments Statement :

{ "Version": "2012-10-17", "Statement": { "Effect": "Deny", "Effect": "Allow", "Action": "ec2:* ", "Resource": "*" } }
Note

Le moteur de politiques n'autorise pas ce type d'erreurs dans les politiques nouvelles ou modifiées. Il continue toutefois à autoriser les politiques enregistrées avant sa mise à jour. Les politiques existantes contenant l'erreur se comportent comme suit :

  • Plusieurs éléments Effect : seul le dernier élément Effect est pris en compte. Les autres sont ignorés.

  • ActionÉléments multiples : tous les Action éléments sont combinés en interne et traités comme s'il s'agissait d'une seule liste.

  • ResourceÉléments multiples : tous les Resource éléments sont combinés en interne et traités comme s'il s'agissait d'une seule liste.

Le moteur de politique ne vous permet pas d'enregistrer une politique contenant des erreurs syntaxiques. Corrigez les erreurs de la politique avant de sauvegarder. Passez en revue et corrigez toutes les recommandations de validation des politiques pour vos politiques.

Dans chaque cas, la solution consiste à supprimer l'élément supplémentaire incorrect. Pour les Effect éléments, c'est simple : si vous souhaitez que l'exemple précédent refuse les autorisations aux EC2 instances Amazon, vous devez supprimer la ligne "Effect": "Allow", de la politique, comme suit :

{ "Version": "2012-10-17", "Statement": { "Effect": "Deny", "Action": "ec2:* ", "Resource": "*" } }

Toutefois, lorsque l'élément dupliqué est Action ou Resource, la résolution peut s'avérer plus complexe. Vous voulez peut-être autoriser (ou refuser) des autorisations pour plusieurs actions ou vous souhaitez contrôler l'accès à plusieurs ressources. Par exemple, l'exemple suivant est incorrect car il comporte plusieurs Resource éléments (appelés dans red):

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "s3:*", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" } }

Chacun des éléments requis dans l'objet de valeur d'un élément Statement ne doit y figurer qu'une seule fois. La solution consiste à placer chaque valeur dans un tableau. L'exemple suivant illustre cette méthode : les deux éléments Resource sont inclus dans un même élément Resource avec un tableau comme objet de valeur (marqué en gras) :

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "s3:*", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket", "arn:aws:s3:::amzn-s3-demo-bucket/*" ] } }

Élément de JSON version manquant

Un élément de politique Version est différent d'une version de politique. L'élément de politique Version est utilisé dans une politique pour définir la version de la langue de la politique. En comparaison, une version de politique est créée lorsque vous modifiez une politique gérée par le client dansIAM. La politique modifiée ne remplace pas la politique existante. Il IAM crée plutôt une nouvelle version de la politique gérée. Pour en savoir plus sur l'élément de politique Version, consultez IAMJSONéléments de politique : Version. Pour en savoir plus sur les versions de politiques, consultez Politiques de gestion des versions IAM.

En tant que AWS les fonctionnalités évoluent, de nouvelles fonctionnalités sont ajoutées aux IAM politiques pour prendre en charge ces fonctionnalités. Parfois, la mise à jour de la syntaxe de politique inclut un nouveau numéro de version. Si vous utilisez les nouvelles fonctions de la syntaxe de politique dans votre politique, vous devez indiquer le numéro de la version utilisée au moteur d'analyse de politique. Le numéro de version de politique par défaut est « 2008-10-17 ». Si vous voulez utiliser une fonction de politique plus récente, vous devez spécifier le numéro de version prenant en charge cette fonction. Nous vous recommandons de toujours inclure le numéro de version de syntaxe de politique le plus récent, à savoir actuellement "Version": "2012-10-17". Par exemple, la stratégie suivante est incorrecte car elle utilise une variable de stratégie ${...} dans le ARN pour une ressource. Mais il ne parvient pas à spécifier une version de syntaxe de politique qui prend en charge les variables de stratégie (appelées dans red):

{ "Statement": { "Action": "iam:*AccessKey*", "Effect": "Allow", "Resource": "arn:aws:iam::123456789012:user/${aws:username}" } }

L'ajout d'un Version élément en haut de la politique avec la valeur2012-10-17, la première IAM API version qui prend en charge les variables de stratégie, résout ce problème (indiqué en gras) :

{ "Version": "2012-10-17", "Statement": { "Action": "iam:*AccessKey*", "Effect": "Allow", "Resource": "arn:aws:iam::123456789012:user/${aws:username}" } }