Cifrado de datos en reposo para AWS Verified Access - AWS Acceso verificado

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.

Cifrado de datos en reposo para AWS Verified Access

AWS Verified Access cifra los datos en reposo de forma predeterminada mediante claves KMS AWS propias. Cuando el cifrado de los datos en reposo se realiza de forma predeterminada, ayuda a reducir la sobrecarga operativa y la complejidad que implica la protección de los datos confidenciales. Al mismo tiempo, le permite crear aplicaciones seguras que cumplen con los estrictos requisitos normativos y de conformidad con el cifrado. En las siguientes secciones se proporciona información detallada sobre cómo Acceso verificado utiliza las claves KMS para el cifrado de datos en reposo.

Acceso verificado y claves KMS

AWS claves propias

Acceso verificado utiliza claves KMS para cifrar automáticamente la información de identificación personal (PII). Esto ocurre de forma predeterminada y usted mismo no puede ver, administrar, usar ni auditar el uso de las claves propiedad de AWS. Sin embargo, no tiene que realizar ninguna acción ni cambiar ningún programa para proteger las claves que cifran sus datos. Para obtener más información, consulte las claves propiedad de AWS en la Guía para desarrolladores de AWS Key Management Service .

Si bien no puedes deshabilitar esta capa de cifrado ni seleccionar un tipo de cifrado alternativo, puedes añadir una segunda capa de cifrado sobre las claves de cifrado que ya AWS poseas si eliges una clave gestionada por el cliente al crear tus recursos de acceso verificado.

Claves administradas por el cliente

Acceso verificado admite el uso de claves simétricas administradas por el cliente que usted crea y administra, para agregar una segunda capa de cifrado sobre el cifrado predeterminado existente. Como usted tiene el control total de esta capa de cifrado, puede realizar tareas como las siguientes:

  • Establecer y mantener políticas de claves

  • Establecer y mantener concesiones y políticas de IAM

  • Habilitar y deshabilitar políticas de claves

  • Rotar el material criptográfico

  • Agregar etiquetas.

  • Crear alias de clave

  • Programar la eliminación de claves

Para obtener más información, consulte las claves administradas por el cliente en la  Guía para desarrolladores de AWS Key Management Service .

nota

Verified Access habilita automáticamente el cifrado en reposo mediante claves AWS propias para proteger los datos de identificación personal sin coste alguno.

Sin embargo, se aplicarán AWS KMS cargos cuando utilices una clave gestionada por el cliente. Para obtener más información acerca de los precios, consulte Precios de AWS Key Management Service.

Información personalmente identificable

En la siguiente tabla se resume la información de identificación personal (PII) que utiliza Acceso verificado y cómo se cifra.

Tipo de datos: AWS cifrado de clave propia Cifrado de claves administradas por el cliente (opcional)
Trust provider (user-type)

Los proveedores de confianza de tipo usuario contienen opciones de OIDC AuthorizationEndpoint, como, UserInfoEndpoint, ClientId, ClientSecret, etc., que se consideran PII.

Habilitado Habilitado
Trust provider (device-type)

Los proveedores de confianza de tipo dispositivo contienen una TenantId, que se considera PII.

Habilitado Habilitado
Group policy

Se proporciona durante la creación o modificación del grupo de Acceso verificado. Contiene reglas para autorizar las solicitudes de acceso. Puede contener información de identificación personal, como nombre de usuario y dirección de correo electrónico, etc.

Habilitado Habilitado
Endpoint policy

Se proporciona durante la creación o modificación del punto de conexión de Acceso verificado. Contiene reglas para autorizar las solicitudes de acceso. Puede contener información de identificación personal, como nombre de usuario y dirección de correo electrónico, etc.

Habilitado Habilitado

Cómo utiliza AWS Verified Access las concesiones en AWS KMS

Acceso verificado requiere una concesión para utilizar su clave administrada por el cliente.

