Stratégies basées sur l’identité pour AWS AppSync - AWS AppSync GraphQL

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.

Stratégies basées sur l’identité pour AWS AppSync

Par défaut, les utilisateurs et les rôles ne sont pas autorisés à créer ou modifier les ressources AWS AppSync. Ils ne peuvent pas non plus effectuer de tâches à l'aide de l'API AWS Management Console, AWS Command Line Interface (AWS CLI) ou de AWS l'API. Pour octroyer aux utilisateurs des autorisations d’effectuer des actions sur les ressources dont ils ont besoin, un administrateur IAM peut créer des politiques IAM. L’administrateur peut ensuite ajouter les politiques IAM aux rôles et les utilisateurs peuvent assumer les rôles.

Pour apprendre à créer une politique basée sur l’identité IAM à l’aide de ces exemples de documents de politique JSON, consultez Création de politiques IAM (console) dans le Guide de l’utilisateur IAM.

Pour plus de détails sur les actions et les types de ressources définis par AWS AppSync, y compris le format de ARNs pour chacun des types de ressources, voir Actions, ressources et clés de condition AWS AppSync dans la référence d'autorisation de service.

Pour connaître les meilleures pratiques en matière de création et de configuration de politiques basées sur l'identité IAM, consultez. Bonnes pratiques en matière de politique IAM

Pour obtenir la liste des politiques basées sur l'identité IAM pour AWS AppSync, voir. AWS politiques gérées pour AWS AppSync

Utilisation de la console AWS AppSync

Pour accéder à la AWS AppSync console, vous devez disposer d'un ensemble minimal d'autorisations. Ces autorisations doivent vous permettre de répertorier et d'afficher les détails AWS AppSync des ressources de votre Compte AWS. Si vous créez une politique basée sur l’identité qui est plus restrictive que l’ensemble minimum d’autorisations requis, la console ne fonctionnera pas comme prévu pour les entités (utilisateurs ou rôles) tributaires de cette politique.

Il n'est pas nécessaire d'accorder des autorisations de console minimales aux utilisateurs qui appellent uniquement l'API AWS CLI ou l' AWS API. Autorisez plutôt l’accès à uniquement aux actions qui correspondent à l’opération d’API qu’ils tentent d’effectuer.

Pour garantir que les utilisateurs et les rôles IAM peuvent toujours utiliser la AWS AppSync console, associez également la politique AWS AppSync ConsoleAccess ou la politique ReadOnly AWS gérée aux entités. Pour plus d’informations, consultez Ajout d’autorisations à un utilisateur dans le Guide de l’utilisateur IAM.

Autorisation accordée aux utilisateurs pour afficher leurs propres autorisations

Cet exemple montre comment créer une politique qui permet aux utilisateurs IAM d’afficher les politiques en ligne et gérées attachées à leur identité d’utilisateur. Cette politique inclut les autorisations permettant d'effectuer cette action sur la console ou par programmation à l'aide de l'API AWS CLI or AWS .

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }

Accès à un compartiment Amazon S3

Dans cet exemple, vous souhaitez accorder à un utilisateur IAM de votre AWS compte l'accès à l'un de vos compartiments Amazon S3. examplebucket Vous souhaitez également autoriser l'utilisateur à ajouter, mettre à jour et supprimer des objets.

En plus de l’octroi des autorisations s3:PutObject, s3:GetObject et s3:DeleteObject à l’utilisateur, la stratégie octroie aussi les autorisations s3:ListAllMyBuckets, s3:GetBucketLocation et s3:ListBucket. Ces conditions supplémentaires sont requises par la console. De la même manière, les actions s3:PutObjectAcl et s3:GetObjectAcl sont nécessaires pour que les objets puissent être copiés, coupés et collés dans la console. Pour un exemple de procédure pas à pas qui accorde des autorisations aux utilisateurs et les teste à l'aide de la console, consultez Un exemple de procédure pas à pas : utilisation de politiques utilisateur pour contrôler l'accès à votre compartiment.

{ "Version":"2012-10-17", "Statement":[ { "Sid":"ListBucketsInConsole", "Effect":"Allow", "Action":[ "s3:ListAllMyBuckets" ], "Resource":"arn:aws:s3:::*" }, { "Sid":"ViewSpecificBucketInfo", "Effect":"Allow", "Action":[ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource":"arn:aws:s3:::examplebucket" }, { "Sid":"ManageBucketContents", "Effect":"Allow", "Action":[ "s3:PutObject", "s3:PutObjectAcl", "s3:GetObject", "s3:GetObjectAcl", "s3:DeleteObject" ], "Resource":"arn:aws:s3:::examplebucket/*" } ] }

Affichage AWS AppSync widgets basé sur les balises

Vous pouvez utiliser des conditions dans votre politique basée sur l’identité pour contrôler l’accès aux ressources AWS AppSync en fonction des balises. Cet exemple montre comment créer une stratégie qui permet d’afficher un élément widget. Toutefois, l'autorisation est accordée uniquement si la balise Owner widget a la valeur du nom d'utilisateur de cet utilisateur. Cette politique accorde également les autorisations nécessaires pour réaliser cette action sur la console.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ListWidgetsInConsole", "Effect": "Allow", "Action": "appsync:ListWidgets", "Resource": "*" }, { "Sid": "ViewWidgetIfOwner", "Effect": "Allow", "Action": "appsync:GetWidget", "Resource": "arn:aws:appsync:*:*:widget/*", "Condition": { "StringEquals": {"aws:ResourceTag/Owner": "${aws:username}"} } } ] }

Vous pouvez rattacher cette politique aux utilisateurs IAM de votre compte. Si un utilisateur nommé richard-roe tente d'afficher un widget AWS AppSync, les éléments widget doivent être balisés avec Owner=richard-roe ou owner=richard-roe. Dans le cas contraire, l'utilisateur se voit refuser l'accès. La clé de condition d'étiquette Owner correspond à la fois à Owner et à owner, car les noms de clé de condition ne sont pas sensibles à la casse. Pour plus d’informations, consultez Conditions pour éléments de politique JSON IAM dans le Guide de l’utilisateur IAM.