Fonctionnement d'Amazon Cognito avec IAM - Amazon Cognito

Fonctionnement d'Amazon Cognito avec IAM

Avant d'utiliser IAM pour gérer l'accès à Cognito, découvrez les fonctions IAM que vous pouvez utiliser avec Cognito.

Pour obtenir une vue d'ensemble de la façon dont Cognito et d'autres services AWS fonctionnent avec IAM, consultez Services AWS qui fonctionnent avec IAM dans le Guide de l'utilisateur IAM.

Politiques basées sur une identité pour Cognito

Prend en charge les politiques basées sur une identité

Oui

Les politiques basées sur l'identité sont des documents de politique d'autorisations JSON que vous pouvez attacher à une identité telle qu'un utilisateur, un groupe d'utilisateurs ou un rôle IAM. Ces politiques contrôlent quel type d'actions des utilisateurs et des rôles peuvent exécuter, sur quelles ressources et dans quelles conditions. Pour découvrir comment créer une politique basée sur l'identité, veuillez consulter Création de politiques IAM dans le Guide de l'utilisateur IAM.

Avec les politiques IAM basées sur l'identité, vous pouvez spécifier des actions et ressources autorisées ou refusées, ainsi que les conditions dans lesquelles les actions sont autorisées ou refusées. Vous ne pouvez pas spécifier le principal dans une politique basée sur une identité car celle-ci s'applique à l'utilisateur ou au rôle auquel elle est attachée. Pour découvrir tous les éléments que vous utilisez dans une politique JSON, consultez Références des éléments de politique JSON IAM dans le Guide de l'utilisateur IAM.

Exemples de politiques basées sur une identité pour Cognito

Pour voir des exemples de politiques basées sur une identité pour Cognito, consultez Exemples de politiques basées sur une identité pour Amazon Cognito.

Politiques basées sur une ressource dans Cognito

Prend en charge les politiques basées sur une ressource

Non

Les politiques basées sur les ressources sont des documents de politique JSON que vous attachez à une ressource. Des politiques basées sur les ressources sont, par exemple, les politiques de confiance de rôle IAM et des politiques de compartiment Amazon S3. Dans les services qui sont compatibles avec les politiques basées sur les ressources, les administrateurs de service peuvent les utiliser pour contrôler l'accès à une ressource spécifique. Pour la ressource dans laquelle se trouve la politique, cette dernière définit quel type d'actions un principal spécifié peut effectuer sur cette ressource et dans quelles conditions. Vous devez spécifier un principal dans une politique basée sur les ressources. Les mandataires peuvent inclure des comptes, des utilisateurs, des rôles, des utilisateurs fédérés ou des Services AWS.

Pour permettre un accès comptes multiples , vous pouvez spécifier un compte entier ou des entités IAM dans un autre compte en tant que principal dans une politique basée sur les ressources. L'ajout d'un principal entre comptes à une politique basée sur les ressources ne représente qu'une partie de l'instauration de la relation d'approbation. Quand le principal et la ressource se trouvent dans des Comptes AWS différents, un administrateur IAM dans le compte approuvé doit également accorder à l'entité principal (utilisateur ou rôle) l'autorisation d'accéder à la ressource. Pour ce faire, il attache une politique basée sur une identité à l'entité. Toutefois, si une politique basée sur des ressources accorde l'accès à un principal dans le même compte, aucune autre politique basée sur l'identité n'est requise. Pour plus d'informations, consultez Différence entre les rôles IAM et les politiques basées sur une ressource dans le Guide de l'utilisateur IAM.

Actions de politique pour Cognito

Prend en charge les actions de politique

Oui

Les administrateurs peuvent utiliser les politiques JSON AWS pour spécifier qui a accès à quoi. C'est-à-dire, quel principal peut effectuer des actions sur quelles ressources et dans quelles conditions.

L'élément Action d'une politique JSON décrit les actions que vous pouvez utiliser pour autoriser ou refuser l'accès à une politique. Les actions de politique possèdent généralement le même nom que l'opération d'API AWS associée. Il existe quelques exceptions, telles que les actions avec autorisations uniquement qui n'ont pas d'opération API correspondante. Certaines opérations nécessitent également plusieurs actions dans une politique. Ces actions supplémentaires sont nommées actions dépendantes.

