Comment puis-je résoudre les problèmes de refus d'accès causés par les limites des autorisations ?

Lecture de 5 minute(s)
0

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 puis-je résoudre les erreurs de refus d'accès sur mon compte AWS ?

Brève description

Il est possible 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 spécifiques. Tout d'abord, passez en revue les politiques de contrôle des services (SCP) de votre compte, puis vérifiez qu'aucun refus ne figure dans vos politiques basées sur les ressources. Si cela ne permet pas de résoudre l'erreur, le problème peut être dû à la présence d'une limite d'autorisations.

Une limite d'autorisations est une fonctionnalité 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 d'autorisations pour une entité, cette entité ne peut effectuer que des actions autorisées à la fois par ses politiques basées sur l'identité et par ses limites d'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 des autorisations
  • Incluez toutes les actions requises dans la limite des 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, la politique USER \ _IAM \ _POLICY est associée à un utilisateur IAM :

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 d'autorisations nommée USER \ _PB \ _POLICY.

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

La limite des autorisations définit les autorisations maximales que l'utilisateur peut exécuter. Dans cet exemple, cette limite d'autorisation permet un accès complet aux services Amazon CloudWatch et Amazon S3. Toutefois, étant donné qu'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 un message d'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 des autorisations à l'aide de la console IAM

Procédez comme suit pour modifier la limite des autorisations afin d'inclure toutes les actions requises par un utilisateur :

  1. Ouvrez la console IAM.
  2. Dans le volet de navigation, choisissez Rôles/Utilisateurs.
  3. Choisissez l'entité IAM que vous souhaitez modifier.
  4. Dans la section Limites 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 requise figure sur la liste blanche dans la limite des autorisations. Si votre action ne figure pas sur la 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 la section 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 d'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 associons l'exemple de politique suivant à l'administrateur, celui-ci ne peut créer un utilisateur IAM que s'il associe la politique RestrictedRegionPermissionsBoundary de cet utilisateur. Si l'administrateur essaie de créer un utilisateur IAM sans joindre la politique, il reçoit un message d'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 comme limite des autorisations lors de la création d'un nouvel utilisateur, procédez comme suit :

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

Informations connexes

Limites des autorisations pour les entités IAM

Évaluation des autorisations effectives avec des limites

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 2 ans