Comment puis-je résoudre les problèmes liés aux changements des rôles IAM à l'aide de la console de gestion AWS ?

Date de la dernière mise à jour : 05/04/2022

J'ai essayé de changer les rôles AWS Identity and Access Management (IAM) à l'aide de la console de gestion AWS et j'ai reçu une erreur similaire à la suivante :

« Informations non valides dans un ou plusieurs champs. Vérifiez vos informations ou contactez votre administrateur. »

Brève description

Cette erreur peut se produire pour les raisons suivantes :

  • Autorisations de l'action AssumeRole incorrectes
  • Stratégie d'approbation IAM incorrecte
  • Refus explicite des politiques
  • ID de compte ou nom de rôle incorrect
  • ID externe nécessaire pour changer les rôles
  • Conditions de la politique d'approbation incorrectes

Solution

Suivez ces instructions pour vérifier la configuration de la politique IAM afin de changer les rôles IAM pour votre scénario.

Autorisations de l'action AssumeRole manquantes ou incorrectes

Pour passer à un rôle IAM, l'entité IAM doit disposer de l'autorisation d'action AssumeRole. L'entité IAM doit disposer d'une politique avec une autorisation de l'action AssumeRole similaire à la suivante :

{
  "Version": "2012-10-17",
  "Statement": {
    "Effect": "Allow",
    "Action": "sts:AssumeRole",
    "Resource": "arn:aws:iam::account_id_number:role/role-name-you-want-to-assume"  
}

Assurez-vous que la ressource correspond à l'Amazon Resource Name (ARN) du rôle IAM que vous souhaitez endosser. Pour plus d'informations, consultez la section Octroi d'autorisations à un utilisateur pour endosser un rôle.

La politique d'approbation des rôles IAM ne fait pas confiance à l'ID de compte de l'utilisateur IAM

La politique d'approbation des rôles IAM définit les mandataires qui peuvent assumer le rôle Vérifier que la politique d'approbation répertorie l'ID de compte de l'utilisateur IAM en tant qu'entité mandataire approuvée. Par exemple, un utilisateur IAM nommé Bob avec l'ID de compte 111222333444 souhaite endosser un rôle IAM nommé Alice pour l'ID de compte 444555666777. L'ID de compte 111222333444 est le compte de confiance, et l'ID de compte 444555666777 est le compte de confiance. Le rôle IAM Alice possède une politique d'approbation qui fait confiance à Bob, similaire à la suivante :

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Principal": {
                "AWS": “<111222333444>
            },
            "Condition": {}
        }
    ]
}

Remarque : il est recommandé de suivre le principe du moindre privilège et de spécifier l'ARN complet uniquement pour les rôles dont l'utilisateur a besoin.

Pour plus d'informations, consultez la section Modification d'une politique d'approbation de rôle (console).

Refus explicite des politiques de contrôle des services (SCP) ou d'une politique IAM

Si votre compte AWS fait partie d'une organisation AWS, votre compte de gestion peut avoir des SCP. Assurez-vous qu'il n'y a pas de refus explicite de la part des SCP pour l'action AssumeRole. Recherchez les SCP qui refusent les actions d'API en fonction des régions AWS. AWS Security Token Service (AWS STS) est un service mondial qui doit être inclus dans la liste d'exclusion mondiale des services. Assurez-vous qu'il n'y a pas de refus explicite de la part des politiques IAM, car les instructions "deny" (rejeter) ont priorité sur les instructions "allow" (autoriser).

Pour plus d'informations, consultez la section Refuser l'accès à AWS en fonction de la région AWS demandée.

Vérifier l'ID de compte AWS et le nom du rôle IAM

Vérifiez que l'ID de compte et le nom du rôle IAM sont corrects sur la page de changement de rôle. L'ID de compte est un identifiant à 12 chiffres et le nom du rôle IAM est le nom du rôle que vous souhaitez assumer.

Pour plus d'informations, consultez la section Choses à savoir sur le changement de rôle dans la console.

ID externe nécessaire pour basculer vers le rôle IAM

Les administrateurs peuvent utiliser un ID externe pour permettre à des tiers d'accéder aux ressources AWS. Vous ne pouvez pas basculer les rôles IAM dans la console de gestion AWS vers un rôle qui nécessite une valeur de clé dont la condition est ExternalId. Vous pouvez changer les rôles IAM uniquement en appelant l'action AssumeRole qui prend en charge la clé ExternalID.

Pour plus d'informations, consultez la section Utilisation d'un ID externe lorsque vous permettez à un tiers d'accéder à vos ressources AWS.

Conditions valables relatives à la politique d'approbation des rôles IAM

Vérifiez que vous remplissez toutes les conditions spécifiées dans la politique d'approbation du rôle IAM. Une condition peut spécifier une date d'expiration, spécifier un ID externe ou bien encore indiquer que les demandes doivent provenir uniquement d'adresses IP spécifiques. Dans l'exemple de politique suivant, si la date actuelle est postérieure à la date spécifiée, la condition est fausse. La politique ne peut pas accorder les autorisations nécessaires pour assumer le rôle IAM.

"Effect": "Allow",
    "Action": "sts:AssumeRole",
    "Resource": "arn:aws:iam::account_id_number:role/role-name-you-want-to-assume"
    "Condition": {
        "DateLessThan" : {
            "aws:CurrentTime" : "2016-05-01T12:00:00Z"
        }
    }