Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Protección de datos en Amazon Cognito
El modelo de responsabilidad AWS compartida modelo se aplica a la protección de datos en Amazon Cognito (Amazon Cognito). Como se describe en este modelo, AWS es responsable de proteger la infraestructura global en la que se ejecuta toda la AWS nube. Eres responsable de mantener el control sobre el contenido alojado en esta infraestructura. Este contenido incluye las tareas de configuración y administración de la seguridad de AWS los servicios que utiliza. Para obtener más información sobre la privacidad de datos, consulte Preguntas frecuentes sobre la privacidad de datos.
Con fines de protección de datos, le recomendamos que proteja las credenciales de las AWS cuentas y configure cuentas de usuario individuales con AWS Identity and Access Management (IAM). De esta manera, cada usuario recibe únicamente los permisos necesarios para cumplir con sus obligaciones laborales. También recomendamos proteger sus datos de las siguientes maneras:
-
Utiliza la autenticación multifactor (MFA) en cada cuenta.
-
Se utiliza SSL/TLS para comunicarse con AWS los recursos.
-
Configure la API y el registro de actividad de los usuarios con AWS CloudTrail.
-
Utilice soluciones de AWS cifrado, junto con todos los controles de seguridad predeterminados de AWS
los servicios.
-
Utilice avanzados servicios de seguridad administrados, como Amazon Macie, que lo ayuden a detectar y proteger los datos personales almacenados en Amazon S3.
Le recomendamos encarecidamente que nunca introduzca información de identificación confidencial, como, por ejemplo, números de cuenta de sus clientes, en los campos de formato libre, como el campo Nombre. Esto incluye cuando trabaja con Amazon Cognito u otros AWS
servicios mediante la consola, la API o AWS los AWS CLI SDK. Es posible que cualquier dato que ingrese en Amazon Cognito o en otros servicios se incluya en los registros de diagnóstico. Cuando proporcione una URL a un servidor externo, no incluya información de credenciales en la URL para validar la solicitud para ese servidor.
Cifrado de datos
El cifrado de datos normalmente se divide en dos categorías: el cifrado en reposo y el cifrado en tránsito.
Cifrado en reposo
Los datos de los grupos de usuarios y grupos de identidades de Amazon Cognito se cifran en reposo de acuerdo con los estándares del sector.
- AWS clave propia
-
Amazon Cognito cifra los datos de su grupo de usuarios o grupo de identidades con una clave de KMS propia AWS . Las claves de este tipo no están visibles en. AWS KMS
- Clave administrada por el cliente
-
Amazon Cognito cifra los datos de su grupo de usuarios con una clave gestionada por el cliente. Usted es el propietario de la administración de las políticas clave gestionadas por el cliente, de la rotación y de la eliminación programada.
Es posible que el cifrado con claves administradas por el cliente no esté disponible en algunos grupos de usuarios. Newly-created Los grupos de usuarios siempre disponen de esta forma de cifrado.
Lo que debe saber sobre el cifrado de grupos de usuarios con claves administradas por el cliente
-
Todos los datos de los clientes de los grupos de usuarios se cifran en reposo, incluso si no se toman medidas para configurar los ajustes de cifrado.
-
Amazon Cognito solo admite claves KMS simétricas en el mismo Región de AWS grupo de usuarios para el cifrado del grupo de usuarios en reposo. No puede configurar el cifrado de grupos de usuarios en reposo con claves asimétricas. Puede configurar el cifrado en reposo con claves de una sola región y con claves de varias regiones que estén en la misma región que su grupo de usuarios.
-
Puede configurar el cifrado del grupo de usuarios solo con un ARN de clave KMS, no con un alias.
Cifrado de PII
Amazon Cognito respalda la confidencialidad, integridad y disponibilidad de la información de identificación personal (PII) en las búsquedas de atributos de los usuarios con un cifrado que permite realizar búsquedas. Estas funciones del código de autenticación de Hash-based mensajes (HMAC), optimizadas para el rendimiento de los conjuntos de datos de grupos de usuarios, mapean entre los valores cifrados y en texto plano de los atributos de los usuarios. Amazon Cognito calcula los valores de HMAC con la clave KMS que cifra el grupo de usuarios. Esta protección se aplica a los siguientes atributos:
-
sub
-
email
-
phone_number
-
given_name
-
family_name
-
name
-
username
-
preferred_username
-
cognito:user_status
Los siguientes procedimientos configuran el cifrado en reposo en el grupo de usuarios. Para obtener más información sobre las políticas clave de KMS que delegan el acceso, Servicios de AWS como Amazon Cognito, consulte Permisos para Amazon Cognito en las políticas clave.
- Set customer managed key policy
-
Para utilizar una clave gestionada por el cliente, la clave debe confiar en un director de servicio de Amazon Cognito para realizar las operaciones de cifrado y descifrado de la clave. Configure la política de claves de su clave KMS como se muestra en el siguiente ejemplo. El director de IAM que redacta esta política debe tener acceso de escritura a su clave de KMS, con kms:PutKeyPolicy permiso.
{
"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
-
Aplique esta política a su clave de KMS cuando haya configurado la exportación de registros. Esta política permite a Amazon Cognito cifrar los registros a medida que los exporta y al servicio intermedio descifrarlos antes de escribirlos en su CloudWatch grupo de registros. Configure la política de claves de su clave KMS como se muestra en el siguiente ejemplo. El director de IAM que redacta esta política debe tener acceso de escritura a su clave de KMS, con kms:PutKeyPolicy permiso.
{
"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
-
Para configurar el cifrado en reposo en un grupo de usuarios
-
Diríjase a la consola de Amazon Cognito. Es posible que se le soliciten sus credenciales de AWS
.
-
Elija User Pools (Grupos de usuarios).
-
Elija un grupo de usuarios existente en la lista o cree un grupo de usuarios.
-
Seleccione el menú Configuración y vaya a la pestaña de seguridad del grupo de usuarios. Localice Encryption at rest y seleccione Editar.
-
En Tipo de clave, selecciona la clave propia o la clave AWS gestionada por el cliente.
-
Si seleccionó la AWS clave propia, no se requiere ninguna configuración adicional.
-
Si seleccionó la clave administrada por el cliente, introduzca el ARN de una clave de KMS en el ARN de la clave administrada por el cliente. También puede elegir Crear una AWS KMS clave y abrir una nueva ventana en la AWS KMS consola para crear una nueva clave KMS.
-
Seleccione Save changes (Guardar cambios).
- Configure encryption at rest with the API
-
Establezca la configuración de la clave en una solicitud de UpdateUserPoolAPI CreateUserPoolo en una solicitud. El siguiente ejemplo parcial del cuerpo de la solicitud establece un grupo de usuarios para usar la clave administrada por el cliente proporcionada. Para ver un ejemplo de solicitud completo, consulte Ejemplos.
"KeyConfiguration": {
"KeyType": "CUSTOMER_MANAGED_KEY",
"KmsKeyArn": "arn:aws:kms:us-east-1:111122223333:key/a1b2c3d4-5678-90ab-cdef-EXAMPLE22222"
},
El siguiente ejemplo parcial del cuerpo de la solicitud establece que un grupo de usuarios utilice AWS una clave propia.
"KeyConfiguration": {
"KeyType": "AWS_OWNED_KEY"
},
Si la DescribeUserPoolrespuesta no incluye ningún KeyConfiguration parámetro, el grupo de usuarios está configurado para cifrar los datos en reposo con una clave AWS propia.
Cifrado en tránsito
Como servicio gestionado, Amazon Cognito está protegido por la seguridad de la red AWS global. Para obtener información sobre los servicios AWS de seguridad y cómo se AWS protege la infraestructura, consulte Seguridad AWS en la nube. Para diseñar su AWS
entorno utilizando las mejores prácticas de seguridad de la infraestructura, consulte Protección de infraestructuras en un marco de buena AWS arquitectura basado en el pilar de la seguridad.
Las llamadas a la API AWS publicadas se utilizan para acceder a Amazon Cognito a través de la red. Los clientes deben admitir lo siguiente:
-
Seguridad de la capa de transporte (TLS). Exigimos TLS 1.2 y recomendamos TLS 1.3.
-
Paquetes de cifrado con perfecto secreto directo (PFS), como el DHE (Ephemeral) o el ECDHE (Elliptic Curve Ephemeral Diffie-Hellman). Diffie-Hellman La mayoría de los sistemas modernos como Java 7 y posteriores son compatibles con estos modos.
Los grupos de usuarios y grupos de identidades de Amazon Cognito tienen operaciones de IAM-authenticated API no autenticadas y autorizadas por token. Algunas son operaciones de tipo plano de control para operaciones administrativas, como la configuración de un dominio de grupo de usuarios, y otras son operaciones de tipo plano de datos para la autenticación. Para obtener más información, consulte Lista de operaciones de API agrupadas por modelo de autorización. Todas las clases de operaciones de la API de Amazon Cognito comparten un espacio de nombres (cognito-idppara grupos de usuarios, grupos de identidades) y puntos de enlace de cognito-identity servicio. AWS Los puntos de enlace del servicio requieren el cifrado en tránsito con una versión TLS mínima de 1.2.
Los grupos de usuarios de Amazon Cognito alojan el inicio de sesión gestionado y la clásica interfaz de usuario alojada en dominios web que se ofrecen desde distribuciones de Amazon propiedad del servicio. CloudFront Amazon Cognito administra la configuración del cifrado en tránsito en esas distribuciones. Para obtener más información sobre la configuración de cifrado del inicio de sesión administrado, consulte la versión TLS en el capítulo sobre el inicio de sesión administrado.