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.
Accédez à Amazon Cognito à l'aide d'un point de terminaison d'interface ()AWS PrivateLink
Vous pouvez l'utiliser AWS PrivateLink pour créer une connexion privée entre votre VPC et Amazon Cognito. Vous pouvez accéder à Amazon Cognito comme s'il se trouvait dans votre VPC, sans passer par une passerelle Internet, un appareil NAT, une connexion VPN ou une connexion. Direct Connect Les instances de votre VPC n'ont pas besoin d'adresses IP publiques pour accéder à Amazon Cognito.
Vous établissez cette connexion privée en créant un point de terminaison d’interface optimisé par AWS PrivateLink. Nous créons une interface réseau de point de terminaison dans chaque sous-réseau que vous activez pour le point de terminaison d’interface. Il s'agit d'interfaces réseau gérées par les demandeurs qui servent de point d'entrée pour le trafic destiné à Amazon Cognito.
Pour plus d’informations, consultez Accès aux Services AWS via AWS PrivateLink dans le Guide AWS PrivateLink .
Important
Les types d'authentification suivants ne sont actuellement pas pris en charge via AWS PrivateLink :
-
Autorisation machine à machine (M2M) avec le flux d'informations d'identification client OAuth 2.0
-
Connectez-vous à l'aide de la connexion gérée et de l'interface utilisateur hébergée classique.
Rubriques
Contrôle de l'accès à l'aide de politiques de contrôle des ressources
Création d'un point de terminaison d'interface pour Amazon Cognito
Création d’une politique de point de terminaison pour votre point de terminaison d’interface
Création d'une politique basée sur l'identité pour les opérations AWS PrivateLink
Flux d'authentification pour AWS PrivateLink l'intégration
Le tableau suivant décrit les flux d'authentification disponibles pour les VPCs clients et les politiques IAM que vous pouvez appliquer pour les régir. Les politiques que vous pouvez évaluer dans les demandes adressées aux groupes d'utilisateurs sont les politiques de contrôle des ressources (RCPs), les politiques de point de terminaison VPC et les politiques basées sur l'identité.
| Ressource | Flux d'authentification | Politiques évaluées lorsque le client transite par un point de terminaison VPC | Politiques évaluées lorsque l'origine du client est publique |
|---|---|---|---|
| Groupe d'utilisateurs | Connexion gérée et connexion à l'interface utilisateur hébergée classique | Aucun (pas d'accès) 1 | Aucune 2 |
| Groupe d'utilisateurs | Machine-to-machine authorization | Aucun (pas d'accès) 1 | Aucune 2 |
| Groupe d'utilisateurs | Demandes non authentifiées du SDK et de l'API REST | RCPs, politiques relatives aux points de terminaison VPC 3 | RCPs |
| Groupe d'utilisateurs | Requêtes authentifiées SIGv4 du SDK et de l'API REST | RCPs, politiques de point de terminaison VPC, politiques basées sur l'identité 3 | RCPs, politiques basées sur l'identité |
| Groupe d'identités | Demandes non authentifiées du SDK et de l'API REST (flux de base et améliorés) | RCPs, politiques relatives aux points de terminaison VPC | RCPs |
| Groupe d'identités | Demandes authentifiées SIGv4 du SDK et de l'API REST (flux authentifié par le développeur) | RCPs, politiques basées sur l'identité | RCPs, politiques basées sur l'identité |
1 Les points de terminaison VPC n'acceptent pas les demandes de domaines du groupe d'utilisateurs. Si le client dispose d'une route vers Internet, le NAT est appliqué, rendant l'origine publique.
2 L'existence d'un domaine de pool d'utilisateurs empêche de traiter toutes les demandes de pool d'utilisateurs qui transitent par un point de terminaison VPC. Tout client peut emprunter les chemins de transport en commun uniquement vers le domaine du groupe d'utilisateurs et les points de terminaison du service API, ce qui rend le point de terminaison VPC inutilisable pour le groupe d'utilisateurs. Les groupes d'utilisateurs auxquels des domaines sont assignés ne sont pas compatibles avec AWS PrivateLink.
3 Aucun domaine ne doit être attribué au groupe d'utilisateurs.
Modes de fonctionnement pour AWS PrivateLink
Les exemples de modèles de mise en œuvre suivants sont pris en charge avec Amazon Cognito AWS PrivateLink et Amazon Cognito.
| Ressource | Mise en œuvre | Actions |
|---|---|---|
| Groupe d'utilisateurs | Application SDK ou API REST entièrement privée |
|
| Groupe d'utilisateurs | Publics et privés |
|
| Groupe d'utilisateurs | Serveur d'autorisation OAuth 2.0 privé ou public |
|
| Groupe d'identités | Entièrement privé |
|
| Groupe d'identités | Publics et privés |
|
Considérations relatives à Amazon Cognito
Avant de configurer un point de terminaison d'interface pour Amazon Cognito, consultez les considérations du AWS PrivateLink guide. Amazon Cognito permet d'appeler toutes les actions de l'API Amazon Cognito via le point de terminaison de l'interface. Pour plus d'informations sur ces opérations, consultez la référence d'API des groupes d'utilisateurs Amazon Cognito et la référence d'API Amazon Cognito Federated Identities.
AWS PrivateLink pour Amazon Cognito n'est disponible que dans les régions commerciales AWS .
Groupes d'utilisateurs et AWS PrivateLink
Vous pouvez envoyer des demandes à toutes les opérations de l'API des groupes d'utilisateurs via le point de terminaison de l'interface, mais pas aux opérations que votre application demande au serveur d'autorisation du groupe d'utilisateurs OAuth 2.0, par exemple les informations d'identification du client accordées et la connexion gérée.
L'API des groupes cognito-idp d'utilisateurs utilise des opérations d'API non authentifiées, authentifiées et autorisées par des jetons. Vous pouvez accorder des autorisations pour les opérations authentifiées dans les politiques de contrôle des points de terminaison et des ressources du VPC. Vous pouvez également accorder des autorisations pour des opérations non authentifiées et autorisées par des jetons, contrairement aux politiques basées sur l'identité. Les types de politiques de contrôle des points de terminaison et des ressources VPC sont en mesure d'évaluer et de refuser ou d'autoriser les demandes pour des opérations autrement publiques.
Les demandes adressées aux points de terminaison de domaine sont également publiques, mais vous ne pouvez pas les évaluer dans les politiques. Le DNS privé VPC n'achemine pas les demandes de domaines du groupe d'utilisateurs vers votre point de terminaison VPC. Vous ne pouvez effectuer des demandes de services de domaine que par le biais de chemins Internet publics. Pour de plus amples informations, veuillez consulter Effets des politiques sur les opérations du pool d'utilisateurs.
Opérations prises en charge
Les systèmes d'un VPC peuvent envoyer des demandes aux actions de l'API du groupe d'utilisateurs, mais pas aux points de terminaison du domaine du groupe d'utilisateurs. Les flux de travail OpenID Connect (OIDC) et OAuth 2.0 qui utilisent des points de terminaison de domaine, par exemple machine-to-machine(M2M), la connexion fédérée et l'octroi de codes d'autorisation, sont inaccessibles via les points de terminaison VPC. Les politiques de point de terminaison VPC n'ont aucun effet sur ces flux de travail HTTP et ne peuvent pas les traiter. Les demandes adressées aux points de terminaison de domaine depuis un VPC échouent toujours au point de terminaison de l'interface, mais restent disponibles via le DNS public et le routage lorsque vous configurez des points de terminaison VPC pour vos groupes d'utilisateurs.
Pour empêcher l'attribution de domaines depuis les systèmes d'un VPC, Amazon Cognito CreateUserPoolDomain bloque les demandes au point de terminaison de l'interface. Cela empêche l'ajout de domaines à vos groupes d'utilisateurs à partir de systèmes situés dans un VPC. Pour empêcher l'ajout d'un domaine à tous les systèmes, appliquez une politique de contrôle des ressources (RCP) comme dans l'exemple suivant à votre Compte AWS. Cette politique bloque l'CreateUserPoolDomainaction contre le groupe d'utilisateurs spécifié.
{ "Version": "2012-10-17", "Statement": [ { "Principal": "*", "Effect": "Deny", "Action": [ "cognito-idp:CreateUserPoolDomain" ], "Resource": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_EXAMPLE" } ] }
Votre groupe d'utilisateurs possède peut-être un domaine et, dans tous les cas, ce domaine n'est pas disponible via celui-ci AWS PrivateLink. Toutes les demandes d'API de groupe d'utilisateurs basées sur le SDK destinées aux points cognito-idp de terminaison de service acceptent les demandes AWS PrivateLink, à l'exception de. CreateUserPoolDomain Les points de terminaison du service API du pool d'utilisateurs et les points de terminaison du domaine restent toujours accessibles via des chemins Internet publics. Pour gérer l'accès à partir de sources publiques, implémentez AWS WAF
le Web ACLs.
Effets des politiques sur les opérations du pool d'utilisateurs
Toutes les opérations d'API du pool d'utilisateurs, même celles qui sont généralement publiques et non authentifiées, peuvent être contrôlées dans les politiques de point de terminaison VPC et les politiques de contrôle des ressources (). RCPs Vous pouvez également appliquer des restrictions à l'accès au groupe d'utilisateurs dans le cadre de politiques basées sur l'identité à l'aide de clés de condition VPC. Seules les demandes qui incluent des informations d'authentification au format SIGv4 peuvent être contrôlées dans le cadre de politiques basées sur l'identité. La connexion gérée et les opérations d'interface utilisateur hébergée classiques constituent une catégorie distincte et ne sont pas éligibles au transit VPC ni à l'application de politiques de quelque type que ce soit à leurs actions.
Opérations non authentifiées
Les opérations Amazon Cognito pour les applications côté client ne sont pas authentifiées avec SigV4. Vous trouverez des exemples d'opérations dans l'exemple de politique à l'adresseCréation d’une politique de point de terminaison pour votre point de terminaison d’interface. D'autres exemples d'opérations non authentifiées sont GetUser et. AssociateSoftwareToken Lorsque vous ajoutez ces opérations aux politiques basées sur l'identité, elles n'ont aucun effet. Cependant, vous pouvez autoriser ou restreindre l'accès à ces actions dans les politiques de point de terminaison VPC et. RCPs
Les opérations non authentifiées ne sont pas associées à un principal IAM. Votre politique de point de terminaison VPC ou RCP doit autoriser tous les principes pour ces actions.
Opérations authentifiées
Les opérations d'API pour l'administration du pool d'utilisateurs et l'authentification côté serveur sont authentifiées avec SigV4. Pour les opérations authentifiées, vous pouvez restreindre les principaux à l'aide de politiques de point de terminaison que vous appliquez au point de terminaison du VPC, de politiques de contrôle des ressources dans votre organisation et de politiques basées sur l'identité que vous appliquez aux principaux. Les politiques basées sur l'identité et le contrôle des ressources sont compatibles avec les VPC avec des clés de condition basées sur le réseau telles que et. aws:SourceVpc aws:SourceVpce
Pour plus d'informations sur les classes d'opérations d'API côté serveur, côté client et côté administratif pour les groupes d'utilisateurs, consultez. Modèles d'autorisation pour l'authentification par API et SDK
Pools d'identités et AWS PrivateLink
Les pools d'identités Amazon Cognito prennent en charge toutes les opérations d'API via. AWS PrivateLink
Rubriques
Opérations prises en charge
Toutes les opérations de l'API des pools d'identités sont prises en charge via le point de terminaison de l'interface. Les pools d'identités n'ont pas de points de terminaison de domaine et ne sont pas soumis aux mêmes limites. Cependant, les pools d'identités ont des considérations spécifiques pour les contrôles d'accès basés sur le réseau en raison de leur intégration avec AWS STS.
Limites du contexte réseau liées à AWS STS l'intégration
Les pools d'identités utilisent AWS STS AssumeRoleWithWebIdentity des opérations pour fournir des AWS informations d'identification temporaires. Lorsque des pools d'identités font appel AWS PrivateLink dans le AWS STS cadre du flux d'authentification amélioré, les clés de contexte réseau ressemblent aws:SourceIp à et aws:SourceVpce contiennent des valeurs provenant de l'infrastructure du service des pools d'identités, et non du contexte réseau de votre application. aws:SourceVpc
Si vos politiques de confiance en matière de rôle IAM ou vos politiques de contrôle des ressources (RCPs) utilisent des clés de condition basées sur le réseau pour restreindre l'accès, les opérations des pools d'identités peuvent être refusées de manière inattendue. Pour remédier à cette limitation, vous pouvez utiliser l'une des approches suivantes :
Balises principales pour l'identification des services
Marquez les rôles IAM utilisés avec les pools d'identités et modifiez vos politiques pour autoriser les opérations lorsque le principal dispose de la balise appropriée. Ajoutez d'abord une balise à votre rôle dans le pool d'identités :
aws iam tag-role \ -\-role-nameMyIdentityPoolRole\ -\-tags Key=CognitoServiceCall,Value=true
Modifiez ensuite vos politiques basées sur le réseau pour autoriser les principaux étiquetés. Par exemple, dans un RCP :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Principal": "*", "Action": "sts:AssumeRoleWithWebIdentity", "Resource": "*", "Condition": { "NotIpAddress": { "aws:SourceIp": ["allowed-ip-ranges"] }, "StringNotEqualsIfExists": { "aws:ResourceTag/CognitoServiceCall": "true" } } } ] }
Clés de contexte spécifiques au service
Les pools d'identités fournissent des clés de contexte spécifiques au service pour l'autorisation au niveau des ressources dans les politiques de point de terminaison VPC et. RCPs Avec ces clés contextuelles, vous pouvez activer un contrôle d'accès précis et faire la distinction entre les utilisateurs authentifiés et non authentifiés dans les politiques.
Clés de contexte spécifiques au service disponibles pour les opérations non SIGv4 telles que,,, GetIdGetCredentialsForIdentityGetOpenIdTokenUnlinkIdentity
-
cognito-identity-unauth:IdentityPoolArn- Filtre l'accès par l'ARN du pool d'identités pour les utilisateurs non authentifiés -
cognito-identity-unauth:AccountId- Filtre l'accès par Compte AWS identifiant pour les utilisateurs non authentifiés -
cognito-identity-auth:IdentityPoolArn- Filtre l'accès par l'ARN du pool d'identités pour les utilisateurs authentifiés -
cognito-identity-auth:AccountId- Filtre l'accès par Compte AWS identifiant pour les utilisateurs authentifiés
Clés de contexte spécifiques au service disponibles pour les opérations SigV4 telles que et DeleteIdentitiesDescribeIdentity
-
cognito-identity:IdentityPoolArn- Filtre l'accès par l'ARN du pool d'identités
Vous pouvez utiliser ces clés de contexte dans les politiques de point de terminaison VPC pour restreindre l'accès en fonction du statut d'authentification, comme illustré dans l'exemple suivant :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": [ "cognito-identity:GetId", "cognito-identity:GetCredentialsForIdentity" ], "Resource": "*", "Condition": { "StringEquals": { "cognito-identity-unauth:IdentityPoolArn": "arn:aws:cognito-identity:us-east-1:123456789012:identitypool/us-east-1:12345678-ffff-ffff-ffff-123456" } } } ] }
Contrôle de l'accès à l'aide de politiques de contrôle des ressources
Amazon Cognito permet de contrôler l'accès à vos ressources grâce à des politiques de contrôle des ressources ()RCPs. À l'aide de clés de condition basées sur le réseau, RCPs vous pouvez définir les réseaux et les actions autorisés pour AWS PrivateLink accéder à vos groupes d'utilisateurs et à vos groupes d'identités. Les Action instructions contenues dans RCPs peuvent contrôler l'accès aux opérations d'API du pool d'utilisateurs authentifiées et non authentifiées.
Par exemple, l'exemple de politique suivant empêche l'accès à tous les groupes d'utilisateurs à partir d'un VPC spécifique.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyCognitoAccessOutsideVPC", "Effect": "Deny", "Principal": "*", "Action": "cognito-idp:*", "Resource": "*", "Condition": { "StringNotEqualsIfExists": { "aws:SourceVpc": "vpc-02d6770f46ef1653b" } } } ] }
Création d'un point de terminaison d'interface pour Amazon Cognito
Vous pouvez créer un point de terminaison d'interface pour Amazon Cognito à l'aide de la console Amazon VPC ou du (). AWS Command Line Interface AWS CLI Pour plus d’informations, consultez Création d’un point de terminaison d’interface dans le Guide AWS PrivateLink .
Créez un point de terminaison d'interface pour les groupes d'utilisateurs Amazon Cognito en utilisant le nom de service suivant :
com.amazonaws.region.cognito-idp
Créez un point de terminaison d'interface pour les pools d'identités Amazon Cognito en utilisant le nom de service suivant :
com.amazonaws.region.cognito-identity
Si vous activez le DNS privé pour le point de terminaison de l'interface, vous pouvez envoyer des demandes d'API à Amazon Cognito en utilisant son nom DNS régional par défaut. Par exemple, cognito-idp.us-east-1.amazonaws.com pour les groupes d'utilisateurs et cognito-identity.us-east-1.amazonaws.com les groupes d'identités.
Création d’une politique de point de terminaison pour votre point de terminaison d’interface
Une politique de point de terminaison est une ressource IAM que vous pouvez attacher à votre point de terminaison d’interface. La politique de point de terminaison par défaut autorise un accès complet à Amazon Cognito via le point de terminaison de l'interface. Pour contrôler l'accès autorisé à Amazon Cognito depuis votre VPC, associez une politique de point de terminaison personnalisée au point de terminaison de l'interface.
Une politique de point de terminaison spécifie les informations suivantes :
-
Les principaux qui peuvent effectuer des actions (Comptes AWS, utilisateurs IAM et rôles IAM).
-
Les actions qui peuvent être effectuées.
-
La ressource sur laquelle les actions peuvent être effectuées.
-
Les conditions qui doivent être satisfaites avant que la demande ne soit acceptée ou refusée.
Pour plus d’informations, consultez Contrôle de l’accès aux services à l’aide de politiques de point de terminaison dans le Guide AWS PrivateLink .
Exemple : politique de point de terminaison VPC pour les actions du groupe d'utilisateurs
Voici un exemple de politique de point de terminaison personnalisée pour les groupes d'utilisateurs. Lorsque vous attachez cette politique au point de terminaison de votre interface, elle accorde l'accès aux actions du groupe d'utilisateurs répertoriées pour tous les principaux sur toutes les ressources.
{ "Version": "2012-10-17", "Statement": [ { "Principal": { "AWS": "arn:aws:iam::123456789012:assumed-role/MyWebAppRole/MyWebAppSession" }, "Effect": "Allow", "Action": [ "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminRespondToAuthChallenge", "cognito-idp:AdminSetUserPassword" ], "Resource":"arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_EXAMPLE" }, { "Effect": "Allow", "Action": [ "cognito-idp:InitiateAuth", "cognito-idp:RespondToAuthChallenge", "cognito-idp:ForgotPassword", "cognito-idp:ConfirmForgotPassword" ], "Resource":"arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_EXAMPLE" } ] }
Exemple : politique de point de terminaison VPC pour les actions du pool d'identités
Voici un exemple de politique de point de terminaison personnalisée pour les pools d'identités. Cette politique utilise des clés de contexte spécifiques au service pour restreindre l'accès aux utilisateurs authentifiés à partir d'un pool d'identités spécifique.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": [ "cognito-identity:GetId", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetOpenIdToken" ], "Resource": "*", "Condition": { "StringEquals": { "cognito-identity-auth:IdentityPoolArn": "arn:aws:cognito-identity:us-east-1:123456789012:identitypool/us-east-1:12345678-ffff-ffff-ffff-123456" } } } ] }
Création d'une politique basée sur l'identité pour les opérations AWS PrivateLink
Les politiques basées sur l'identité sont des ressources IAM que vous pouvez associer aux principaux. AWS Vous pouvez contrôler l'accès à Amazon Cognito via des points de terminaison VPC avec des politiques basées sur l'identité pour les opérations authentifiées par IAM. Contrairement aux politiques relatives aux terminaux, vous ne pouvez pas configurer les autorisations pour les opérations non authentifiées dans les politiques basées sur l'identité. Les opérations authentifiées ou administratives nécessitent l'autorisation Signature Version 4. Pour les groupes d'utilisateurs, les opérations authentifiées incluent les demandes d'authentification côté serveur AdminInitiateAuthet les demandes administratives telles que. UpdateUserPool Pour les pools d'identités, les opérations authentifiées incluent des demandes administratives telles que DeleteIdentitieset DescribeIdentity.
Une politique basée sur l'identité spécifie les informations suivantes :
-
Les actions qui peuvent être effectuées.
-
La ressource sur laquelle les actions peuvent être effectuées.
-
Les conditions qui doivent être satisfaites avant que la demande ne soit acceptée ou refusée.
Exemple : stratégie basée sur l'identité pour l'authentification du groupe d'utilisateurs côté serveur
L'exemple de politique suivant accorde l'accès aux actions du groupe d'utilisateurs répertoriées dans le groupe d'utilisateurs spécifié, à partir du point de terminaison spécifié. Appliquez cette politique au rôle IAM assumé pour votre application Web.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminRespondToAuthChallenge", "cognito-idp:AdminSetUserPassword" ], "Resource": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_EXAMPLE", "Condition": { "StringEquals": { "aws:SourceVpce": "vpce-1a2b3c4d" } } } ] }
Exemple : stratégie basée sur l'identité pour les opérations administratives du pool d'identités
L'exemple de politique suivant accorde l'accès aux actions administratives du pool d'identités à partir du point de terminaison VPC spécifié. Appliquez cette politique au principal IAM qui doit effectuer l'administration du pool d'identités.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cognito-identity:DeleteIdentities", "cognito-identity:DescribeIdentity" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceVpce": "vpce-1a2b3c4d" }, "StringEquals": { "cognito-identity:IdentityPoolArn": "arn:aws:cognito-identity:us-east-1:123456789012:identitypool/us-east-1:12345678-ffff-ffff-ffff-123456" } } } ] }