Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Accedi ad Amazon Cognito utilizzando un endpoint di interfaccia (AWS PrivateLink)
Puoi utilizzarla AWS PrivateLink per creare una connessione privata tra il tuo VPC e Amazon Cognito. Puoi accedere ad Amazon Cognito come se fosse nel tuo VPC, senza l'uso di un gateway Internet, un dispositivo NAT, una connessione VPN o una connessione. Direct Connect Le istanze nel tuo VPC non necessitano di indirizzi IP pubblici per accedere ad Amazon Cognito.
Stabilisci questa connessione privata creando un endpoint di interfaccia attivato da AWS PrivateLink. In ciascuna sottorete viene creata un'interfaccia di rete endpoint da abilitare per l'endpoint di interfaccia. Si tratta di interfacce di rete gestite dal richiedente che fungono da punto di ingresso per il traffico destinato ad Amazon Cognito.
Per ulteriori informazioni, consulta la sezione Accesso a Servizi AWS tramite AWS PrivateLink nella Guida di AWS PrivateLink .
Importante
I seguenti tipi di autenticazione non sono attualmente supportati tramite: AWS PrivateLink
-
Autorizzazione da macchina a macchina (M2M) con il flusso di credenziali del client OAuth 2.0
-
Sign-in con accesso gestito e la classica interfaccia utente ospitata.
Argomenti
Flussi di autenticazione per AWS PrivateLink integrazione
La tabella seguente descrive i flussi di autenticazione disponibili per i client nei VPC e le politiche IAM che è possibile applicare per governarli. Le politiche che è possibile valutare nelle richieste ai pool di utenti sono le politiche di controllo delle risorse (RCP), le politiche degli endpoint VPC e le politiche basate sull'identità.
| Risorsa | Flusso di autenticazione | Le politiche vengono valutate quando il cliente transita su un endpoint VPC | Politiche valutate quando l'origine del cliente è pubblica |
|---|---|---|---|
| Bacino d'utenza | Accesso gestito e accesso classico all'interfaccia utente ospitata | Nessuno (nessun accesso) 1 | Nessuno 2 |
| Bacino d'utenza | Machine-to-machine authorization | Nessuno (nessun accesso) 1 | Nessuno 2 |
| Bacino d'utenza | Richieste non autenticate tramite SDK e API REST | RCP, politiche per gli endpoint VPC 3 | RCP |
| Bacino d'utenza | Richieste autenticate SDK e REST API SIGv4 Server-side opzioni di autenticazione | RCP, politiche per gli endpoint VPC, politiche basate sull'identità 3 | RCP, politiche basate sull'identità |
| Pool di identità | Richieste non autenticate tramite SDK e API REST (flussi di base e avanzati) Il flusso di autenticazione di base (classico) Il flusso di autenticazione migliorato (semplificato) | RCP, politiche per gli endpoint VPC | RCP |
| Pool di identità | Richieste autenticate SDK e REST API SIGv4 (flusso autenticato dallo sviluppatore) Il flusso di autenticazione autenticato dallo sviluppatore | RCP, politiche basate sull'identità | RCP, politiche basate sull'identità |
1 Gli endpoint VPC non accettano richieste per i domini del pool di utenti. Se il cliente ha un percorso verso Internet, viene applicato il NAT, rendendo pubblica l'origine.
2 L'esistenza di un dominio del pool di utenti impedisce il completamento di qualsiasi richiesta di pool di utenti che transita su un endpoint VPC. Qualsiasi client può utilizzare percorsi di trasporto pubblico solo verso il dominio del pool di utenti e gli endpoint del servizio API, rendendo l'endpoint VPC inutilizzabile per il pool di utenti. I pool di utenti con domini assegnati sono incompatibili con. AWS PrivateLink
3 Il pool di utenti non deve avere un dominio assegnato.
Modalità operative per AWS PrivateLink
I seguenti modelli di implementazione di esempio sono supportati con AWS PrivateLink e Amazon Cognito.
| Risorsa | Implementazione | Azioni |
|---|---|---|
| Bacino d'utenza | Applicazione SDK o API REST completamente privata |
|
| Bacino d'utenza | IP pubblici e privati |
|
| Bacino d'utenza | Server di autorizzazione OAuth 2.0 privato o pubblico |
|
| Pool di identità | Completamente privato |
|
| Pool di identità | IP pubblici e privati |
|
Considerazioni per Amazon Cognito
Prima di configurare un endpoint di interfaccia per Amazon Cognito, consulta le considerazioni contenute nella Guida. AWS PrivateLink Amazon Cognito supporta l'esecuzione di chiamate a tutte le azioni dell'API Amazon Cognito tramite l'endpoint dell'interfaccia. Per ulteriori informazioni su queste operazioni, consulta i pool di utenti di Amazon Cognito API Reference e Amazon Cognito Federated Identities API Reference.
Pool di utenti e AWS PrivateLink
È possibile effettuare richieste a tutte le operazioni API dei pool di utenti tramite l'endpoint dell'interfaccia, ma non alle operazioni richieste dall'applicazione dal server di autorizzazione OAuth 2.0 del pool di utenti, ad esempio credenziali client, concessioni e accesso gestito.
L'API dei pool di cognito-idp utenti prevede operazioni API non autenticate, autenticate e autorizzate tramite token. È possibile concedere le autorizzazioni per le operazioni autenticate nelle politiche di controllo degli endpoint e delle risorse di VPC. Puoi anche concedere autorizzazioni per operazioni non autenticate e autorizzate tramite token, a differenza delle politiche basate sull'identità. I tipi di policy di controllo degli endpoint e delle risorse VPC sono in grado di valutare e rifiutare o consentire richieste di operazioni altrimenti pubbliche.
Anche le richieste agli endpoint di dominio sono pubbliche, ma non è possibile valutarle nelle policy. Il DNS privato VPC non indirizza le richieste per i domini del pool di utenti all'endpoint VPC. Puoi effettuare richieste di servizi di dominio solo tramite percorsi Internet pubblici. Per ulteriori informazioni, consulta Effetti delle politiche sulle operazioni del pool di utenti.
Operazioni supportate
I sistemi in un VPC possono inviare richieste alle azioni API del pool di utenti ma non agli endpoint del dominio del pool di utenti. I flussi di lavoro OpenID Connect (OIDC) e OAuth 2.0 che utilizzano endpoint di dominio, ad esempio machine-to-machine (M2M), accesso federato e concessione del codice di autorizzazione, sono inaccessibili tramite gli endpoint VPC. L'endpoint di reindirizzamento e autorizzazione Le policy degli endpoint VPC non hanno alcun effetto su questi flussi di lavoro HTTP e non possono elaborarli. Le richieste agli endpoint di dominio provenienti dall'interno di un VPC hanno sempre esito negativo all'endpoint dell'interfaccia, ma continuano a essere disponibili tramite DNS e routing pubblici quando configuri gli endpoint VPC per i tuoi pool di utenti.
Per impedire l'assegnazione di domini dai sistemi in un VPC, Amazon Cognito blocca le richieste all'endpoint dell'interfaccia. CreateUserPoolDomain Ciò impedisce l'aggiunta di domini ai pool di utenti da sistemi che si trovano in un VPC. Per impedire l'aggiunta di un dominio da tutti i sistemi, applica al tuo sistema una politica di controllo delle risorse (RCP) come nell'esempio seguente. Account AWS Questa politica blocca l'CreateUserPoolDomainazione contro il pool di utenti specificato.
{ "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" } ] }
Il tuo pool di utenti potrebbe avere un dominio e in tutti i casi tale dominio non è disponibile tramite AWS PrivateLink. Tutte le richieste API del pool di SDK-based utenti agli endpoint di cognito-idp servizio accettano richieste in AWS PrivateLink entrata, ad eccezione diCreateUserPoolDomain. Gli endpoint del servizio API del pool di utenti e gli endpoint di dominio rimangono sempre accessibili tramite percorsi Internet pubblici. Per gestire l'accesso da fonti pubbliche, implementa gli ACL web. AWS WAF
Effetti delle politiche sulle operazioni del pool di utenti
Tutte le operazioni API del pool di utenti, anche quelle in genere pubbliche e non autenticate, possono essere controllate nelle politiche degli endpoint VPC e nelle politiche di controllo delle risorse (RCP). Puoi anche applicare restrizioni all'accesso al pool di utenti nelle politiche basate sull'identità con le chiavi di condizione VPC. Solo le richieste che includono informazioni di autenticazione in formato Sigv4 possono essere controllate nelle politiche basate sull'identità. L'accesso gestito e le classiche operazioni di interfaccia utente ospitata sono una categoria separata e non sono idonee al transito VPC o all'applicazione di alcun tipo di policy alle loro azioni.
Operazioni non autenticate
Le operazioni di Amazon Cognito per le applicazioni lato client non sono autenticate con Sigv4. Le operazioni di esempio sono riportate nella politica di esempio all'indirizzo. Creazione di una policy dell' endpoint per l'endpoint dell'interfaccia Ulteriori esempi di operazioni non autenticate sono GetUser e. AssociateSoftwareToken Quando si aggiungono queste operazioni alle politiche basate sull'identità, non hanno alcun effetto. Tuttavia, puoi consentire o limitare l'accesso a queste azioni nelle policy degli endpoint VPC e negli RCP. Controllo dell'accesso con politiche di controllo delle risorse
Le operazioni non autenticate non sono associate a un principal IAM. La tua policy sugli endpoint VPC o RCP deve consentire a tutti i principali di eseguire queste azioni.
Operazioni autenticate
Le operazioni API per l'amministrazione del pool di utenti e l'autenticazione lato server sono autenticate con Sigv4. Per le operazioni autenticate, puoi limitare i principali con politiche sugli endpoint che applichi all'endpoint VPC, politiche di controllo delle risorse nella tua organizzazione e politiche basate sull'identità che applichi ai principali. Crea una policy basata sull'identità per AWS PrivateLink operazioni Identity-based e le politiche di controllo delle risorse si basano su chiavi di condizione basate sulla rete come e. VPC-aware https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-network-properties aws:SourceVpc aws:SourceVpce
Per ulteriori informazioni sulle classi di operazioni API lato server, lato client e amministrative per i pool di utenti, vedere. Modelli di autorizzazione per l'autenticazione tramite API e SDK
Pool di identità e AWS PrivateLink
I pool di identità di Amazon Cognito supportano tutte le operazioni API tramite AWS PrivateLink.
Argomenti
Operazioni supportate
Tutte le operazioni API dei pool di identità sono supportate tramite l'endpoint dell'interfaccia. I pool di identità non hanno endpoint di dominio e non sono soggetti alle stesse limitazioni. Tuttavia, i pool di identità hanno considerazioni specifiche per i controlli di accesso basati sulla rete grazie alla loro integrazione con. AWS STS
Limitazioni del contesto di rete con AWS STS integrazione
I pool di identità utilizzano AWS STS AssumeRoleWithWebIdentity le operazioni per fornire AWS credenziali temporanee. Quando i pool di identità AWS STS utilizzano AWS PrivateLink il flusso di autenticazione avanzato, le chiavi di contesto di rete sono simili aws:SourceIp a e aws:SourceVpce contengono valori provenienti dall'infrastruttura di servizio dei pool di identità, non dal contesto di rete dell'applicazione. aws:SourceVpc
Se le politiche di fiducia dei ruoli IAM o le politiche di controllo delle risorse (RCP) utilizzano chiavi di condizione basate sulla rete per limitare l'accesso, le operazioni dei pool di identità potrebbero essere negate inaspettatamente. Per ovviare a questa limitazione, puoi utilizzare uno dei seguenti approcci:
Tag principali per l'identificazione del servizio
Contrassegna i ruoli IAM utilizzati con i pool di identità e modifica le politiche per consentire le operazioni quando il principale ha il tag appropriato. Innanzitutto, aggiungi un tag al ruolo del tuo pool di identità:
aws iam tag-role \ -\-role-nameMyIdentityPoolRole\ -\-tags Key=CognitoServiceCall,Value=true
Quindi modifica le politiche basate sulla rete per consentire i principali contrassegnati. Ad esempio, in 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" } } } ] }
Service-specific chiavi di contesto
I pool di identità forniscono chiavi di contesto specifiche del servizio per l'autorizzazione a livello di risorsa nelle policy e negli RCP degli endpoint VPC. Con queste chiavi di contesto, puoi abilitare un controllo granulare degli accessi e distinguere tra utenti autenticati e non autenticati nelle policy.
Chiavi di contesto specifiche del servizio disponibili per operazioni non SIGv4 come GetId, GetCredentialsForIdentity, GetOpenIdToken, UnlinkIdentity
-
cognito-identity-unauth:IdentityPoolArn- Filtra l'accesso tramite il pool di identità ARN per gli utenti non autenticati -
cognito-identity-unauth:AccountId- Filtra l'accesso in base all' Account AWS ID per gli utenti non autenticati -
cognito-identity-auth:IdentityPoolArn- Filtra l'accesso tramite il pool di identità ARN per gli utenti autenticati -
cognito-identity-auth:AccountId- Filtra l'accesso in base all' Account AWS ID per gli utenti autenticati
Chiavi di contesto specifiche del servizio disponibili per operazioni SIGv4 come DeleteIdentities and DescribeIdentity
-
cognito-identity:IdentityPoolArn- Filtra l'accesso in base al pool di identità ARN
È possibile utilizzare queste chiavi di contesto nelle politiche degli endpoint VPC per limitare l'accesso in base allo stato di autenticazione, come dimostrato nell'esempio seguente:
{ "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" } } } ] }
Controllo dell'accesso con politiche di controllo delle risorse
Amazon Cognito supporta il controllo dell'accesso alle tue risorse con politiche di controllo delle risorse (RCP). Con le chiavi di condizione basate sulla rete, gli RCP possono definire le reti e le azioni consentite per l' AWS PrivateLink accesso ai pool di utenti e ai pool di identità. Le Action istruzioni contenute negli RCP possono controllare l'accesso alle operazioni API del pool di utenti autenticati e non autenticati.
Ad esempio, la seguente politica di esempio impedisce l'accesso a tutti i pool di utenti da un VPC specifico.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyCognitoAccessOutsideVPC", "Effect": "Deny", "Principal": "*", "Action": "cognito-idp:*", "Resource": "*", "Condition": { "StringNotEqualsIfExists": { "aws:SourceVpc": "vpc-02d6770f46ef1653b" } } } ] }
Crea un endpoint di interfaccia per Amazon Cognito
Puoi creare un endpoint di interfaccia per Amazon Cognito utilizzando la console Amazon VPC o (). AWS Command Line Interface AWS CLI Per ulteriori informazioni, consulta la sezione Creazione di un endpoint di interfaccia nella Guida per l'utente di AWS PrivateLink .
Crea un endpoint di interfaccia per i pool di utenti di Amazon Cognito utilizzando il seguente nome di servizio:
com.amazonaws.region.cognito-idp
Crea un endpoint di interfaccia per i pool di identità di Amazon Cognito utilizzando il seguente nome di servizio:
com.amazonaws.region.cognito-identity
Se abiliti il DNS privato per l'endpoint di interfaccia, puoi effettuare richieste API ad Amazon Cognito utilizzando il nome DNS regionale predefinito. Ad esempio, per i pool di utenti e cognito-idp.us-east-1.amazonaws.com cognito-identity.us-east-1.amazonaws.com per i pool di identità.
Creazione di una policy dell' endpoint per l'endpoint dell'interfaccia
Una policy dell'endpoint è una risorsa IAM che è possibile allegare all'endpoint dell'interfaccia. La policy predefinita sugli endpoint consente l'accesso completo ad Amazon Cognito tramite l'endpoint dell'interfaccia. Per controllare l'accesso consentito ad Amazon Cognito dal tuo VPC, allega una policy personalizzata per gli endpoint all'endpoint dell'interfaccia.
Una policy di endpoint specifica le informazioni riportate di seguito:
-
I principali che possono eseguire azioni (Account AWS, utenti IAM e ruoli IAM).
-
Le azioni che possono essere eseguite.
-
Le risorse in cui è possibile eseguire le operazioni.
-
Le condizioni che devono essere soddisfatte prima che la richiesta sia consentita o rifiutata.
Per ulteriori informazioni, consulta la sezione Controllo dell'accesso ai servizi con policy di endpoint nella Guida di AWS PrivateLink .
Esempio: politica degli endpoint VPC per le azioni del pool di utenti
Di seguito è riportato un esempio di policy personalizzata sugli endpoint per i pool di utenti. Quando si allega questa policy all'endpoint dell'interfaccia, si concede l'accesso alle azioni del pool di utenti elencate per tutti i principali su tutte le risorse.
{ "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" } ] }
Esempio: politica degli endpoint VPC per le azioni del pool di identità
Di seguito è riportato un esempio di policy personalizzata sugli endpoint per i pool di identità. Questa policy utilizza chiavi di contesto specifiche del servizio per limitare l'accesso agli utenti autenticati da un pool di identità specifico.
{ "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" } } } ] }
Crea una policy basata sull'identità per AWS PrivateLink operazioni
Identity-basedle policy sono risorse IAM che puoi collegare ai principali. AWS Puoi controllare l'accesso ad Amazon Cognito tramite endpoint VPC con policy operative basate sull'identità. IAM-authenticated A differenza delle policy sugli endpoint, non puoi configurare le autorizzazioni per operazioni non autenticate nelle policy basate sull'identità. Le operazioni autenticate o amministrative richiedono l'autorizzazione Signature Version 4. https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html Per i pool di utenti, le operazioni autenticate includono richieste di autenticazione lato server AdminInitiateAuth e richieste amministrative simili. UpdateUserPool Per i pool di identità, le operazioni autenticate includono richieste amministrative come e. DeleteIdentities DescribeIdentity
Una policy basata sull'identità specifica le seguenti informazioni:
-
Le azioni che possono essere eseguite.
-
Le risorse in cui è possibile eseguire le operazioni.
-
Le condizioni che devono essere soddisfatte prima che la richiesta sia autorizzata o rifiutata.
Esempio: politica basata sull'identità per l'autenticazione lato server del pool di utenti
La seguente politica di esempio concede l'accesso alle azioni del pool di utenti elencate nel pool di utenti specificato, dall'endpoint specificato. Applica questa policy al ruolo IAM assunto per la tua applicazione 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" } } } ] }
Esempio: politica basata sull'identità per le operazioni amministrative dei pool di identità
La seguente politica di esempio concede l'accesso alle azioni amministrative del pool di identità dall'endpoint VPC specificato. Applica questa policy al responsabile IAM che deve eseguire l'amministrazione del pool di identità.
{ "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" } } } ] }