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.
Résoudre les messages d'erreur d'accès refusé avec l'ID d'autorisation (aperçu)
Important
L'utilitaire de résolution des problèmes d'accès est en version préliminaire publique. Ses API sont susceptibles d'être modifiées.
Vue d’ensemble
Quand AWS refuse une demande pour une API prise en charge, la réponse d'erreur d'accès refusé inclut généralement un identifiant d'autorisation. Cet ID fait référence à l'évaluation de l'autorisation pour cette demande refusée. Pour récupérer les détails de l'évaluation et identifier la cause du refus, envoyez une demande au GetRequestAuthorizationDetails API et fournissez l'ID d'autorisation, ou ouvrez le lien présent dans le message d'erreur. Cela vous permet d'identifier la cause d'une demande refusée en un seul appel, plutôt que de résoudre les refus un par un.
Note
AWS ne garantit pas un identifiant d'autorisation pour chaque demande refusée. Voir Lorsque vous ne recevez pas d'identifiant d'autorisation dans ce document.
L'exemple suivant montre un message d'erreur d'accès refusé qui inclut une politique ARN, un lien vers le AWS Console de gestion
User: arn:aws:iam::123456789012:user/janedoe is not authorized to perform: iam:CreateInstanceProfile on resource: arn:aws:iam::123456789012:instance-profile/my-instance-profile with an explicit deny in an identity-based policy: arn:aws:iam::123456789012:policy/ExampleDenyPolicy. Go to https://us-east-1.console.aws.amazon.com/iam/home?region=us-east-1#/authorization-details/EXAMPLE1a2b3c4d5e6f7g8h9i0j for complete details, or call the GetRequestAuthorizationDetails API with the following authorization id: EXAMPLE1a2b3c4d5e6f7g8h9i0j
Concepts et définitions
-
Détails de l'autorisation. Les détails de l'autorisation incluent le contexte de la demande, les évaluations effectuées et les politiques qui ont été évaluées.
-
ID d'autorisation. Identifiant unique inclus dans une réponse d'erreur d'accès refusé prise en charge. Il fait référence à l'évaluation de l'autorisation pour cette demande refusée et correspond à la valeur que vous transmettez au AWS Console de gestion
lien ou GetRequestAuthorizationDetailsAPI. -
Contexte de la demande. Les valeurs des clés de contexte conditionnelles évaluées pour la demande. Cela inclut les clés de contexte de condition globales et les clés de contexte de condition spécifiques au service.
-
Évaluation. Pour chaque action/resource associez dans la demande les clés de contexte conditionnelles appliquées et le résultat évalué :
ALLOW,EXPLICIT_DENY(une politique a explicitement refusé l'action), ouIMPLICIT_DENY(aucune politique n'autorisait l'action), et une référence à chaque politique et déclaration correspondant à action/resource paire. Chaque référence est une politique ARN (pour les politiques gérées) ou un URI (pour les politiques en ligne et autres politiques non gérées) qui est réutilisé tout au long de la réponse. -
Politiques évaluées lors de l'autorisation. Les politiques AWS pris en compte pour la demande, y compris les politiques qui ne correspondaient pas à action/resource paire. Chaque entrée indique le type de politique (par exemple, basée sur l'identité, basée sur les ressources, SCP, RCP, limite d'autorisations ou politique de session) et le même ARN (pour les politiques gérées) ou l'URI utilisé dans les évaluations (pour les politiques en ligne et autres politiques non gérées). Utilisez le ARN ou un URI pour faire correspondre une politique à l'évaluation qui l'a référencée. Le champ « Attaché à » indique le principal ARN du principal auquel la politique évaluée est rattachée.
Utilisez ces résultats conjointement pour identifier quelle politique a refusé l'accès et pourquoi. L'évaluation reflète les politiques telles qu'elles étaient au moment du refus. Les politiques ont peut-être changé depuis lors.
AWS inclut automatiquement un identifiant d'autorisation dans les réponses d'erreur d'accès refusé pour les API prises en charge, mais les identifiants d'autorisation ne sont pas garantis. Dans certains cas, AWS n'enregistre pas les détails d'autorisation en cas de refus, et la réponse d'erreur n'inclut pas d'ID d'autorisation. Lorsque les informations sont enregistrées, elles peuvent ne pas être disponibles immédiatement, car AWS les enregistre de manière asynchrone. Si un appel au GetRequestAuthorizationDetails renvoie une réponse introuvable, attendez quelques instants et réessayez. AWS conserve les informations d'autorisation pendant 24 heures après le refus.
Résoudre les problèmes à l'aide du AWS Console de gestion
Cliquez sur le lien figurant dans le message d'erreur d'accès refusé pour ouvrir les détails de l'autorisation dans la console de résolution des problèmes d'accès.
-
Ce qu'il faut rechercher. La console Access Troubleshooter affiche l'évaluation de chaque action/resource paire dans la requête, le résultat de chacune d'elles (
Allow,Explicit deny, ouImplicit deny) et les politiques qui ont été envisagées. Trouvez la paire qui a été refusée et la politique à l'origine du refus. Consultez la capture d'écran suivante à titre d'exemple :
-
Déterminez si le refus était intentionnel. Passez en revue l'évaluation avant de modifier une politique. Un refus peut être correct, et la cause en est parfois le contexte de la demande plutôt que la politique. Par exemple, il se peut qu'une requête ne comporte pas une balise de session attendue ou qu'elle provienne d'un chemin réseau inattendu.
-
Comment résoudre le refus. Localisez la politique correspondante et mettez-la à jour pour résoudre le problème d'accès. Pour un refus explicite, supprimez ou limitez le
Denydéclaration pour l'action. Pour un refus implicite, ajoutez unAllowdéclaration pour l'action. Pour plus d’informations, consultez Modification de politiques IAM.
Qui peut accéder aux informations d'autorisation. Pour une demande au sein d'un seul compte ou d'une seule organisation, toute personne ayant accès à iam:GetRequestAuthorizationDetails peut accéder aux détails de la demande. Pour une demande qui concerne plusieurs organisations, un utilisateur d'une organisation donnée ne peut voir que les informations relatives à sa propre organisation.
Résoudre les problèmes en utilisant AWS API ou AWS CLI
Pour résoudre un refus à l'aide du AWS API ou AWS CLI:
-
Localisez l'ID d'autorisation dans la réponse d'erreur d'accès refusé.
-
Appel
GetRequestAuthorizationDetailsavec l'identifiant d'autorisation, dans le même Région AWS où le refus s'est produit. L'exemple suivant montre AWS CLI commande :aws iam-toolbox get-request-authorization-details \ --region us-east-1 \ --authorization-id EXAMPLE1a2b3c4d5e6f7g8h9i0j -
Passez en revue les résultats de l'évaluation pour identifier les politiques qui ont refusé l'accès et la raison de ce refus.
-
Mettez à jour les politiques identifiées pour résoudre le problème d'accès. Pour plus d’informations, consultez Modification de politiques IAM.
Lorsque vous ne recevez pas d'identifiant d'autorisation
AWS ne renvoie pas d'identifiant d'autorisation dans les cas suivants :
-
L'autorisation est trop importante pour être enregistrée. Lorsqu'une demande implique un grand nombre de politiques, AWS peut décider de ne pas enregistrer la demande.
-
Le service n'est pas encore pris en charge. Consultez Services pris en charge.
-
L'API n'est pas prise en charge. Certaines API d'un service pris en charge ne renvoient pas d'identifiant d'autorisation.
-
Le type de demande n'est pas pris en charge. Cela inclut les demandes faites par un service en votre nom et les demandes anonymes.
Si vous ne recevez pas d'identifiant d'autorisation, consultez Résolution des problèmes liés aux messages d’erreur d’accès rejeté pour d'autres moyens de diagnostiquer le déni.
Considérations supplémentaires
Autorisations requises. Pour appeler GetRequestAuthorizationDetails, vous devez disposer des autorisations nécessaires pour iam:GetRequestAuthorizationDetails action.
API régionale. GetRequestAuthorizationDetails est une API régionale. Appelez-le de la même manière Région AWS où l'erreur d'accès refusé et l'ID d'autorisation ont été générés.
Cross-organization demandes. Lorsqu'une demande refusée concerne plus d'une organisation, GetRequestAuthorizationDetails renvoie uniquement les informations qui appartiennent à votre propre organisation. Cela vaut dans les deux sens : si vous faites partie de l'organisation de l'appelant refusé, vous ne voyez que les informations relatives à cette organisation. Si vous faites partie de l'organisation de la ressource refusée, seuls les détails relatifs à cette organisation s'affichent. Les informations appartenant à une autre organisation, telles que les politiques de cette organisation ou les valeurs clés contextuelles de cette organisation, ne sont pas renvoyées.
Si vous recevez une erreur d'accès refusé provenant d'une API, d'un service ou d'une région qui n'inclut pas encore d'identifiant d'autorisation, consultez Résolution des problèmes liés aux messages d’erreur d’accès rejeté.
Services pris en charge
La prise en charge de l'utilitaire de résolution des problèmes d'accès est déployée progressivement sur AWS services et Région AWS. Les services suivants prennent en charge l'utilitaire de résolution des problèmes d'accès :
La plupart des API dans Gestion des identités et des accès AWS
La plupart des API d'Amazon Kinesis Data Streams
La plupart des API dans AWS Security Token Service
La plupart des API dans AWS Step Functions