Administración de claves en Amazon Managed Service para Apache Flink - Managed Service para Apache Flink

Amazon Managed Service para Apache Flink Amazon (Amazon MSF) se denominaba anteriormente Amazon Kinesis Data Analytics para Apache Flink.

Administración de claves en Amazon Managed Service para Apache Flink

En Amazon MSF, puede optar por utilizar Claves administradas por AWS o sus propias claves administrada por el cliente (CMK) para cifrar los datos. Las CMK en AWS Key Management Service (AWS KMS) son claves de cifrado que crea, posee y administra usted.

Cifrar datos en tránsito: de forma predeterminada, Amazon Managed Service para Apache Flink (Amazon MSF) utiliza Claves propiedad de AWS (AOK) para cifrar los datos en un almacenamiento efímero (almacenamiento de aplicaciones en ejecución) y duradero (almacenamiento de aplicaciones duradero). Esto significa que todos los datos sujetos a un punto de control o instantánea de Flink se cifrarán de forma predeterminada. Los AOK son el método de cifrado predeterminado en Amazon MSF y no se requiere ninguna configuración adicional. Para cifrar los datos en tránsito, Amazon MSF usa TLS y HTTP+SSL de forma predeterminada y no requiere ninguna configuración adicional.

En Amazon MSF, CMK es una función en la que puede cifrar los datos de su aplicación con una clave que usted crea, posee y administra. AWS KMS

¿Qué se cifra con CMK?

En una aplicación de Amazon MSF, los datos sujetos a un punto de control o una instantánea de Flink se cifrarán con una CMK que se defina para esa aplicación. En consecuencia, su CMK cifrará los datos almacenados en el almacenamiento de aplicaciones en ejecución o en el almacenamiento de aplicaciones duraderas. En las siguientes secciones se describe el procedimiento para configurar las CMK para las aplicaciones de Amazon MSF.

Política de rotación de claves

Amazon MSF no administra la política de rotación de claves para las CMK. Es responsable de su propia rotación de claves. Esto se debe a que usted crea y mantiene las CMK. Para obtener información acerca de cómo utilizar su política de rotación de claves con CMK en Amazon MSF, consulte Política de rotación de claves.

¿Qué no se cifra con las CMK?

Orígenes y receptores

Amazon MSF no administra el cifrado del origen de datos y los receptores de datos. Lo administra la configuración de origen o receptor o la configuración del conector de la aplicación.

Aplicación retroactiva del cifrado

Las CMK de Amazon MSF no admiten la aplicación retroactiva de las CMK a una instantánea histórica existente.

Cifrado de registro

Actualmente, Amazon MSF no admite el cifrado de registros mediante KMS CMK para los registros generados por el tarro de código de la aplicación. Deberá asegurarse de que los registros no contengan datos que requieran el cifrado CMK.

Cifrado de datos en tránsito

No puede utilizar una CMK para cifrar datos en tránsito. De forma predeterminada, Amazon MSF cifra todos los datos en tránsito mediante TLS o HTTP y SSL.

Tipos de claves KMS compatibles

CMK en Amazon MSF admite claves simétricas.

Permisos de claves de KMS

CMK en Amazon MSF requiere permiso para realizar las siguientes acciones de KMS. Estos permisos son necesarios para validar el acceso, crear un almacenamiento de aplicaciones cifradas con CMK en ejecución y almacenar el estado de las aplicaciones cifradas con CMK en un almacenamiento de aplicaciones duradero.

  • kms:DescribeKey

    Concede permiso para resolver un alias de clave de KMS en el ARN de clave.

  • kms:Decrypt

    Concede permiso para acceder al estado duradero de las aplicaciones y aprovisionar el almacenamiento de las aplicaciones en ejecución.

  • kms:GenerateDataKey

    Otorga permiso para almacenar el estado duradero de las aplicaciones.

  • kms:GenerateDataKeyWithoutPlaintext

    Concede permiso para provisionar almacenamiento de aplicaciones en ejecución

  • kms:CreateGrant

    Concede permiso para acceder al almacenamiento de aplicaciones en ejecución.

Contexto y restricciones del cifrado de KMS

CMK en Amazon MSF proporciona un contexto de cifrado al acceder a las claves para leer o escribir datos cifrados, es decir, kms:EncryptionContext:aws:kinesisanalytics:arn. Además del contexto de cifrado, los contextos fuente aws:SourceArn y aws:SourceAccount se proporcionan al leer o escribirun almacenamiento duradero de aplicaciones.

Al crear una concesión para aprovisionar almacenamiento cifrado de aplicaciones en ejecución, Amazon MSF CMK crea concesiones con el tipo de restricción EncryptionContextSubset, lo que garantiza que solo se permita la operación de Descifrado mediante "kms:GrantOperations": "Decrypt".

Política de rotación de claves

Amazon MSF no administra la política de rotación de claves para CMK. Usted es responsable de su propia rotación de claves porque crea y mantiene sus CMK.

En KMS, se utiliza la rotación de claves automática o manual para crear nuevo material criptográfico para las CMK. Para obtener información sobre cómo rotar las claves, consulte Rotar AWS KMS keys en la Guía para desarrolladores de AWS Key Management Service.

Al rotar las claves de las CMK en Amazon MSF, debe asegurarse de que el operador (iniciador de la API) tiene permisos tanto para la clave anterior como para la nueva.

nota

Una aplicación puede partir de una instantánea que se cifró con AOK después de configurarla para usar CMK. Una aplicación también puede partir de una instantánea cifrada con una CMK anterior. Para iniciar una aplicación a partir de una instantánea, el operador (iniciador de la API) debe tener permisos tanto para la clave antigua como para la nueva.