Cuando creas recursos de acceso verificado cifrados con una clave administrada por el cliente, Verified Access crea una concesión en tu nombre enviando una CreateGrantsolicitud a AWS KMS. Las concesiones se AWS KMS utilizan para conceder a Verified Access el acceso a una clave gestionada por el cliente en tu cuenta.

Acceso verificado necesita la concesión para utilizar la clave administrada por el cliente para las siguientes operaciones internas:

  • Envíe solicitudes de descifrado AWS KMS a para descifrar las claves de datos cifrados para que puedan usarse para descifrar sus datos.

  • Envíe RetireGrantsolicitudes para AWS KMS eliminar una subvención.

Puede revocar el acceso a la concesión o eliminar el acceso del servicio a la clave administrada por el cliente en cualquier momento. Si lo hace, Acceso verificado no podrá acceder a ninguno de los datos cifrados por la clave administrada por el cliente, lo que afectará a las operaciones que dependen de esos datos.

Uso de claves administradas por el cliente con Acceso verificado

Puede crear una clave simétrica gestionada por el cliente mediante el AWS Management Console, o el AWS KMS APIs. Siga los pasos para crear una clave de cifrado simétrica de la Guía para AWS Key Management Service desarrolladores.

Políticas de claves

Las políticas de clave controlan el acceso a la clave administrada por el cliente. Cada clave administrada por el cliente debe tener exactamente una política de clave, que contiene instrucciones que determinan quién puede usar la clave y cómo puede utilizarla. Cuando crea la clave administrada por el cliente, puede especificar una política de clave. Para obtener más información, consulte las políticas clave en la Guía para AWS Key Management Service desarrolladores.

Para utilizar la clave administrada por el cliente con sus recursos de Acceso verificado, se deben permitir las siguientes operaciones de API en la política de claves:

  • kms:CreateGrant: añade una concesión a una clave administrada por el cliente. Otorga el acceso de control a una clave KMS específica, que permite acceder a las operaciones de concesión que requiere Acceso verificado. Para obtener más información, consulte Subvenciones en la Guía para AWS Key Management Service desarrolladores.

    Esto permite que Acceso verificado realice las siguientes tareas:

    • Llamar a GenerateDataKeyWithoutPlainText para generar una clave de datos cifrada y almacenarla, ya que la clave de datos no se utiliza inmediatamente para cifrar.

    • Llamar a Decrypt para usar la clave de datos cifrados almacenada para acceder a los datos cifrados.

    • Configurar una entidad principal que se retire para permitir que el servicio RetireGrant.

  • kms:DescribeKey: proporciona los detalles de la clave administrada por el cliente para permitir que Acceso verificado valide la clave.

  • kms:GenerateDataKey: permite que Acceso verificado utilice la clave para cifrar los datos.

  • kms:Decrypt: permitir que Acceso verificado descifre las claves de datos cifradas.

El siguiente es un ejemplo de política de claves que puede usar para Acceso verificado.

