Résoudre les messages d'erreur liés au refus d'accès - AWS Identity and Access Management

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 liés au refus d'accès

Les informations suivantes peuvent vous aider à identifier, diagnostiquer et résoudre les erreurs de refus d'accès avec AWS Identity and Access Management. Les erreurs d'accès refusé apparaissent en cas de refus AWS explicite ou implicite d'une demande d'autorisation.

  • Un refus explicite se produit lorsqu'une politique contient une Deny déclaration pour une AWS action spécifique.

  • Un refus implicite se produit lorsqu'il n'y a ni d'instruction Deny applicable ni d'instruction Allow applicable. Comme une IAM politique refuse un IAM principal par défaut, elle doit explicitement autoriser le principal à effectuer une action. Dans le cas contraire, la politique refuse implicitement l'accès. Pour de plus amples informations, veuillez consulter Différence entre les refus explicites et implicites.

Lorsque vous faites une demande à un service ou à une ressource, plusieurs politiques peuvent s'appliquer à la demande. Passez en revue toutes les politiques applicables en plus de la politique spécifiée dans le message d'erreur.

  • Si plusieurs politiques du même type de politique rejettent une demande, le message d'erreur Accès refusé ne précise pas le nombre de politiques évaluées.

  • Si plusieurs types de politiques refusent une demande d'autorisation, n' AWS inclut qu'un seul de ces types de politique dans le message d'erreur.

Important

Vous rencontrez des difficultés pour vous connecter à AWS ? Assurez-vous que vous êtes sur la bonne page de connexion AWS pour votre type d'utilisateur. Si vous êtes le Utilisateur racine d'un compte AWS (propriétaire du compte), vous pouvez vous connecter à AWS l'aide des informations d'identification que vous avez définies lors de la création du Compte AWS. Si vous êtes un IAM utilisateur, l'administrateur de votre compte peut vous fournir des informations de AWS connexion. Si vous avez besoin d'assistance, n'utilisez pas le lien de commentaires sur cette page. Le formulaire est reçu par l'équipe de AWS documentation, non AWS Support. Sur la page Contactez-nous, sélectionnez Impossible de vous connecter à votre AWS compte, puis choisissez l'une des options d'assistance disponibles.

