Comment résoudre les problèmes d'accès refusé causés par les limites d’autorisations ?

Date de la dernière mise à jour : 21/03/2022

J'ai reçu un message d'erreur d'accès refusé ou non autorisé lorsque j'ai essayé d'accéder à mon service AWS. Comment résoudre les erreurs d'accès refusé sur mon compte AWS ?

Brève description

Il se peut que vous receviez un message d’erreur d'accès refusé ou non autorisé, car votre politique AWS Identity and Access Management (IAM) ne répond pas aux exigences de conditions spécifiques. Vérifiez d'abord les politiques de contrôle des services (SCP) de votre compte, puis vérifiez qu'aucun refus n'est présent dans vos politiques basées sur les ressources. Si cela ne résout pas l'erreur, le problème peut être dû à la présence d'une limite d'autorisations.

Une limite des autorisations est une fonction qui vous permet d'utiliser une politique gérée pour définir les autorisations maximales qu'une politique basée sur l'identité peut accorder à une entité IAM (utilisateur ou rôle). Lorsque vous définissez une limite des autorisations pour une entité, cette entité ne peut effectuer que des actions autorisées par ses politiques basées sur l'identité et sa limite des autorisations.

Remarque : La limite des autorisations définit les autorisations maximales pour une entité, mais n'accorde pas ces autorisations.

Pour résoudre les erreurs d'autorisation, procédez comme suit :

  • Vérifiez si une action est autorisée dans votre politique IAM mais pas dans la limite d’autorisations
  • Incluez toutes les actions requises dans la limite d’autorisations à l'aide de la console IAM
  • Utilisez la clé de condition « iam:PermissionsBoundary » dans votre politique IAM

Résolution

Vérifiez si une action est autorisée dans votre politique IAM, mais pas dans la limite des autorisations

L'exemple suivant montre une action autorisée dans une politique IAM, mais pas dans la limite des autorisations. Dans cet exemple, un utilisateur IAM est attaché à la politique USER_IAM_POLICY :

IAM policy:(USER_IAM_POLICY )
 “Effect”: “Allow”,
            “Action”: [
                “ec2:*”,
                “s3:*”
            ],

Cette politique donne à l'utilisateur un accès complet aux services Amazon Elastic Compute Cloud (Amazon EC2) et Amazon Simple Storage Service (Amazon S3). L'utilisateur dispose également d'une limite des autorisations nommée USER_PB_POLICY définie.

Permissions Boundary:(USER_PB_POLICY)
 “Effect”: “Allow”,
            “Action”: [
                “cloudwatch:*”,
                “s3:*”
            ],

La limite des autorisations définit les autorisations maximales que l'utilisateur peut avoir. Dans cet exemple, cette limite des autorisation permet un accès complet aux services Amazon CloudWatch et Simple Storage Service (Amazon S3). Toutefois, étant donné que Simple Storage Service (Amazon S3) est le seul service autorisé à la fois dans la politique IAM et dans la limite des autorisations, l'utilisateur n'a accès qu'à S3. Si l'utilisateur essaie d'accéder à Amazon EC2, il reçoit une erreur d'accès refusé.

Pour résoudre cette erreur, modifiez la limite des autorisations et autorisez l'accès à Amazon EC2 :

“Effect”: “Allow”,
            “Action”: [
                “cloudwatch:*”,
                “s3:*”,
                “ec2:*”
            ],

Incluez toutes les actions requises dans la limite d’autorisations à l'aide de la console IAM

Suivez ces étapes pour modifier la limite des autorisations afin d'inclure toutes les actions requises par un utilisateur :

  1. Ouvrez la console IAM.
  2. Dans le panneau de navigation, choisissez Rôles/Utilisateurs.
  3. Choisissez l'entité IAM que vous souhaitez modifier.
  4. Dans la section Limite des autorisations, vérifiez vos paramètres. Si une limite des autorisations est définie, cela signifie qu'une limite des autorisations est en place. Le nom de la politique gérée utilisée comme limite des autorisations sur votre entité IAM est répertorié dans cette section.
  5. Développez la politique JSON et vérifiez si l'action dont vous avez besoin figure sur la liste blanche dans la limite des autorisations. Si votre action n'est pas sur liste blanche, modifiez la politique JSON pour autoriser toutes les actions requises par votre entité IAM.

Pour plus d'informations sur la modification des politiques, consultez Modification des politiques IAM.

Utilisez la clé de condition iam:PermissionsBoundary dans vos politiques IAM

Ajoutez la clé de condition iam:PermissionsBoundary à vos politiques IAM. Cette clé de condition vérifie qu'une politique spécifique est attachée en tant que limite des autorisations sur une entité IAM.

L'exemple suivant montre une politique IAM nommée RestrictedRegionPermissionsBoundary :

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "EC2RestrictRegion",
            "Effect": “Allow”,
            "Action": "ec2:*” 
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestedRegion": [
                        "us-east-1"
                   ]
                }
            }
        }

Créez une politique et associez-la à un administrateur délégué chargé de créer des utilisateurs. Lorsque nous attachons l'exemple de poitique suivant à l'administrateur, celui-ci ne peut créer un utilisateur IAM que lorsqu'il attache la politique RestrictedRegionPermissionsBoundary à cet utilisateur. Si l'administrateur essaie de créer un utilisateur IAM sans attacher la politique, il reçoit une erreur d'accès refusé.

{
            "Sid": "CreateUser",
            "Effect": "Allow",
            "Action": [
                "iam:CreateUser"
            ],
            "Resource": "arn:aws:iam::111222333444:user/test1*",
            "Condition": {
                "StringEquals": {
                    "iam:PermissionsBoundary": "arn:aws:iam::111222333444:policy/RestrictedRegionPermissionsBoundary"
                }
            }

Pour définir la politique IAM RestrictedRegionPermissionsBoundary en tant que limite des autorisations lors de la création d'un nouvel utilisateur, procédez comme suit :

  1. Ouvrez la console IAM.
  2. Dans le panneau de navigation, sélectionnez Utilisateurs, puis Ajouter des Utilisateurs.
  3. Entrez le nom d'utilisateur que vous souhaitez modifier, choisissez le type d'accès AWS, puis choisissez Suivant.
  4. Développez la section Définir les limites d’autorisations et choisissez Utiliser une limite d'autorisations pour contrôler les autorisations de rôle maximales.
  5. Dans le champ de recherche, saisissez RestrictedRegionPermissionsBoundary, puis sélectionnez le bouton radio correspondant à votre politique.
  6. Choisissez Next:Tags.
  7. Vérifiez vos paramètres et créez un utilisateur.

Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?