En Amazon MSF, se recomienda que detenga y reinicie las aplicaciones mediante el cifrado CMK. Esto garantiza que la nueva clave maestra de rotación se aplique a todos los datos del almacenamiento de aplicaciones en ejecución y del almacenamiento duradero de aplicaciones. Si no detiene y reinicia la aplicación, el nuevo material de claves solo se aplicará al almacenamiento duradero de las aplicaciones. El almacenamiento de aplicaciones en ejecución seguirá cifrándose con el material de claves de rotación anterior.

Si va a cambiar el ARN de AWS KMS key utilizado para CMK, debe utilizar UpdateApplication en Amazon MSF. Esto garantizará que la aplicación Flink se reinicie como parte de la aplicación de UpdateApplication de los cambios de CMK.

nota

Cuando proporciona un alias o un ARN de alias, Amazon MSF convierte el alias en la clave ARN y la almacena como la clave configurada para la aplicación.

Declaraciones de política de claves

Para obtener más información sobre esta declaración de política de claves, consulte Creación de una política de claves de KMS y Permisos del operador del ciclo de vida de la aplicación (emisor que llama a la API) .

Ejemplo de entradas de registro de AWS CloudTrail

Cuando Amazon MSF utiliza CMK en AWS KMS, AWS CloudTrail registra automáticamente todas las llamadas a la API AWS KMS y los detalles relacionados. Estos registros contienen información, como la realización de la solicitud de parte de Servicio de AWS, el ARN de la clave de KMS, las acciones de la API realizadas y las marcas de tiempo que excluyen los datos cifrados. Estos registros proporcionan registros de auditoría esenciales para el cumplimiento, la supervisión de la seguridad y la solución de problemas, ya que muestran qué servicios accedieron a sus claves y cuándo.

Ejemplo 1: Descifrado de una llamada a la API mediante un rol asumido de AWS KMS en Amazon MSF

El siguiente registro de CloudTrail muestra a Amazon MSF realizando una operación de prueba KMS:Decrypt en una CMK. Amazon MSF realiza esta solicitud mediante un rol de Operator mientras usa la API CreateApplication. El siguiente registro incluye detalles esenciales, como el ARN de la clave de KMS de destino, la aplicación Amazon MSF asociada (myCMKApplication) y la marca de tiempo de la operación.

{ "eventVersion": "1.11", "userIdentity": { "type": "AssumedRole", "principalId": "REDACTED", "arn": "arn:aws:sts::123456789012:assumed-role/Operator/CmkTestingSession", "accountId": "123456789012", "accessKeyId": "REDACTED", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "REDACTED", "arn": "arn:aws:iam::123456789012:role/Operator", "accountId": "123456789012", "userName": "Operator" }, "attributes": { "creationDate": "2025-08-07T13:29:28Z", "mfaAuthenticated": "false" } }, "invokedBy": "kinesisanalytics.amazonaws.com" }, "eventTime": "2025-08-07T13:45:45Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-east-1", "sourceIPAddress": "kinesisanalytics.amazonaws.com", "userAgent": "kinesisanalytics.amazonaws.com", "errorCode": "DryRunOperationException", "errorMessage": "The request would have succeeded, but the DryRun option is set.", "requestParameters": { "encryptionContext": { "aws:kinesisanalytics:arn": "arn:aws:kinesisanalytics:us-east-1:123456789012:application/MyCmkApplication" }, "keyId": "arn:aws:kms:us-east-1:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab", "encryptionAlgorithm": "SYMMETRIC_DEFAULT", "dryRun": true }, "responseElements": null, "additionalEventData": { "keyMaterialId": "REDACTED" }, "requestID": "56764d19-1eb1-48f1-8044-594aa7dd05c4", "eventID": "1371b402-f1dc-4c47-8f3a-1004e4803c5a", "readOnly": true, "resources": [ { "accountId": "123456789012", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-east-1:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "123456789012", "eventCategory": "Management" }
Ejemplo 2: Descifrado de una llamada a la API en Amazon MSF de AWS KMS con autenticación de servicio directa

El siguiente registro de CloudTrail muestra a Amazon MSF realizando una operación de prueba KMS:Decrypt en una CMK. Amazon MSF realiza esta solicitud mediante la autenticación directa de servicio a servicio de AWS en lugar de asumir una función. El siguiente registro incluye detalles esenciales, como el ARN de la clave de KMS de destino, la aplicación Amazon MSF asociada (myCMKApplication) y un ID de evento compartido de la operación.

{ "eventVersion": "1.11", "userIdentity": { "type": "AWSService", "invokedBy": "kinesisanalytics.amazonaws.com" }, "eventTime": "2025-08-07T13:45:45Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-east-1", "sourceIPAddress": "kinesisanalytics.amazonaws.com", "userAgent": "kinesisanalytics.amazonaws.com", "errorCode": "DryRunOperationException", "errorMessage": "The request would have succeeded, but the DryRun option is set.", "requestParameters": { "encryptionAlgorithm": "SYMMETRIC_DEFAULT", "keyId": "arn:aws:kms:us-east-1:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab", "encryptionContext": { "aws:kinesisanalytics:arn": "arn:aws:kinesisanalytics:us-east-1:123456789012:application/MyCmkApplication" }, "dryRun": true }, "responseElements": null, "additionalEventData": { "keyMaterialId": "REDACTED" }, "requestID": "5fe45ada-7519-4608-be2f-5a9b8ddd62b2", "eventID": "6206b08f-ce04-3011-9ec2-55951d357b2c", "readOnly": true, "resources": [ { "accountId": "123456789012", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-east-1:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "Application-account-ID", "sharedEventID": "acbe4a39-ced9-4f53-9f3c-21ef7e89dc37", "eventCategory": "Management" }