Je reçois un « accès refusé » lorsque je fais une demande à un AWS service

  • Vérifiez si le message d'erreur inclut le type de politique responsable du refus d'accès. Par exemple, si l'erreur indique que l'accès est refusé en raison d'une politique de contrôle des services (SCP), vous pouvez vous concentrer sur la résolution SCP des problèmes. Une fois que vous avez identifié le type de politique, vous pouvez vérifier s'il n'y a pas de déclarations de refus ou d'actions d'autorisation manquantes dans ces types de politique. Si le message d'erreur n'indique pas le type de politique responsable du refus d'accès, utilisez les autres instructions de cette section pour effectuer un dépannage plus approfondi.

  • Vérifiez que vous avez l'autorisation de politique basée sur l'identité d'appeler l'action et la ressource que vous avez demandées. Si des conditions sont définies, vous devez également respecter ces conditions lorsque vous envoyez la demande. Pour plus d'informations sur l'affichage ou la modification des politiques d'un IAM utilisateur, d'un groupe ou d'un rôle, consultezGestion des IAM politiques.

  • S'il AWS Management Console renvoie un message indiquant que vous n'êtes pas autorisé à effectuer une action, vous devez contacter votre administrateur pour obtenir de l'aide. Votre administrateur vous a fourni vos informations de connexion ou votre lien de connexion.

    L'exemple d'erreur suivant se produit lorsque l'mateojacksonIAMutilisateur tente d'utiliser la console pour afficher les détails d'une my-example-widget ressource fictive mais ne dispose pas des widgets:GetWidget autorisations fictives.

    User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: widgets:GetWidget on resource: my-example-widget

    Dans ce cas, Mateo doit demander à son administrateur de mettre à jour ses politiques pour lui permettre d'accéder à la ressource my-example-widget à l'aide de l'action widgets:GetWidget.

  • Essayez-vous d'accéder à un service qui prend en charge les politiques basées sur les ressources, tel qu'Amazon S3SNS, Amazon ou Amazon ? SQS Si tel est le cas, vérifiez que la politique vous spécifie comme principal et vous accorde l'accès. Si vous effectuez une demande à un service dans votre compte, vos politiques basées sur une identité ou sur les ressources peuvent vous accorder l'autorisation. Si vous effectuez une demande à un service dans un autre compte, vos politiques basées sur une identité et sur les ressources doivent vous accorder l'autorisation. Pour afficher les services qui prennent en charge les politiques basées sur les ressources, veuillez consulter AWS des services qui fonctionnent avec IAM.

  • Si votre politique inclut une condition avec une paire clé-valeur, vérifiez-la attentivement. Les exemples incluent la clé de condition aws:RequestTag/tag-key globale AWS KMS kms:EncryptionContext:encryption_context_key, la clé de condition et la clé de ResourceTag/tag-key condition prises en charge par plusieurs services. Assurez-vous que le nom de clé ne correspond pas à plusieurs résultats. Les noms de clé de condition n'étant pas sensibles à la casse, une condition qui vérifie une clé nommée foo correspond à foo, Foo, ou FOO. Si votre demande comprend plusieurs paires clé-valeur avec des noms de clé qui ne diffèrent que par la casse, votre accès pourrait être inopinément refusé. Pour plus d'informations, veuillez consulter IAMJSONéléments de politique : Condition.

  • Si vous disposez d'une limite d'autorisations, vérifiez que la politique utilisée pour cette dernière autorise votre demande. Si vos politiques basées sur l'identité permettent la demande, mais pas votre limite d'autorisations, la demande est refusée. Une limite d'autorisations contrôle le maximum d'autorisations qu'un IAM principal (utilisateur ou rôle) peut avoir. Les politiques basées sur les ressources ne sont pas limitées par des limites d'autorisations. Les limites d'autorisations ne sont pas courantes. Pour plus d'informations sur le mode AWS d'évaluation des politiques, consultezLogique d'évaluation de politiques.

  • Si vous signez des demandes manuellement (sans utiliser le AWS SDKs), vérifiez que vous les avez correctement signées.

Je reçois un message d'accès refusé lorsque j'effectue une demande avec des informations d'identification de sécurité temporaires

  • Tout d'abord, assurez-vous que l'accès ne vous est pas refusé pour une raison non liée à vos informations d'identification temporaires. Pour plus d'informations, veuillez consulter Je reçois un « accès refusé » lorsque je fais une demande à un AWS service.

  • Pour vérifier que le service accepte les informations d'identification de sécurité temporaires, veuillez consulter AWS des services qui fonctionnent avec IAM.

  • Vérifiez que vos demandes sont signées correctement et que la demande est correctement formée. Pour en savoir plus, veuillez consulter la documentation de votre boîte à outils ou Utilisation d'informations d'identification temporaires avec des ressources AWS.

  • Vérifiez que vos informations d'identification de sécurité temporaires ne sont pas arrivées à expiration. Pour de plus amples informations, veuillez consulter Informations d'identification de sécurité temporaires dans IAM.

  • Vérifiez que l'IAMutilisateur ou le rôle dispose des autorisations appropriées. Les autorisations relatives aux informations d'identification de sécurité temporaires sont dérivées d'un IAM utilisateur ou d'un rôle. Par conséquent, les autorisations sont limitées à celles qui sont accordées au rôle dont vous avez utilisé les informations d'identification temporaires. Pour de plus amples informations sur la définition des autorisations des informations d'identification de sécurité temporaires, veuillez consulter Contrôle des autorisations affectées aux informations d'identification de sécurité temporaires.

  • Si vous avez endossé un rôle, votre session de rôle peut être limitée par les politiques de session. Lorsque vous demandez des informations d'identification de sécurité temporaires par le biais d'un programme AWS STS, vous pouvez éventuellement transmettre des politiques de session en ligne ou gérées. Les politiques de session sont des politiques avancées que vous transmettez en tant que paramètre lorsque vous créez par programmation une session d'informations d'identification temporaires pour un rôle. Vous pouvez transmettre un seul document de politique JSON de session en ligne à l'aide du Policy paramètre. Vous pouvez utiliser le paramètre PolicyArns pour spécifier jusqu'à 10 politiques de session gérées. Les autorisations de la session obtenues sont une combinaison des politiques basées sur l'identité du rôle et des politiques de session. Sinon, si votre administrateur ou un programme personnalisé vous fournit des informations d'identification temporaires, ils peuvent avoir inclus une politique de session pour limiter votre accès.

  • Si vous êtes un utilisateur fédéré, votre session peut être limitée par les politiques de session. Vous devenez un utilisateur fédéré en vous connectant en AWS tant qu'IAMutilisateur, puis en demandant un jeton de fédération. Pour de plus amples informations sur les utilisateurs fédérés, veuillez consulter GetFederationToken : fédération via un broker d'identité personnalisé. Si vous ou votre broker d'identité avez transmis des politiques de session lorsque vous avez demandé un jeton de session, votre session est limitée par ces politiques. Les autorisations de session qui en résultent sont à l'intersection de vos politiques basées sur IAM l'identité utilisateur et des politiques de session. Pour de amples informations sur les politiques de session, veuillez consulter Politiques de session.

  • Si vous accédez à une ressource disposant d'une politique basée sur une ressource à l'aide d'un rôle, vérifiez que la politique accorde des autorisations au rôle. Par exemple, la politique suivante autorise MyRole du compte 111122223333 à accéder à MyBucket.

    { "Version": "2012-10-17", "Statement": [{ "Sid": "S3BucketPolicy", "Effect": "Allow", "Principal": {"AWS": ["arn:aws:iam::111122223333:role/MyRole"]}, "Action": ["s3:PutObject"], "Resource": ["arn:aws:s3:::MyBucket/*"] }] }

