

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.

# Administración de claves en Amazon Managed Service para Apache Flink
<a name="key-management-flink"></a>

En Amazon MSF, puede optar por utilizar una de las claves gestionadas por el cliente () [Claves administradas por AWS](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html)o sus propias [claves gestionadas por el cliente (CMKs)](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-mgn-key) para cifrar los datos. CMKs in AWS Key Management Service (AWS KMS) son claves de cifrado que usted mismo crea, posee y administra.

**Topics**
+ [Cifrado transparente en el HDFS en Amazon EMR](#transparent-encryption-flink)
+ [Claves administradas por el cliente en Amazon MSF](#cmk-flink)
+ [Uso de claves administradas por el cliente en Amazon QLDB](use-cmk-flink.md)
+ [Administrar CMK mediante Consola de administración de AWS](manage-cmk-console.md)
+ [Administrar CMK mediante APIs](manage-cmk-api.md)

## Cifrado transparente en el HDFS en Amazon EMR
<a name="transparent-encryption-flink"></a>

De forma predeterminada, Amazon MSF utiliza Claves propiedad de AWS (AOKs) 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](how-fault.md) o una [instantánea](how-snapshots.md) de Flink se cifrarán de forma predeterminada. AOKs son el método de cifrado predeterminado en Amazon MSF y no es necesaria ninguna configuración adicional. Para cifrar los datos en tránsito, Amazon MSF usa TLS y HTTP\$1SSL de forma predeterminada y no requiere ninguna configuración adicional.

## Claves administradas por el cliente en Amazon MSF
<a name="cmk-flink"></a>

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

**Topics**
+ [¿Con qué se cifra? CMKs](#what-is-encrypted-cmk)
+ [¿Con qué no se cifra CMKs?](#what-is-not-encrypted-cmk)
+ [Tipos de claves KMS compatibles](#supported-kms-key-types)
+ [Permisos de claves de KMS](#kms-key-permissions)
+ [Contexto y restricciones del cifrado de KMS](#kms-encryption-context-constraints)
+ [Política de rotación de claves](#kms-key-rotation-policy)
+ [Declaraciones de política de claves](#kms-least-privilege-policy-examples)
+ [Ejemplo de entradas de registro AWS CloudTrail](#kms-cloudtrail-log-entries)

### ¿Con qué se cifra? CMKs
<a name="what-is-encrypted-cmk"></a>

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](manage-cmk-api.md) se describe el procedimiento de configuración de CMKs las aplicaciones de Amazon MSF.

**Política de rotación de claves**  
Amazon MSF no gestiona la política de rotación de claves para usted CMKs. Es responsable de su propia rotación de claves. Esto se debe a que usted crea y mantiene CMKs. 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](#kms-key-rotation-policy).

### ¿Con qué no se cifra CMKs?
<a name="what-is-not-encrypted-cmk"></a>

**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**  
CMK en Amazon MSF no admite la aplicación retroactiva a una instantánea CMKs 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
<a name="supported-kms-key-types"></a>

CMK en Amazon MSF admite [claves simétricas](https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-choose-key-spec.html#symmetric-cmks).

### Permisos de claves de KMS
<a name="kms-key-permissions"></a>

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.
+ 

**[km: DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)**  
Concede permiso para resolver un alias de clave de KMS en el ARN de clave.
+ 

**[kms:Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)**  
Concede permiso para acceder al estado duradero de las aplicaciones y aprovisionar el almacenamiento de las aplicaciones en ejecución.
+ 

**[km: GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)**  
Otorga permiso para almacenar el estado duradero de las aplicaciones.
+ 

**[km: GenerateDataKeyWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyWithoutPlaintext.html)**  
Concede permiso para provisionar almacenamiento de aplicaciones en ejecución
+ 

**[km: CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)**  
Concede permiso para acceder al almacenamiento de aplicaciones en ejecución.

### Contexto y restricciones del cifrado de KMS
<a name="kms-encryption-context-constraints"></a>

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](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) y [aws: SourceAccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) se proporcionan al leer o escribir un almacenamiento duradero de aplicaciones.

Al crear una concesión para aprovisionar almacenamiento cifrado de aplicaciones en ejecución, Amazon MSF CMK crea concesiones con un tipo de restricción que [EncryptionContextSubset](https://docs.aws.amazon.com/kms/latest/developerguide/create-grant-overview.html#grant-constraints)garantiza que solo se permita la operación de [descifrado.](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) `"kms:GrantOperations": "Decrypt"`

### Política de rotación de claves
<a name="kms-key-rotation-policy"></a>

Amazon MSF no gestiona la política de rotación de claves para usted CMKs. Eres responsable de tu propia rotación de claves porque tú la creas y la CMKs mantienes.

En KMS, utiliza la rotación de claves automática o manual para crear nuevo material criptográfico para usted CMKs. Para obtener información sobre cómo rotar las claves, consulte [Rotar AWS KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html) en la *Guía para desarrolladores de AWS Key Management Service *.

Al rotar las claves CMKs en Amazon MSF, debe asegurarse de que el operador (la persona que llama a 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 AWS KMS key ARN utilizado para CMK, debe utilizarlo en [UpdateApplication](https://docs.aws.amazon.com/managed-flink/latest/apiv2/API_UpdateApplication.html)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
<a name="kms-least-privilege-policy-examples"></a>

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](manage-cmk-api.md#create-cmk-kms-key-policy) y [Permisos del operador del ciclo de vida de la aplicación (emisor que llama a la API)](manage-cmk-api.md#create-cmk-kms-api-caller-permissions).

### Ejemplo de entradas de registro AWS CloudTrail
<a name="kms-cloudtrail-log-entries"></a>

Cuando Amazon MSF lo utiliza CMKs AWS KMS, registra AWS CloudTrail automáticamente todas las llamadas a la AWS KMS API y los detalles relacionados. Estos registros contienen información, como la Servicio de AWS realización de la solicitud, 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: AWS KMS Descifrar una llamada a la API mediante un rol asumido en Amazon MSF**  
El siguiente CloudTrail registro muestra a Amazon MSF realizando una operación de prueba [KMS:Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) en una CMK. Amazon MSF realiza esta solicitud mediante un **Operator** rol mientras usa la [CreateApplication](https://docs.aws.amazon.com/managed-flink/latest/apiv2/API_CreateApplication.html)API. El siguiente registro incluye detalles esenciales, como 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: AWS KMS Descifrar una llamada a la API en Amazon MSF con autenticación de servicio directa**  
El siguiente CloudTrail registro muestra a Amazon MSF realizando una operación de prueba [KMS:Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) en una CMK. Amazon MSF realiza esta solicitud mediante AWS service-to-service autenticación directa en lugar de asumir un rol. El siguiente registro incluye detalles esenciales, como 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"
}
```