Résolution des problèmes généraux d'IAM - AWS Identity and Access Management

Résolution des problèmes généraux d'IAM

Utilisez les informations ici pour vous aider à diagnostiquer et résoudre les problèmes d'accès refusé ou d'autres problèmes courants lorsque vous utilisez AWS Identity and Access Management (IAM).

Je ne peux pas me connecter à mon compte AWS

Vérifiez que vous disposez des informations d'identification correctes et que vous utilisez la bonne méthode pour vous connecter. Pour plus d'informations, consultez Résolution des problèmes de connexion dans le Guide de l'utilisateur Connexion à AWS.

J'ai perdu mes clés d'accès

Les clés d'accès se composent de deux parties :

  • Identificateur de clé d'accès. Cet élément n'est pas secret et peut être affiché dans la console IAM partout où les clés d'accès sont répertoriées, comme sur la page de récapitulatif de l'utilisateur.

  • Clé d'accès secrète. Cette partie est fournie lorsque vous créez initialement la paire de clés d'accès. Tout comme un mot de passe, elle ne peut pas être récupérée ultérieurement. Si vous perdez votre clé d'accès secrète, vous devez créer une nouvelle paire de clés d'accès. Si vous disposez déjà du nombre maximum de clés d'accès, vous devez supprimer une paire existante avant de pouvoir en créer une autre.

Pour plus d'informations, veuillez consulter Réinitialisation de vos mots de passe ou clés d'accès perdus ou oubliés pour AWS.