Exemples de messages d'erreur d'accès refusé

La plupart des messages d'erreur d'accès refusé se présentent sous le format User user is not authorized to perform action on resource because context. Dans cet exemple, user est le nom de la ressource Amazon (ARN) à laquelle l'accès n'est pas autorisé, action est l'action de service refusée par la politique, et resource est ARN la ressource sur laquelle la politique agit. Le context le champ représente un contexte supplémentaire sur le type de politique qui explique pourquoi la politique a refusé l'accès.

Lorsqu'une politique refuse explicitement l'accès parce qu'elle contient une Deny instruction, elle AWS inclut la phrase with an explicit deny in a type policy dans le message d'erreur d'accès refusé. Lorsque la politique refuse implicitement l'accès, AWS inclut la phrase because no type policy allows the action action dans le message d'erreur d'accès refusé.

Note

Certains AWS services ne prennent pas en charge ce format de message d'erreur de refus d'accès. Le contenu des messages d'erreur d'accès refusé peut varier en fonction du service à l'origine de la demande d'autorisation.

Les exemples suivants montrent le format pour différents types de messages d'erreur d'accès refusé.

Accès refusé en raison d'une politique de contrôle des services - refus implicite

  1. Vérifiez qu'il n'y a pas de Allow déclaration manquante concernant l'action dans vos politiques de contrôle des services (SCPs). Pour l'exemple suivant, l'action est codecommit:ListRepositories.

  2. Mettez à jour votre déclaration en SCP ajoutant la Allow déclaration. Pour plus d'informations, consultez la section Mise à jour d'un SCP dans le guide de AWS Organizations l'utilisateur.

User: arn:aws:iam::777788889999:user/JohnDoe is not authorized to perform: codecommit:ListRepositories because no service control policy allows the codecommit:ListRespositories action

Accès refusé en raison d'une politique de contrôle des services - refus explicite

  1. Recherchez une Deny déclaration pour l'action dans vos politiques de contrôle des services (SCPs). Pour l'exemple suivant, l'action est codecommit:ListRepositories.

  2. Mettez à jour votre déclaration en SCP supprimant Deny cette déclaration. Pour plus d'informations, consultez la section Mise à jour d'un SCP dans le guide de AWS Organizations l'utilisateur.

User: arn:aws:iam::777788889999:user/JohnDoe is not authorized to perform: codecommit:ListRepositories with an explicit deny in a service control policy

Accès refusé en raison d'une politique relative aux VPC terminaux : refus implicite

  1. Vérifiez qu'il n'y a pas de Allow déclaration manquante concernant l'action dans vos politiques de point de terminaison Virtual Private Cloud (VPC). Pour l'exemple suivant, l'action est codecommit:ListRepositories.

  2. Mettez à jour votre politique de VPC point de terminaison en ajoutant la Allow déclaration. Pour plus d'informations, consultez la section Mettre à jour une politique de VPC point de terminaison dans le AWS PrivateLink Guide.

User: arn:aws:iam::123456789012:user/JohnDoe is not authorized to perform: codecommit:ListRepositories because no VPC endpoint policy allows the codecommit:ListRepositories action

Accès refusé en raison d'une politique relative aux VPC terminaux : refus explicite

  1. Vérifiez la présence d'une Deny déclaration explicite concernant l'action dans vos politiques de point de terminaison Virtual Private Cloud (VPC). Pour l'exemple suivant, l'action est codedeploy:ListDeployments.

  2. Mettez à jour votre politique relative aux VPC terminaux en supprimant l'Denyinstruction. Pour plus d'informations, consultez la section Mettre à jour une politique de VPC point de terminaison dans le AWS PrivateLink Guide.

User: arn:aws:iam::123456789012:user/JohnDoe is not authorized to perform: codedeploy:ListDeployments on resource: arn:aws:codedeploy:us-east-1:123456789012:deploymentgroup:* with an explicit deny in a VPC endpoint policy

Accès refusé en raison d'une limite des autorisations : refus implicite

  1. Vérifiez l'absence d'une instruction Allow pour l'action dans votre limite des autorisations. Pour l'exemple suivant, l'action est codedeploy:ListDeployments.

  2. Mettez à jour vos limites d'autorisations en ajoutant la Allow déclaration à votre IAM politique. Pour plus d’informations, consultez Limites d'autorisations pour les entités IAM et Modification de politiques IAM.

User: arn:aws:iam::123456789012:user/JohnDoe is not authorized to perform: codedeploy:ListDeployments on resource: arn:aws:codedeploy:us-east-1:123456789012:deploymentgroup:* because no permissions boundary allows the codedeploy:ListDeployments action

Accès refusé en raison d'une limite des autorisations : refus explicite

  1. Vérifiez la présence d'une instruction Deny explicite pour l'action dans votre limite des autorisations. Pour l'exemple suivant, l'action est sagemaker:ListModels.

  2. Mettez à jour vos limites d'autorisations en supprimant la Deny déclaration de votre IAM politique. Pour plus d’informations, consultez Limites d'autorisations pour les entités IAM et Modification de politiques IAM.

User: arn:aws:iam::777788889999:user/JohnDoe is not authorized to perform: sagemaker:ListModels with an explicit deny in a permissions boundary

Accès refusé en raison de politiques de session : refus implicite

  1. Vérifiez l'absence d'une instruction Allow pour l'action dans vos politiques de session. Pour l'exemple suivant, l'action est codecommit:ListRepositories.

  2. Mettez à jour votre politique de session en ajoutant l'instruction Allow. Pour plus d'informations, veuillez consulter les rubriques Politiques de session et Modification de politiques IAM.

User: arn:aws:iam::123456789012:user/JohnDoe is not authorized to perform: codecommit:ListRepositories because no session policy allows the codecommit:ListRepositories action

Accès refusé en raison de politiques de session : refus explicite

  1. Vérifiez la présence d'une instruction Deny explicite pour l'action dans vos politiques de session. Pour l'exemple suivant, l'action est codedeploy:ListDeployments.

  2. Mettez à jour votre politique de session en supprimant l'instruction Deny. Pour plus d'informations, veuillez consulter les rubriques Politiques de session et Modification de politiques IAM.

User: arn:aws:iam::123456789012:user/JohnDoe is not authorized to perform: codedeploy:ListDeployments on resource: arn:aws:codedeploy:us-east-1:123456789012:deploymentgroup:* with an explicit deny in a sessions policy

Accès refusé en raison de politiques basées sur les ressources : refus implicite

  1. Vérifiez l'absence d'une instruction Allow pour l'action dans votre politique basée sur les ressources. Pour l'exemple suivant, l'action est secretsmanager:GetSecretValue.

  2. Mettez à jour votre politique en ajoutant l'instruction Allow. Pour plus d'informations, veuillez consulter les rubriques Politiques basées sur les ressources et Modification de politiques IAM.

