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'instructionAllow
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
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'
mateojackson
IAMutilisateur tente d'utiliser la console pour afficher les détails d'une
ressource fictive mais ne dispose pas desmy-example-widget
widgets:
autorisations fictives.GetWidget
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
à l'aide de l'actionmy-example-widget
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:
, la clé de condition et la clé deencryption_context_key
ResourceTag/
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éetag-key
foo
correspond àfoo
,Foo
, ouFOO
. 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ètrePolicyArns
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 compte111122223333
à 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
. Dans cet exemple, user
is not authorized to perform
action
on resource
because
context
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
dans le message d'erreur d'accès refusé. Lorsque la politique refuse implicitement l'accès, AWS inclut la phrase type
policybecause no
dans le message d'erreur d'accès refusé.type
policy allows the
action
action
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
-
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 estcodecommit:ListRepositories
. -
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
-
Recherchez une
Deny
déclaration pour l'action dans vos politiques de contrôle des services (SCPs). Pour l'exemple suivant, l'action estcodecommit:ListRepositories
. -
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
-
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 estcodecommit:ListRepositories
. -
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
-
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 estcodedeploy:ListDeployments
. -
Mettez à jour votre politique relative aux VPC terminaux en supprimant l'
Deny
instruction. 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
-
Vérifiez l'absence d'une instruction
Allow
pour l'action dans votre limite des autorisations. Pour l'exemple suivant, l'action estcodedeploy:ListDeployments
. -
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
-
Vérifiez la présence d'une instruction
Deny
explicite pour l'action dans votre limite des autorisations. Pour l'exemple suivant, l'action estsagemaker:ListModels
. -
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
-
Vérifiez l'absence d'une instruction
Allow
pour l'action dans vos politiques de session. Pour l'exemple suivant, l'action estcodecommit:ListRepositories
. -
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
-
Vérifiez la présence d'une instruction
Deny
explicite pour l'action dans vos politiques de session. Pour l'exemple suivant, l'action estcodedeploy:ListDeployments
. -
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
-
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 estsecretsmanager:GetSecretValue
. -
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
-
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 estsecretsmanager:GetSecretValue
. -
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
-
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 eststs:AssumeRole
. -
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
-
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 eststs:AssumeRole
. -
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
-
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 estcodecommit:ListRepositories
associée au rôleHR
. -
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
-
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 estcodedeploy:ListDeployments
associée au rôleHR
. -
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
-
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 estSNS:Publish
. -
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