"Statement" : [ { "Sid" : "Allow access to principals authorized to use Verified Access", "Effect" : "Allow", "Principal" : { "AWS" : "*" }, "Action" : [ "kms:DescribeKey", "kms:CreateGrant", "kms:GenerateDataKey", "kms:Decrypt" ], "Resource" : "*", "Condition" : { "StringEquals" : { "kms:ViaService" : "verified-access.region.amazonaws.com", "kms:CallerAccount" : "111122223333" } }, { "Sid": "Allow access for key administrators", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action" : [ "kms:*" ], "Resource": "arn:aws:kms:region:111122223333:key/key_ID" }, { "Sid" : "Allow read-only access to key metadata to the account", "Effect" : "Allow", "Principal" : { "AWS" : "arn:aws:iam::111122223333:root" }, "Action" : [ "kms:Describe*", "kms:Get*", "kms:List*", "kms:RevokeGrant" ], "Resource" : "*" } ]

Para obtener más información, consulte Creación de una política clave y solución de problemas de acceso a las claves en la Guía para AWS Key Management Service desarrolladores.

Especificación de una clave administrada por el cliente para los recursos de Acceso verificado

Puede especificar una clave administrada por el cliente para proporcionar un cifrado de segunda capa para los siguientes recursos:

Al crear cualquiera de estos recursos mediante el AWS Management Console, puede especificar una clave gestionada por el cliente en la sección Cifrado adicional (opcional). Durante el proceso, active la casilla de verificación Personalizar la configuración de cifrado (avanzada) y, a continuación, introduzca el ID de AWS KMS clave que desee utilizar. Esto también se puede hacer al modificar un recurso existente o mediante la AWS CLI.

nota

Si se pierde la clave administrada por el cliente que se utiliza para añadir cifrado adicional a cualquiera de los recursos anteriores, los valores de configuración de los recursos dejarán de ser accesibles. Sin embargo, los recursos se pueden modificar mediante las teclas AWS Management Console o AWS CLI, para aplicar una nueva clave gestionada por el cliente y restablecer los valores de configuración.

AWS Contexto de cifrado de Verified Access

Un contexto de cifrado es un conjunto opcional de pares clave-valor que contienen información contextual adicional sobre los datos. AWS KMS utiliza el contexto de cifrado como datos autenticados adicionales para respaldar el cifrado autenticado. Al incluir un contexto de cifrado en una solicitud de cifrado de datos, AWS KMS vincula el contexto de cifrado a los datos cifrados. Para descifrar los datos, debe incluir el mismo contexto de cifrado en la solicitud.

AWS Contexto de cifrado de Verified Access

Verified Access utiliza el mismo contexto de cifrado en todas las operaciones AWS KMS criptográficas, donde la clave es aws:verified-access:arn y el valor es el nombre de recurso de Amazon (ARN) del recurso. A continuación, se muestran los contextos de cifrado de los recursos de Acceso verificado.

Proveedor de confianza de Acceso verificado

"encryptionContext": { "aws:verified-access:arn": "arn:aws:ec2:region:111122223333:VerifiedAccessTrustProviderId" }

Grupo de Acceso verificado

"encryptionContext": { "aws:verified-access:arn": "arn:aws:ec2:region:111122223333:VerifiedAccessGroupId" }

Punto de conexión de Acceso verificado

"encryptionContext": { "aws:verified-access:arn": "arn:aws:ec2:region:111122223333:VerifiedAccessEndpointId" }

Supervisión de las claves de cifrado para AWS el acceso verificado

Cuando utilizas una clave KMS gestionada por el cliente con tus recursos de acceso AWS verificado, puedes utilizarla AWS CloudTrailpara realizar un seguimiento de las solicitudes que envía Verified Access AWS KMS.

Los siguientes ejemplos son AWS CloudTrail eventos paraCreateGrant,, y RetireGrant Decrypt DescribeKeyGenerateDataKey, que supervisan las operaciones de KMS solicitadas por Verified Access para acceder a los datos cifrados por la clave de KMS administrada por el cliente:

CreateGrant

Cuando utiliza una clave administrada por el cliente para cifrar sus recursos, Acceso verificado envía una solicitud CreateGrant en su nombre para acceder a la clave de su cuenta de AWS . La concesión que crea Acceso verificado es específica para el recurso asociado a la clave administrada por el cliente.

El siguiente evento de ejemplo registra la operación CreateGrant:

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AKIAI44QH8DHBEXAMPLE", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AKIAI44QH8DHBEXAMPLE", "arn": "arn:aws:iam::111122223333:role/Admin", "accountId": "111122223333", "userName": "Admin" }, "webIdFederationData": {}, "attributes": { "creationDate": "2023-09-11T16:27:12Z", "mfaAuthenticated": "false" } }, "invokedBy": "verified-access.amazonaws.com" }, "eventTime": "2023-09-11T16:41:42Z", "eventSource": "kms.amazonaws.com", "eventName": "CreateGrant", "awsRegion": "ca-central-1", "sourceIPAddress": "verified-access.amazonaws.com", "userAgent": "verified-access.amazonaws.com", "requestParameters": { "operations": [ "Decrypt", "RetireGrant", "GenerateDataKey" ], "keyId": "arn:aws:kms:ca-central-1:111122223333:key/5ed79e7f-88c9-420c-ae1a-61ee87104dae", "constraints": { "encryptionContextSubset": { "aws:verified-access:arn": "arn:aws:ec2:ca-central-1:111122223333:verified-access-trust-provider/vatp-0e54f581e2e5c97a2" } }, "granteePrincipal": "verified-access.ca-central-1.amazonaws.com", "retiringPrincipal": "verified-access.ca-central-1.amazonaws.com" }, "responseElements": { "grantId": "e5a050fff9893ba1c43f83fddf61e5f9988f579beaadd6d4ad6d1df07df6048f", "keyId": "arn:aws:kms:ca-central-1:111122223333:key/5ed79e7f-88c9-420c-ae1a-61ee87104dae" }, "requestID": "0faa837e-5c69-4189-9736-3957278e6444", "eventID": "1b6dd8b8-cbee-4a83-9b9d-d95fa5f6fd08", "readOnly": false, "resources": [ { "accountId": "AWS Internal", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:ca-central-1:111122223333:key/5ed79e7f-88c9-420c-ae1a-61ee87104dae" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }
RetireGrant

Acceso verificado utiliza la operación RetireGrant para eliminar una concesión cuando se elimina un recurso.

El siguiente evento de ejemplo registra la operación RetireGrant:

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AKIAI44QH8DHBEXAMPLE", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AKIAI44QH8DHBEXAMPLE", "arn": "arn:aws:iam::111122223333:role/Admin", "accountId": "111122223333", "userName": "Admin" }, "webIdFederationData": {}, "attributes": { "creationDate": "2023-09-11T16:42:33Z", "mfaAuthenticated": "false" } }, "invokedBy": "verified-access.amazonaws.com" }, "eventTime": "2023-09-11T16:47:53Z", "eventSource": "kms.amazonaws.com", "eventName": "RetireGrant", "awsRegion": "ca-central-1", "sourceIPAddress": "verified-access.amazonaws.com", "userAgent": "verified-access.amazonaws.com", "requestParameters": null, "responseElements": { "keyId": "arn:aws:kms:ca-central-1:111122223333:key/5ed79e7f-88c9-420c-ae1a-61ee87104dae" }, "additionalEventData": { "grantId": "b35e66f9bacb266cec214fcaa353c9cf750785e28773e61ba6f434d8c5c7632f" }, "requestID": "7d4a31c2-d426-434b-8f86-336532a70462", "eventID": "17edc343-f25b-43d4-bbff-150d8fff4cf8", "readOnly": false, "resources": [ { "accountId": "AWS Internal", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:ca-central-1:111122223333:key/5ed79e7f-88c9-420c-ae1a-61ee87104dae" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }
Decrypt

Acceso verificado llama a la operación Decrypt para que utilice la clave de datos cifrados almacenada para acceder a los datos cifrados.

El siguiente evento de ejemplo registra la operación Decrypt:

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AKIAI44QH8DHBEXAMPLE", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AKIAI44QH8DHBEXAMPLE", "arn": "arn:aws:iam::111122223333:role/Admin", "accountId": "111122223333", "userName": "Admin" }, "webIdFederationData": {}, "attributes": { "creationDate": "2023-09-11T17:19:33Z", "mfaAuthenticated": "false" } }, "invokedBy": "verified-access.amazonaws.com" }, "eventTime": "2023-09-11T17:47:05Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "ca-central-1", "sourceIPAddress": "verified-access.amazonaws.com", "userAgent": "verified-access.amazonaws.com", "requestParameters": { "encryptionAlgorithm": "SYMMETRIC_DEFAULT", "keyId": "arn:aws:kms:ca-central-1:111122223333:key/380d006e-706a-464b-99c5-68768297114e", "encryptionContext": { "aws:verified-access:arn": "arn:aws:ec2:ca-central-1:111122223333:verified-access-trust-provider/vatp-00f20a4e455e9340f", "aws-crypto-public-key": "AkK+vi1W/acBKv7OR8p2DeUrA8EgpTffSrjBqNucODuBYhyZ3hlMuYYJz9x7CwQWZw==" } }, "responseElements": null, "requestID": "2e920fd3-f2f6-41b2-a5e7-2c2cb6f853a9", "eventID": "3329e0a3-bcfb-44cf-9813-8106d6eee31d", "readOnly": true, "resources": [ { "accountId": "AWS Internal", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:ca-central-1:111122223333:key/380d006e-706a-464b-99c5-68768297114e" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }
DescribeKey