Intégration d'actions dans une politique afin d'accorder l'autorisation d'exécuter les opérations associées.

Pour afficher la liste des actions Cognito, consultez Actions définies par Amazon Cognito dans Référence de l'autorisation de service.

Les actions de politique dans Cognito utilisent le préfixe suivant avant l'action :

cognito-identity

Pour indiquer plusieurs actions dans une seule déclaration, séparez-les par des virgules.

"Action": [ "cognito-identity:action1", "cognito-identity:action2" ]

API signées et non signées

Les API signées avec des informations d'identification AWS peuvent être limitées via une politique IAM. Les API Cognito suivantes ne sont pas signées et ne peuvent donc pas être limitées via une politique IAM :

Identités fédérées Amazon Cognito

  • GetId

  • GetOpenIdToken

  • GetCredentialsForIdentity

  • UnlinkIdentity

Amazon Cognito your user groupes

  • ChangePassword

  • ConfirmDevice

  • ConfirmForgotPassword

  • ConfirmSignUp

  • DeleteUser

  • DeleteUserAttributes

  • ForgetDevice

  • ForgotPassword

  • GetDevice

  • GetUser

  • GetUserAttributeVerificationCode

  • GlobalSignOut

  • InitiateAuth

  • ListDevices

  • ResendConfirmationCode

  • RespondToAuthChallenge

  • SetUserSettings

  • SignUp

  • UpdateDeviceStatus

  • UpdateUserAttributes

  • VerifyUserAttribute

Pour voir des exemples de politiques basées sur une identité pour Cognito, consultez Exemples de politiques basées sur une identité pour Amazon Cognito.

Ressources de politique pour Cognito

Prend en charge les ressources de politique

Oui

Les administrateurs peuvent utiliser les politiques JSON AWS pour spécifier qui a accès à quoi. C'est à dire, quel principal peut exécuter des actions, sur quelles ressources et dans quelles conditions.

L'élément de politique JSON Resource indique le ou les objets pour lesquels l'action s'applique. Les instructions doivent inclure un élément Resource ou NotResource. Il est recommandé de définir une ressource à l'aide de son Amazon Resource Name (ARN). Vous pouvez le faire pour des actions qui prennent en charge un type de ressource spécifique, connu sous la dénomination autorisations de niveau ressource.

Pour les actions qui ne sont pas compatibles avec les autorisations de niveau ressource, telles que les opérations de liste, utilisez un caractère générique (*) afin d'indiquer que l'instruction s'applique à toutes les ressources.

"Resource": "*"

Amazon Resource Names (ARN)

ARN pour les identités fédérées Amazon Cognito

Dans les groupes d'identités (identités fédérées) Amazon Cognito, il est possible de limiter l'accès d'un utilisateur IAM à un groupe d'identités spécifiques, en utilisant le format Amazon Resource Name (ARN), comme dans l'exemple suivant. Pour plus d'informations sur les ARN, consultez Identifiants IAM.

arn:aws:cognito-identity:REGION:ACCOUNT_ID:identitypool/IDENTITY_POOL_ID

ARN pour Amazon Cognito Sync

Dans Amazon Cognito Sync, les clients peuvent également restreindre l'accès en fonction de l'ID de groupe d'identités, de l'ID d'identité et du nom de jeu de données.

Pour les API qui opèrent sur un groupe d'identités, le format d'ARN de groupe d'identités est le même que pour les identités fédérées Amazon Cognito, sauf que le nom du service est cognito-sync au lieu de cognito-identity :

arn:aws:cognito-sync:REGION:ACCOUNT_ID:identitypool/IDENTITY_POOL_ID

Pour les API qui fonctionnent au niveau d'une seule identité, par exemple, RegisterDevice, vous pouvez faire référence à l'identité individuelle avec le format d'ARN suivant :

arn:aws:cognito-sync:REGION:ACCOUNT_ID:identitypool/IDENTITY_POOL_ID/identity/IDENTITY_ID

Pour les API qui exploitent des ensembles de données (par exemple, UpdateRecords et ListRecords), vous pouvez faire référence à l'ensemble de données avec le format d'ARN suivant :

arn:aws:cognito-sync:REGION:ACCOUNT_ID:identitypool/IDENTITY_POOL_ID/identity/IDENTITY_ID/dataset/DATASET_NAME

ARN pour les groupes d'utilisateurs d'Amazon Cognito

Pour Amazon Cognito Your User Pools, il est possible de limiter l'accès d'un utilisateur IAM à un groupe d'utilisateurs spécifique, en utilisant le format d'ARN suivant :

arn:aws:cognito-idp:REGION:ACCOUNT_ID:userpool/USER_POOL_ID

Pour afficher la liste des types de ressources Cognito, consultez Ressources définies par Amazon Cognito dans la Référence de l'autorisation de service. Pour savoir les actions avec lesquelles vous pouvez spécifier l'ARN de chaque ressource, consultez Actions définies par Amazon Cognito.

Pour voir des exemples de politiques basées sur une identité pour Cognito, consultez Exemples de politiques basées sur une identité pour Amazon Cognito.

Clés de condition de politique pour Cognito

Prise en charge des clés de condition de stratégie spécifiques au service

Oui

Les administrateurs peuvent utiliser les politiques JSON AWS pour spécifier qui a accès à quoi. C'est à dire, quel principal peut exécuter des actions, sur quelles ressources et dans quelles conditions.

L'élément Condition (ou le bloc Condition) vous permet de spécifier des conditions lorsqu'une instruction est appliquée. L'élément Condition est facultatif. Vous pouvez créer des expressions conditionnelles qui utilisent des opérateurs de condition, tels que les signes égal ou inférieur à, pour faire correspondre la condition de la politique aux valeurs de la demande.

Si vous spécifiez plusieurs éléments Condition dans une instruction, ou plusieurs clés dans un seul élément Condition, AWS les évalue à l'aide d'une opération AND logique. Si vous spécifiez plusieurs valeurs pour une seule clé de condition, AWS évalue la condition à l'aide d'une opération OR logique. Toutes les conditions doivent être remplies avant que les autorisations associées à l'instruction ne soient accordées.

Vous pouvez aussi utiliser des variables d'espace réservé quand vous spécifiez des conditions. Par exemple, vous pouvez accorder à un utilisateur IAM l'autorisation d'accéder à une ressource uniquement si elle est balisée avec son nom d'utilisateur IAM. Pour plus d'informations, consultez Éléments d'une politique IAM : variables et identifications dans le Guide de l'utilisateur IAM.

AWS prend en charge les clés de condition globales et les clés de condition spécifiques à un service. Pour afficher toutes les clés de condition globales AWS, consultez Clés de contexte de condition globale AWS dans le Guide de l'utilisateur IAM.

Pour afficher la liste des clés de condition Amazon dans Cognito, consultez Clés de condition pour Amazon Cognito dans la Référence de l'autorisation de service. Pour savoir les actions et ressources avec lesquelles vous pouvez utiliser une clé de condition, consultez Actions définies par Amazon Cognito.

Pour voir des exemples de politiques basées sur une identité pour Cognito, consultez Exemples de politiques basées sur une identité pour Amazon Cognito.

Listes de contrôle d'accès (ACL) dans Cognito

Prend en charge les ACL

Non

Les listes de contrôle d'accès (ACL) vérifient quels principaux (membres de compte, utilisateurs ou rôles) ont l'autorisation d'accéder à une ressource. Les listes de contrôle d'accès sont similaires aux politiques basées sur les ressources, bien qu'elles n'utilisent pas le format de document de politique JSON.

Contrôle d'accès basé sur les attributs (ABAC) avec Cognito

Prend en charge ABAC (identifications dans les politiques)

Partielle

Le contrôle d'accès basé sur les attributs (ABAC) est une politique d'autorisation qui définit des autorisations en fonction des attributs. Dans AWS, ces attributs sont appelés étiquettes. Vous pouvez attacher des étiquettes à des entités IAM (utilisateurs ou rôles), ainsi qu'à de nombreuses ressources AWS. L'étiquetage des entités et des ressources est la première étape d'ABAC. Vous concevez ensuite des politiques ABAC pour autoriser des opérations quand l'identification du principal correspond à celle de la ressource à laquelle il tente d'accéder.

