Évaluation des politiques pour les demandes au sein d’un même compte - AWS Identity and Access Management

Évaluation des politiques pour les demandes au sein d’un même compte

Évaluation des politiques pour un rôle IAM

Le diagramme suivant fournit des détails sur la manière dont une décision d’évaluation de politique est prise pour un rôle IAM au sein d’un compte unique.

Organigramme d’évaluation d’un rôle IAM au sein d’un compte unique

Évaluation des politiques pour un utilisateur IAM

Le diagramme suivant fournit des détails sur la manière dont une décision d’évaluation de politique est prise pour un utilisateur IAM au sein d’un compte unique.

Organigramme d’évaluation d’un utilisateur IAM au sein d’un compte unique

Exemple d'évaluation de politique basée sur l'identité et sur les ressources

Les types de politiques les plus courants sont celles basées sur l'identité et les ressources. Lorsque l'accès à une ressource est demandé, AWS évalue toutes les autorisations accordées par les politiques pour au moins une autorisation au sein du même compte. Un rejet explicite dans l'une de ces politiques remplace l'autorisation.

Important

Si la politique basée sur les identités ou celle basée sur les ressources dans le même compte autorise la demande et que l'autre ne l'autorise pas, la demande reste autorisée.

Supposons que le nom d'utilisateur de Carlos soit carlossalazar et que ce dernier essaie d'enregistrer un fichier dans le compartiment Amazon S3 amzn-s3-demo-bucket-carlossalazar-logs.

Supposons également que la politique suivante soit attachée à l'utilisateur IAM carlossalazar.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "AllowS3ListRead", "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:GetAccountPublicAccessBlock", "s3:ListAccessPoints", "s3:ListAllMyBuckets" ], "Resource": "arn:aws:s3:::*" }, { "Sid": "AllowS3Self", "Effect": "Allow", "Action": "s3:*", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket-carlossalazar/*", "arn:aws:s3:::amzn-s3-demo-bucket-carlossalazar" ] }, { "Sid": "DenyS3Logs", "Effect": "Deny", "Action": "s3:*", "Resource": "arn:aws:s3:::*log*" } ] }

L'instruction AllowS3ListRead de cette politique autorise Carlos à afficher une liste de tous les compartiments du compte. L'instruction AllowS3Self accorde à Carlos un accès total au compartiment du même nom que son nom d'utilisateur. L'instruction DenyS3Logs refuse à Carlos l'accès à n'importe quel compartiment S3 comprenant log dans son nom.

De plus, la politique basée sur les ressources suivante (appelée politique de compartiment) est attachée au compartiment amzn-s3-demo-bucket-carlossalazar.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:user/carlossalazar" }, "Action": "s3:*", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket-carlossalazar/*", "arn:aws:s3:::amzn-s3-demo-bucket-carlossalazar" ] } ] }

Cette politique spécifie que seul l'utilisateur carlossalazar peut accéder au compartiment amzn-s3-demo-bucket-carlossalazar.

Lorsque Carlos effectue une demande d'enregistrement d'un fichier dans le compartiment amzn-s3-demo-bucket-carlossalazar-logs, AWS détermine les stratégies qui s'appliquent à la demande. Dans ce cas, seule les politiques basées sur l'identité et les ressources s'appliquent. Il s'agit de deux politiques d'autorisations. La logique d'évaluation est réduite à la logique suivante, car aucune limite d'autorisations ne s'applique.

Diagramme d'évaluation

AWS recherche d'abord une instruction Deny qui s'applique au contexte de la demande. Il en trouve une, car la politique basée sur l'identité refuse explicitement à Carlos l'accès à n'importe quel compartiment S3 utilisé pour la journalisation. Carlos se voit refuser l'accès.

Supposons qu'il réalise ensuite son erreur et essaie d'enregistrer le fichier dans le compartiment amzn-s3-demo-bucket-carlossalazar. AWS recherche une instruction Deny et n'en trouve pas. Ensuite, il vérifie les politiques d'autorisations. La politique basée sur l'identité et celle basée sur les ressources autorisent la demande. Par conséquent, AWS autorise la demande. Si l'un d'entre eux refuse explicitement l'instruction, alors la demande est refusée. Si l'un des types de politique autorise la demande et que l'autre ne l'autorise pas, la demande reste autorisée.