Je reçois un message d'accès refusé lorsque j'effectue une demande à un service AWS

  • 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 le dépannage des problèmes SCP. Une fois que vous connaissez le type de politique, vous pouvez rechercher une instruction de refus ou une autorisation manquante sur l'action spécifique dans les politiques de ce type. Pour plus d'informations, veuillez consulter Résolution des problèmes liés aux messages d'erreur d'accès rejeté. 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 de politiques pour un utilisateur, un groupe ou un rôle IAM, veuillez consulter Gestion des politiques IAM.

  • Si l'outil AWS Management Console renvoie un message qui indique que vous n'êtes pas autorisé à exécuter 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 quand l'utilisateur IAM mateojackson tente d'utiliser la console pour afficher des informations détaillées sur une ressource my-example-widget fictive, mais ne dispose pas des autorisations widgets:GetWidget 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 prenant en charge des politiques basées sur les ressources, tel que Amazon S3, Amazon SNS 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 Services AWS qui fonctionnent avec IAM.

  • Si votre politique inclut une condition avec une paire clé-valeur, vérifiez-la attentivement. Les exemples contiennent la clé de condition globale aws:RequestTag/tag-key, la clé AWS KMS kms:EncryptionContext:encryption_context_key et la clé de condition ResourceTag/tag-key prise 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 Éléments de politique JSON IAM : 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 les autorisations maximum dont peut disposer un principal IAM (utilisateur ou rôle). 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 la manière dont AWS évalue ces politiques, veuillez consulter Logique d'évaluation de politiques.

  • Si vous signez des demandes manuellement (sans utiliser les kits SDK AWS), vérifiez que vous avez correctement signé la demande.

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 message d'accès refusé lorsque j'effectue une demande à un service AWS.

  • Pour vérifier que le service accepte les informations d'identification de sécurité temporaires, veuillez consulter Services AWS 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 plus d'informations, veuillez consulter Informations d'identification de sécurité temporaires dans IAM.

  • Vérifiez que l'utilisateur ou le rôle IAM dispose des autorisations adéquates. Les autorisations pour les informations d'identification de sécurité temporaires sont dérivées d'un utilisateur ou d'un rôle IAM. 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 programmation à l'aide de l'outil AWS STS, vous pouvez, si vous le souhaitez, 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 de session en ligne JSON à l'aide du paramètre Policy. 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 à AWS en tant qu'utilisateur IAM, 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 la session obtenues sont une combinaison des politiques basées sur l'identité de l'utilisateur IAM 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/*"] }] }

Les variables de la politique ne fonctionnent pas

  • Vérifiez que toutes les politiques incluant des variables contiennent le numéro de version suivant : "Version": "2012-10-17". Sans le numéro de version approprié, les variables ne sont pas remplacées lors de l'évaluation. Au contraire, les variables sont évaluées littéralement. Toutes les politiques n'incluant pas de variables continueront de fonctionner si vous incluez le numéro de version le plus récent.

    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 revanche, une version de politique est créée lorsque vous apportez des modifications à une politique gérée par le client dans IAM. La politique modifiée ne remplace pas la politique existante. À la place, IAM crée une nouvelle version de la politique gérée. Pour en savoir plus sur l'élément de politique Version, consultez Éléments de politique JSON IAM : Version. Pour en savoir plus sur les versions de politiques, consultez Gestion des versions des politiques IAM.

  • Vérifiez que vos variables de politique sont dans la casse correcte. Pour plus d'informations, veuillez consulter Éléments des politiques IAM : variables et balises.

Les modifications que j'apporte ne sont pas toujours visibles immédiatement

En tant que service auquel on accède avec des ordinateurs situés dans des centres de données du monde entier, IAM utilise un modèle d'informatique distribuée appelé cohérence éventuelle. Les modifications que vous apportez à IAM (ou à d'autres services AWS), y compris les balises utilisées dans le contrôle d'accès basé sur les attributs (ABAC, attribute-based access control), nécessitent un certain temps avant de devenir visibles de tous les points de terminaison possibles. Une partie du retard s'explique par le temps requis pour envoyer les données d'un serveur à un autre, d'une zone de réplication à une autre et d'une région à une autre dans le monde entier. IAM utilise également la mise en cache pour améliorer les performances mais, dans certains cas, cela peut ralentir le processus. La modification peut ne pas être visible tant que les données mises en cache précédemment n'arrivent pas à expiration.

Vous devez concevoir vos applications globales de sorte qu'elles tiennent compte de ces retards potentiels. Assurez-vous qu'elles fonctionnent comme prévu, même lorsqu'une modification effectuée à un emplacement n'est pas visible instantanément à un autre. Les modifications peuvent être la création ou la mise à jour d'utilisateurs, de groupes, de rôles ou de politiques. Nous vous recommandons de ne pas inclure ce type de modifications IAM dans les chemins de code critique et haute disponibilité de votre application. Au lieu de cela, procédez aux modifications IAM dans une routine d'initialisation ou d'installation distincte que vous exécutez moins souvent. Veillez également à vérifier que les modifications ont été propagées avant que les processus de production en dépendent.

Pour plus d'informations sur la manière dont d'autres services AWS sont affectés par ce retard, veuillez consulter les ressources suivantes :

Je ne suis pas autorisé à exécuter iam:DeleteVirtualMFADevice

L'erreur suivante peut s'afficher lorsque vous tentez d'attribuer ou de supprimer un dispositif MFA virtuel pour vous-même ou d'autres personnes :

User: arn:aws:iam::123456789012:user/Diego is not authorized to perform: iam:DeleteVirtualMFADevice on resource: arn:aws:iam::123456789012:mfa/Diego with an explicit deny

Elle peut se produire si quelqu'un a commencé à assigner un dispositif MFA virtuel à un utilisateur dans la console IAM et a annulé le processus. Cela crée un dispositif MFA virtuel pour l'utilisateur dans IAM, mais ne l'affecte jamais à l'utilisateur. Vous devez supprimer le dispositif MFA virtuel existant avant de pouvoir en créer un nouveau portant le même nom.

Pour résoudre ce problème, l'administrateur ne doit pas modifier les autorisations de politique. Au lieu de cela, l'administrateur doit utiliser l'AWS CLI ou l'API AWS pour supprimer le dispositif MFA virtuel existant, mais non attribué.

Supprimer un dispositif MFA virtuel existant, mais non attribué
  1. Affichez les dispositifs MFA virtuels de votre compte.

  2. Dans la réponse, localisez l'ARN du dispositif MFA virtuel pour l'utilisateur que vous essayez de réparer.

  3. Supprimez le dispositif MFA virtuel.

Comment créer des utilisateurs IAM en toute sécurité ?

Si certains de vos employés ont besoin d'accéder à AWS, vous pouvez choisir de créer des utilisateurs IAM ou d'utiliser IAM Identity Center pour l'authentification. Si vous utilisez IAM, AWS vous recommande de créer un utilisateur IAM et de communiquer en toute sécurité les informations d'identification à l'employé. Si vous ne vous trouvez pas physiquement à côté de votre employé, utilisez un flux de travail sécurisé pour communiquer les informations d'identification à celui-ci.

Utilisez le flux de travail suivant pour créer en toute sécurité un utilisateur dans IAM :

  1. Créez un utilisateur à l'aide de la AWS Management Console. Choisissez d'accorder l'accès à la AWS Management Console à l'aide d'un mot de passe généré automatiquement. Si nécessaire, cochez la case Les utilisateurs doivent créer un mot de passe à leur prochaine connexion. N'ajoutez pas de politique d'autorisations à l'utilisateur tant que celui-ci n'a pas modifié son mot de passe.

  2. Une fois l'utilisateur ajouté, copiez l'URL de connexion, le nom d'utilisateur et le mot de passe du nouvel utilisateur. Pour afficher le mot de passe, choisissez afficher.

  3. Envoyez le mot de passe à votre employé à l'aide d'une méthode de communication sécurisée dans votre entreprise, par exemple, par e-mail, chat ou système de tickets. Séparément, fournissez à vos utilisateurs le lien de la console utilisateur IAM et leur nom d'utilisateur. Demandez à l'employé de vous confirmer qu'il peut se connecter correctement avant de lui accorder des autorisations.

  4. Une fois que l'employé vous a confirmé cela, ajoutez les autorisations dont il a besoin. Pour des raisons de sécurité, il est recommandé d'ajouter une politique qui exige que l'utilisateur s'authentifie à l'aide de MFA pour gérer ses informations d'identification. Pour un exemple de politique, veuillez consulter AWS : autorise les utilisateurs IAM authentifiés par MFA à gérer leurs propres informations d'identification sur la page Mes informations d'identification de sécurité.

Ressources supplémentaires

Les ressources suivantes peuvent s'avérer dangereuses lorsque vous travaillez avec AWS.