User: arn:aws:iam::123456789012:user/JohnDoe is not authorized to perform: secretsmanager:GetSecretValue because no resource-based policy allows the secretsmanager:GetSecretValue action

Accès refusé en raison de politiques basées sur les ressources : refus explicite

  1. Vérifiez la présence d'une instruction Deny explicite pour l'action dans votre politique basée sur les ressources. Pour l'exemple suivant, l'action est secretsmanager:GetSecretValue.

  2. Mettez à jour votre politique en supprimant l'instruction Deny. Pour plus d'informations, veuillez consulter les rubriques Politiques basées sur les ressources et Modification de politiques IAM.

User: arn:aws:iam::123456789012:user/JohnDoe is not authorized to perform: secretsmanager:GetSecretValue on resource: arn:aws:secretsmanager:us-east-1:123456789012:secret:* with an explicit deny in a resource-based policy

Accès refusé en raison de politiques d'approbation de rôle : refus implicite

  1. Vérifiez l'absence d'une instruction Allow pour l'action dans votre politique d'approbation de rôle. Pour l'exemple suivant, l'action est sts:AssumeRole.

  2. Mettez à jour votre politique en ajoutant l'instruction Allow. Pour plus d'informations, veuillez consulter les rubriques Politiques basées sur les ressources et Modification de politiques IAM.

User: arn:aws:iam::123456789012:user/JohnDoe is not authorized to perform: sts:AssumeRole because no role trust policy allows the sts:AssumeRole action

Accès refusé en raison de politiques d'approbation de rôle : refus explicite

  1. Vérifiez la présence d'une instruction Deny explicite pour l'action dans votre politique d'approbation de rôle. Pour l'exemple suivant, l'action est sts:AssumeRole.

  2. Mettez à jour votre politique en supprimant l'instruction Deny. Pour plus d'informations, veuillez consulter les rubriques Politiques basées sur les ressources et Modification de politiques IAM.

User: arn:aws:iam::777788889999:user/JohnDoe is not authorized to perform: sts:AssumeRole with an explicit deny in the role trust policy

Accès refusé en raison de politiques basées sur l'identité : refus implicite

  1. Vérifiez l'absence d'une instruction Allow pour l'action dans les politiques basées sur l'identité attachées à l'identité. Dans l'exemple suivant, l'action est codecommit:ListRepositories associée au rôleHR.

  2. Mettez à jour votre politique en ajoutant l'instruction Allow. Pour plus d'informations, veuillez consulter les rubriques Politiques basées sur l'identité et Modification de politiques IAM.

User: arn:aws:iam::123456789012:role/HR is not authorized to perform: codecommit:ListRepositories because no identity-based policy allows the codecommit:ListRepositories action

L'accès est refusé en raison de politiques basées sur l'identité : refus explicite

  1. Vérifiez la présence d'une instruction Deny explicite pour l'action dans les politiques basées sur l'identité attachées à l'identité. Dans l'exemple suivant, l'action est codedeploy:ListDeployments associée au rôleHR.

  2. Mettez à jour votre politique en supprimant l'instruction Deny. Pour plus d'informations, veuillez consulter les rubriques Politiques basées sur l'identité et Modification de politiques IAM.

User: arn:aws:iam::123456789012:role/HR is not authorized to perform: codedeploy:ListDeployments on resource: arn:aws:codedeploy:us-east-1:123456789012:deploymentgroup:* with an explicit deny in an identity-based policy

L'accès est refusé lorsqu'une VPC demande échoue en raison d'une autre politique

  1. Vérifiez la présence d'une Deny déclaration explicite pour l'action dans vos politiques de contrôle des services (SCPs). Pour l'exemple suivant, l'action est SNS:Publish.

  2. Mettez à jour votre déclaration en SCP supprimant Deny cette déclaration. Pour plus d'informations, consultez la section Mise à jour d'un SCP dans le guide de AWS IAM Identity Center l'utilisateur.

User: arn:aws:sts::111122223333:assumed-role/role-name/role-session-name is not authorized to perform: SNS:Publish on resource: arn:aws:sns:us-east-1:444455556666:role-name-2 with an explicit deny in a VPC endpoint policy transitively through a service control policy