Acceso verificado utiliza la operación DescribeKey para comprobar si la clave administrada por el cliente que está asociada al recurso existe en la cuenta y la región.

El siguiente evento de ejemplo registra la operación DescribeKey:

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AKIAI44QH8DHBEXAMPLE", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AKIAI44QH8DHBEXAMPLE", "arn": "arn:aws:iam::111122223333:role/Admin", "accountId": "111122223333", "userName": "Admin" }, "webIdFederationData": {}, "attributes": { "creationDate": "2023-09-11T17:19:33Z", "mfaAuthenticated": "false" } }, "invokedBy": "verified-access.amazonaws.com" }, "eventTime": "2023-09-11T17:46:48Z", "eventSource": "kms.amazonaws.com", "eventName": "DescribeKey", "awsRegion": "ca-central-1", "sourceIPAddress": "verified-access.amazonaws.com", "userAgent": "verified-access.amazonaws.com", "requestParameters": { "keyId": "arn:aws:kms:ca-central-1:111122223333:key/380d006e-706a-464b-99c5-68768297114e" }, "responseElements": null, "requestID": "5b127082-6691-48fa-bfb0-4d40e1503636", "eventID": "ffcfc2bb-f94b-4c00-b6fb-feac77daff2a", "readOnly": true, "resources": [ { "accountId": "AWS Internal", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:ca-central-1:111122223333:key/380d006e-706a-464b-99c5-68768297114e" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }
GenerateDataKey

El siguiente ejemplo de evento registra la operación GenerateDataKey:

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AKIAI44QH8DHBEXAMPLE", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AKIAI44QH8DHBEXAMPLE", "arn": "arn:aws:iam::111122223333:role/Admin", "accountId": "111122223333", "userName": "Admin" }, "webIdFederationData": {}, "attributes": { "creationDate": "2023-09-11T17:19:33Z", "mfaAuthenticated": "false" } }, "invokedBy": "verified-access.amazonaws.com" }, "eventTime": "2023-09-11T17:46:49Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "awsRegion": "ca-central-1", "sourceIPAddress": "verified-access.amazonaws.com", "userAgent": "verified-access.amazonaws.com", "requestParameters": { "encryptionContext": { "aws:verified-access:arn": "arn:aws:ec2:ca-central-1:111122223333:verified-access-trust-provider/vatp-00f20a4e455e9340f", "aws-crypto-public-key": "A/ATGxaYatPUlOtM+l/mfDndkzHUmX5Hav+29IlIm+JRBKFuXf24ulztmOIsqFQliw==" }, "numberOfBytes": 32, "keyId": "arn:aws:kms:ca-central-1:111122223333:key/380d006e-706a-464b-99c5-68768297114e" }, "responseElements": null, "requestID": "06535808-7cce-4ae1-ab40-e3afbf158a43", "eventID": "1ce79601-5a5e-412c-90b3-978925036526", "readOnly": true, "resources": [ { "accountId": "AWS Internal", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:ca-central-1:111122223333:key/380d006e-706a-464b-99c5-68768297114e" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }