Exemple d'utilisation d'attributs pour une stratégie de contrôle d'accès - Amazon Cognito

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Exemple d'utilisation d'attributs pour une stratégie de contrôle d'accès

Découvrez un scénario dans lequel un employé du service juridique d'une société doit répertorier tous les fichiers figurant dans des compartiments appartenant à son département, qui sont classés en fonction de leur niveau de sécurité. Supposons que le jeton que cet employé reçoit du fournisseur d'identité contient les revendications suivantes.

Revendications

{ . . "sub" : "57e7b692-4f66-480d-98b8-45a6729b4c88", "department" : "legal", "clearance" : "confidential", . . }

Ces attributs peuvent être mappés à des balises et référencés dans les politiques d'IAMautorisation en tant que balises principales. Vous pouvez désormais gérer l'accès en modifiant le profil utilisateur du côté fournisseur d'identité. Vous pouvez également modifier les attributs du côté ressource en utilisant des noms ou des étiquettes sans modifier la stratégie elle-même.

La stratégie d'autorisations suivante fait deux choses :

  • Elle permet de répertorier l'accès à tous les compartiments S3 qui se terminent par un préfixe correspondant au nom de service de l'utilisateur.

  • Elle permet d'accéder en lecture aux fichiers figurant dans ces compartiments pour autant que l'étiquette d'autorisation sur le fichier corresponde à l'attribut d'autorisation de l'utilisateur.

Politique d'autorisations

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:List*", "Resource": "arn:aws:s3:::*-${aws:PrincipalTag/department}" }, { "Effect": "Allow", "Action": "s3:GetObject*", "Resource": "arn:aws:s3:::*-${aws:PrincipalTag/department}/*", "Condition": { "StringEquals": { "s3:ExistingObjectTag/clearance": "${aws:PrincipalTag/clearance}" } } } ] }

La stratégie d'approbation détermine qui peut assumer ce rôle. La stratégie de relation d'approbation permet d'utiliser sts:AssumeRoleWithWebIdentity et sts:TagSession pour autoriser l'accès. Elle ajoute des conditions pour limiter la politique à la réserve d'identités que vous avez créée, et elle garantit que la politique est destinée à un rôle authentifié.

Politique d’approbation

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "cognito-identity.amazonaws.com" }, "Action": [ "sts:AssumeRoleWithWebIdentity", "sts:TagSession" ], "Condition": { "StringEquals": { "cognito-identity.amazonaws.com:aud": "IDENTITY-POOL-ID" }, "ForAnyValue:StringLike": { "cognito-identity.amazonaws.com:amr": "authenticated" } } } ] }