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à.
Protezione dei dati in Amazon Cognito
Il modello di responsabilità AWS condivisa Modello si applica alla protezione dei dati in Amazon Cognito (Amazon Cognito). Come descritto in questo modello, AWS è responsabile della protezione dell'infrastruttura globale che gestisce tutto il AWS cloud. L’utente è responsabile del controllo dei contenuti ospitati su questa infrastruttura. Questo contenuto include le attività di configurazione e gestione della sicurezza per i AWS servizi che utilizzi. Per ulteriori informazioni sulla privacy dei dati, consulta Domande frequenti sulla privacy dei dati.
Ai fini della protezione dei dati, ti consigliamo di proteggere le credenziali degli AWS account e di configurare account utente individuali con AWS Identity and Access Management (IAM). In questo modo, a ogni utente verranno assegnate solo le autorizzazioni necessarie per svolgere il proprio lavoro. Ti suggeriamo, inoltre, di proteggere i dati nei seguenti modi:
-
Utilizza l’autenticazione a più fattori (MFA) con ogni account.
-
SSL/TLS Da utilizzare per comunicare con AWS le risorse.
-
Configura l'API e la registrazione delle attività degli utenti con AWS CloudTrail.
-
Utilizza soluzioni di AWS crittografia, insieme a tutti i controlli di sicurezza predefiniti all'interno AWS
dei servizi.
-
Utilizza i servizi di sicurezza gestiti avanzati, ad esempio Amazon Macie, che aiutano a individuare e proteggere i dati personali archiviati in Amazon S3.
Ti consigliamo di non inserire mai informazioni identificative sensibili, ad esempio i numeri di account dei clienti, in campi a formato libero, ad esempio un campo Name (Nome). Ciò include quando lavori con Amazon Cognito o altri AWS
servizi utilizzando la console, l'API o AWS gli AWS CLI SDK. Gli eventuali dati immessi in Amazon Cognito o altri servizi potrebbero essere prelevati per l'inserimento nei log di diagnostica. Quando fornisci un URL a un server esterno, non includere informazioni sulle credenziali nell'URL per convalidare la tua richiesta a tale server.
Crittografia dei dati
La crittografia dei dati in genere rientra in due categorie: crittografia dei dati a riposo e crittografia dei dati in transito.
Crittografia dei dati a riposo
I dati all'interno dei pool di utenti e dei pool di identità di Amazon Cognito sono crittografati quando sono inattivi in conformità agli standard del settore.
- AWS chiave proprietaria
-
Amazon Cognito crittografa i dati nel tuo pool di utenti o pool di identità con una chiave KMS AWS di proprietà. Le chiavi di questo tipo non sono visibili in. AWS KMS
- Chiave gestita dal cliente
-
Amazon Cognito crittografa i dati del tuo pool di utenti con una chiave gestita dal cliente. Sei responsabile dell'amministrazione delle politiche chiave gestite dal cliente, della rotazione e dell'eliminazione pianificata.
La crittografia con chiavi gestite dal cliente potrebbe non essere disponibile in alcuni pool di utenti. Newly-created i pool di utenti dispongono sempre di questa forma di crittografia.
Cose da sapere sulla crittografia dei pool di utenti con chiavi gestite dal cliente
-
Tutti i dati dei clienti nei pool di utenti sono crittografati quando sono inattivi, anche se non si interviene per configurare le impostazioni di crittografia.
-
Amazon Cognito supporta solo chiavi KMS simmetriche nello stesso pool di utenti per la Regione AWS crittografia del pool di utenti inattivi. Non puoi configurare la crittografia del pool di utenti inattivi con chiavi asimmetriche. È possibile configurare la crittografia inattiva con chiavi a regione singola e con chiavi multiregionali che si trovano nella stessa regione del pool di utenti.
-
È possibile configurare la crittografia del pool di utenti solo con una chiave KMS ARN, non con un alias.
Crittografia PII
Amazon Cognito supporta la riservatezza, l'integrità e la disponibilità delle informazioni di identificazione personale (PII) nelle ricerche di attributi utente con crittografia ricercabile. Queste funzioni del Hash-based Message Authentication Code (HMAC), ottimizzate per le prestazioni per i set di dati del pool di utenti, mappano tra il testo semplice e i valori crittografati degli attributi utente. Amazon Cognito calcola i valori HMAC con la chiave KMS che crittografa il pool di utenti. Questa protezione si applica ai seguenti attributi:
-
sub
-
email
-
phone_number
-
given_name
-
family_name
-
name
-
username
-
preferred_username
-
cognito:user_status
Le seguenti procedure configurano la crittografia a riposo nel pool di utenti. Per ulteriori informazioni sulle politiche chiave KMS che delegano l'accesso ad applicazioni Servizi AWS come Amazon Cognito, consulta Autorizzazioni per Amazon Cognito nelle politiche chiave.
- Set customer managed key policy
-
Per utilizzare una chiave gestita dal cliente, la chiave deve affidarsi a un responsabile del servizio Amazon Cognito per eseguire operazioni di crittografia e decrittografia sulla chiave. Configura la politica chiave della tua chiave KMS come mostrato nell'esempio seguente. Il responsabile IAM che scrive questa policy deve avere accesso in scrittura alla tua chiave KMS, con kms:PutKeyPolicy autorizzazione.
{
"Id": "cognito-cmk-policy",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Allow Amazon Cognito service access",
"Effect": "Allow",
"Principal": {
"Service": [
"cognito-idp.amazonaws.com",
"identitystore.amazonaws.com"
]
},
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:ReEncrypt*",
"kms:GenerateDataKeyWithoutPlainText"
],
"Resource": "*",
"Condition": {
"ArnEquals": {
"aws:SourceArn": [
"arn:aws:cognito-idp:us-east-1:111122223333:userpool/us-east-1_EXAMPLE"
]
},
"StringEquals": {
"aws:SourceAccount": [
"111122223333"
]
},
"StringLike": {
"kms:EncryptionContext:aws:cognito-idp:userpool-arn": "arn:aws:cognito-idp:us-east-1:111122223333:userpool/us-east-1_EXAMPLE"
}
}
},
{
"Sid": "Allow Amazon Cognito service DescribeKey access",
"Effect": "Allow",
"Principal": {
"Service": [
"cognito-idp.amazonaws.com",
"identitystore.amazonaws.com"
]
},
"Action": [
"kms:DescribeKey"
],
"Resource": "*",
"Condition": {
"ArnEquals": {
"aws:SourceArn": [
"arn:aws:cognito-idp:us-east-1:111122223333:userpool/us-east-1_EXAMPLE"
]
},
"StringEquals": {
"aws:SourceAccount": [
"111122223333"
]
}
}
},
{
"Sid": "Allow access through Amazon Cognito for all principals in account that are authorized to use Amazon Cognito",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": [
"kms:DescribeKey"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"kms:ViaService": [
"cognito-idp.us-east-1.amazonaws.com"
]
}
}
},
{
"Sid": "Allow access through Amazon Cognito for all principals in account that are authorized to use Amazon Cognito",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:ReEncrypt*",
"kms:GenerateDataKeyWithoutPlainText"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"kms:ViaService": [
"cognito-idp.us-east-1.amazonaws.com"
]
},
"StringLike": {
"kms:EncryptionContext:aws:cognito-idp:userpool-arn": "arn:aws:cognito-idp:us-east-1:111122223333:userpool/us-east-1_EXAMPLE"
}
}
},
{
"Sid": "Allow administrators to manage the key",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::111122223333:root"
},
"Action": "kms:*",
"Resource": "*"
}
]
}
- Set customer managed key policy with permissions for encryption of
exported logs
-
Applica questa politica alla tua chiave KMS quando hai configurato l'esportazione dei log. Questa politica consente ad Amazon Cognito di crittografare i log durante l'esportazione e al servizio intermedio di decrittografarli prima di scriverli nel tuo gruppo di log Logs. CloudWatch Configura la politica chiave della tua chiave KMS come mostrato nell'esempio seguente. Il responsabile IAM che scrive questa policy deve avere accesso in scrittura alla tua chiave KMS, con kms:PutKeyPolicy autorizzazione.
{
"Id": "cognito-cmk-policy",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Allow Amazon Cognito service access",
"Effect": "Allow",
"Principal": {
"Service": [
"cognito-idp.amazonaws.com",
"identitystore.amazonaws.com"
]
},
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:ReEncrypt*",
"kms:GenerateDataKeyWithoutPlainText"
],
"Resource": "*",
"Condition": {
"ArnEquals": {
"aws:SourceArn": [
"arn:aws:cognito-idp:us-east-1:111122223333:userpool/us-east-1_EXAMPLE"
]
},
"StringEquals": {
"aws:SourceAccount": [
"111122223333"
]
},
"StringLike": {
"kms:EncryptionContext:aws:cognito-idp:userpool-arn": "arn:aws:cognito-idp:us-east-1:111122223333:userpool/us-east-1_EXAMPLE"
}
}
},
{
"Sid": "Allow Amazon Cognito service DescribeKey access",
"Effect": "Allow",
"Principal": {
"Service": [
"cognito-idp.amazonaws.com",
"identitystore.amazonaws.com"
]
},
"Action": [
"kms:DescribeKey"
],
"Resource": "*",
"Condition": {
"ArnEquals": {
"aws:SourceArn": [
"arn:aws:cognito-idp:us-east-1:111122223333:userpool/us-east-1_EXAMPLE"
]
},
"StringEquals": {
"aws:SourceAccount": [
"111122223333"
]
}
}
},
{
"Sid": "Allow access through Amazon Cognito for all principals in account that are authorized to use Amazon Cognito",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": [
"kms:DescribeKey"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"kms:ViaService": [
"cognito-idp.us-east-1.amazonaws.com"
]
}
}
},
{
"Sid": "Allow access through Amazon Cognito for all principals in account that are authorized to use Amazon Cognito",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:ReEncrypt*",
"kms:GenerateDataKeyWithoutPlainText"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"kms:ViaService": [
"cognito-idp.us-east-1.amazonaws.com"
]
},
"StringLike": {
"kms:EncryptionContext:aws:cognito-idp:userpool-arn": "arn:aws:cognito-idp:us-east-1:111122223333:userpool/us-east-1_EXAMPLE"
}
}
},
{
"Sid": "Allow Amazon Cognito service log delivery access",
"Effect": "Allow",
"Principal": {
"Service": [
"cognito-idp.amazonaws.com"
]
},
"Action": [
"kms:GenerateDataKey",
"kms:Encrypt"
],
"Resource": "*",
"Condition": {
"StringLike": {
"kms:EncryptionContext:SourceArn": "arn:aws:logs:us-east-1:111122223333:*"
}
}
},
{
"Sid": "Allow IngestionHub service log delivery access",
"Effect": "Allow",
"Principal": {
"Service": [
"delivery.logs.amazonaws.com"
]
},
"Action": [
"kms:GenerateDataKey",
"kms:Decrypt"
],
"Resource": "*",
"Condition": {
"StringLike": {
"kms:EncryptionContext:SourceArn": "arn:aws:logs:us-east-1:111122223333:*"
}
}
},
{
"Sid": "Allow administrators to manage the key",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::111122223333:root"
},
"Action": "kms:*",
"Resource": "*"
}
]
}
- Configure encryption at rest in the console
-
Per configurare la crittografia inattiva in un pool di utenti
-
Passa alla console Amazon Cognito. Potrebbe comparire una richiesta di inserimento delle credenziali AWS
.
-
Scegli User Pools (bacini d'utenza).
-
Scegli un bacino d'utenza esistente dall'elenco o creane uno nuovo.
-
Scegli il menu Impostazioni e vai alla scheda Sicurezza del pool di utenti. Individua Encryption at rest e seleziona Modifica.
-
In Tipo di chiave, seleziona la chiave AWS di proprietà o la chiave gestita dal cliente.
-
Se hai selezionato la chiave AWS proprietaria, non è richiesta alcuna configurazione aggiuntiva.
-
Se hai selezionato Chiave gestita dal cliente, inserisci l'ARN di una chiave KMS nell'ARN della chiave gestita dal cliente. Puoi anche scegliere Crea una AWS KMS chiave e aprire una nuova finestra nella AWS KMS console per creare una nuova chiave KMS.
-
Scegli Save changes (Salva modifiche).
- Configure encryption at rest with the API
-
Imposta la configurazione delle chiavi in una richiesta CreateUserPoolo UpdateUserPoolAPI. Il seguente esempio parziale del corpo della richiesta imposta un pool di utenti per utilizzare la chiave gestita dal cliente fornita. Per un esempio completo di richiesta, vedi Esempi.
"KeyConfiguration": {
"KeyType": "CUSTOMER_MANAGED_KEY",
"KmsKeyArn": "arn:aws:kms:us-east-1:111122223333:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE22222"
},
Il seguente corpo di richiesta di esempio parziale imposta un pool di utenti per utilizzare una chiave AWS di proprietà.
"KeyConfiguration": {
"KeyType": "AWS_OWNED_KEY"
},
Se la DescribeUserPoolrisposta non include un KeyConfiguration parametro, il pool di utenti è configurato per crittografare i dati inattivi con una chiave AWS proprietaria.
Crittografia dei dati in transito
In quanto servizio gestito, Amazon Cognito è protetto dalla sicurezza di rete AWS globale. Per informazioni sui servizi di AWS sicurezza e su come AWS protegge l'infrastruttura, consulta AWS Cloud Security. Per progettare il tuo AWS
ambiente utilizzando le migliori pratiche per la sicurezza dell'infrastruttura, vedi Infrastructure Protection in Security Pillar AWS Well‐Architected Framework.
Utilizzi chiamate API AWS pubblicate per accedere ad Amazon Cognito attraverso la rete. I client devono supportare quanto segue:
-
Transport Layer Security (TLS). È richiesto TLS 1.2 ed è consigliato TLS 1.3.
-
Suite di crittografia con Perfect Forward Secrecy (PFS) come DHE (Ephemeral) o ECDHE (Elliptic Curve Ephemeral Diffie-Hellman). Diffie-Hellman La maggior parte dei sistemi moderni, come Java 7 e versioni successive, supporta tali modalità.
I pool di utenti e i pool di identità di Amazon Cognito dispongono di operazioni IAM-authenticated API non autenticate e autorizzate tramite token. Alcune sono operazioni di tipo piano di controllo per operazioni amministrative come la configurazione di un dominio di pool di utenti, mentre altre sono operazioni di tipo data plane per l'autenticazione. Per ulteriori informazioni, consulta Elenco delle operazioni API raggruppate per modello di autorizzazione. Tutte le classi di operazioni API di Amazon Cognito condividono uno spazio dei nomi (per i pool di utenti, cognito-idp cognito-identity per i pool di identità) e gli endpoint di servizio.AWS gli endpoint di servizio richiedono la crittografia in transito con una versione TLS minima di 1.2.
I pool di utenti di Amazon Cognito ospitano l'accesso gestito e la classica interfaccia utente ospitata su domini Web serviti da distribuzioni Amazon di proprietà del servizio. CloudFront Amazon Cognito gestisce le impostazioni per la crittografia in transito su tali distribuzioni. Per ulteriori informazioni sulle impostazioni di crittografia per l'accesso gestito, consulta la versione TLS nel capitolo Accesso gestito.