L'ABAC est utile dans les environnements qui connaissent une croissance rapide et pour les cas où la gestion des politiques devient fastidieuse.

Pour contrôler l'accès basé sur des étiquettes, vous devez fournir les informations d'étiquette dans l'élément de condition d'une politique utilisant les clés de condition aws:ResourceTag/key-name, aws:RequestTag/key-name ou aws:TagKeys.

Pour plus d'informations sur l'ABAC, consultez Qu'est-ce que le contrôle d'accès basé sur les attributs (ABAC) ? dans le Guide de l'utilisateur IAM. Pour accéder à un didacticiel décrivant les étapes de configuration de l'ABAC, consultez Utilisation du contrôle d'accès basé sur les attributs (ABAC) dans le Guide de l'utilisateur IAM.

Utilisation d'informations d'identification temporaires avec Cognito

Prend en charge les informations d'identification temporaires

Oui

Certains Services AWS ne fonctionnent pas quand vous vous connectez à l'aide d'informations d'identification temporaires. Pour plus d'informations, notamment sur les Services AWS qui fonctionnent avec des informations d'identification temporaires, consultez Services AWS qui fonctionnent avec IAM dans le Guide de l'utilisateur IAM.

Vous utilisez des informations d'identification temporaires quand vous vous connectez à la AWS Management Console en utilisant toute méthode autre qu'un nom d'utilisateur et un mot de passe Par exemple, lorsque vous accédez à AWS en utilisant le lien d'authentification unique (SSO) de votre société, ce processus crée automatiquement des informations d'identification temporaires. Vous créez également automatiquement des informations d'identification temporaires lorsque vous vous connectez à la console en tant qu'utilisateur, puis changez de rôle. Pour plus d'informations sur le changement de rôle, consultez Changement de rôle (console) dans le Guide de l'utilisateur IAM.

Vous pouvez créer manuellement des informations d'identification temporaires à l'aide de l'AWS CLI ou de l'API AWS. Vous pouvez ensuite utiliser ces informations d'identification temporaires pour accéder à AWS. AWS recommande de générer des informations d'identification temporaires de façon dynamique au lieu d'utiliser des clés d'accès à long terme. Pour plus d'informations, consultez Informations d'identification de sécurité temporaires dans IAM.

Autorisations de principals entre services pour Cognito

Prend en charge les autorisations de principals

Non

Lorsque vous vous servez d'un utilisateur ou d'un rôle IAM pour accomplir des actions dans AWS, vous êtes considéré comme un principal. Les politiques accordent des autorisations au principal. Lorsque vous utilisez certains services, vous pouvez effectuer une action qui déclenche une autre action dans un autre service. Dans ce cas, vous devez disposer d'autorisations nécessaires pour effectuer les deux actions. Pour savoir si une action nécessite des actions connexes supplémentaires dans une politique, consultez Actions, ressources et clés de condition pour Amazon Cognito dans la Référence de l'autorisation de service.

Rôles de service pour Cognito

Prend en charge les rôles de service

Oui

Une fonction de service est un rôle IAM qu'un service endosse pour accomplir des actions en votre nom. Un administrateur IAM peut créer, modifier et supprimer une fonction du service à partir d'IAM. Pour de plus amples informations, consultez Création d'un rôle pour la délégation d'autorisations à un Service AWS dans le Guide de l'utilisateur IAM.

Pour plus d'informations sur les rôles de service dans Cognito, consultez Activer la synchronisation en mode Push et Synchronisation en mode Push.

Avertissement

La modification des autorisations d'un rôle de service peut altérer la fonctionnalité de Cognito. Ne modifiez des rôles de service que quand Cognito vous le conseille.

Rôles liés à un service pour Cognito

Prend en charge les rôles liés à un service.

Oui

Un rôle lié à un service est un type de rôle de service lié à un Service AWS. Le service peut assumer le rôle afin d'effectuer une action en votre nom. Les rôles liés à un service s'affichent dans votre compte IAM et sont la propriété du service. Un administrateur IAM peut consulter, mais ne peut pas modifier, les autorisations concernant les rôles liés à un service.

Pour plus d'informations sur la création ou la gestion de rôles liés à un service dans Cognito, consultez Utilisation de rôles liés à un service pour Amazon Cognito .