Gerenciamento de chaves no Amazon Managed Service para Apache Flink - Managed Service for Apache Flink

O Amazon Managed Service para Apache Flink (Amazon MSF) era conhecido anteriormente como Amazon Kinesis Data Analytics for Apache Flink.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Gerenciamento de chaves no Amazon Managed Service para Apache Flink

No Amazon MSF, você pode optar por usar uma Chaves gerenciadas pela AWSou suas próprias chaves gerenciadas pelo cliente (CMKs) para criptografar dados. CMKs in AWS Key Management Service (AWS KMS) são chaves de criptografia que você mesmo cria, possui e gerencia.

Por padrão, o Amazon MSF usa Chaves pertencentes à AWS (AOKs) para criptografar seus dados em armazenamento efêmero (armazenamento de aplicativos em execução) e durável (armazenamento durável de aplicativos). Isso significa que todos os dados sujeitos a um ponto de verificação ou instantâneo do Flink serão criptografados por padrão. AOKs são o método de criptografia padrão no Amazon MSF e nenhuma configuração adicional é necessária. Para criptografar dados em trânsito, o Amazon MSF usa TLS e HTTP+SSL por padrão e não requer nenhuma instalação ou configuração adicional.

No Amazon MSF, a CMK é um recurso em que você pode criptografar os dados do seu aplicativo com uma chave que você cria, possui e gerencia. AWS KMS

Com o que é criptografado CMKs?

Em um aplicativo Amazon MSF, os dados sujeitos a um ponto de verificação ou snapshot do Flink serão criptografados com uma CMK que você define para esse aplicativo. Consequentemente, sua CMK criptografará os dados armazenados no armazenamento de aplicativos em execução ou no armazenamento durável de aplicativos. As seções a seguir descrevem o procedimento de configuração CMKs de seus aplicativos Amazon MSF.

Política de rotação de chaves

O Amazon MSF não gerencia a política de rotação de chaves para você CMKs. Você é responsável por sua própria rotação de chaves. Isso ocorre porque você cria e mantém CMKs. Para obter informações sobre como usar sua política de rotação de chaves com a CMK no Amazon MSF, consulte. Política de rotação de chaves

Com o que não está criptografado CMKs?

Fontes e sumidouros

A criptografia de fontes de dados e coletores não é gerenciada pelo Amazon MSF. Ele é gerenciado pela configuração da fonte ou do coletor ou pela configuração do conector do aplicativo.

Aplicação retroativa da criptografia

A CMK no Amazon MSF não fornece suporte para aplicação retroativa a um CMKs snapshot histórico existente.

Criptografia de log

Atualmente, o Amazon MSF não oferece suporte à criptografia de log usando o KMS CMK para registros gerados pelo jar de código do seu aplicativo. Você precisará garantir que os registros não contenham dados que exijam criptografia CMK.

Criptografia de dados em trânsito

Você não pode usar a CMK para criptografar dados em trânsito. Por padrão, o Amazon MSF criptografa todos os dados em trânsito usando TLS ou HTTP e SSL.

Tipos de chave do KMS com suporte

A CMK no Amazon MSF oferece suporte a chaves simétricas.

Permissões da chave KMS

A CMK no Amazon MSF exige permissão para realizar as seguintes ações do KMS. Essas permissões são necessárias para validar o acesso, criar armazenamento de aplicativos em execução criptografado por CMK e armazenar o estado do aplicativo criptografado por CMK em um armazenamento durável de aplicativos.

  • kms: DescribeKey

    Concede permissão para resolver um alias de chave KMS para o ARN da chave.

  • kms:Decrypt

    Concede permissão para acessar o estado durável do aplicativo e provisionar o armazenamento de aplicativos em execução.

  • kms: GenerateDataKey

    Concede permissão para armazenar o estado durável do aplicativo.

  • kms: GenerateDataKeyWithoutPlaintext

    Concede permissão para provisionar o armazenamento de aplicativos em execução.

  • kms: CreateGrant

    Concede permissão para acessar o armazenamento de aplicativos em execução.

Contexto e restrições da criptografia KMS

A CMK no Amazon MSF fornece contexto de criptografia ao acessar chaves para ler ou gravar dados criptografados, ou seja,. kms:EncryptionContext:aws:kinesisanalytics:arn Além do contexto de criptografia, os contextos de origem aws: SourceArn e aws: SourceAccount são fornecidos ao ler ou gravar um armazenamento de aplicativos durável.

Ao criar uma concessão para provisionar o armazenamento criptografado de aplicativos em execução, o Amazon MSF CMK cria concessões com tipo de restrição, EncryptionContextSubsetgarantindo que somente a operação Decrypt seja permitida. "kms:GrantOperations": "Decrypt"

Política de rotação de chaves

O Amazon MSF não gerencia a política de rotação de chaves para você CMKs. Você é responsável por sua própria rotação de chaves porque cria e mantém CMKs.

No KMS, você usa a rotação automática ou manual de chaves para criar um novo material criptográfico para você. CMKs Para obter informações sobre como girar suas chaves, consulte Girar AWS KMS keys no Guia do AWS Key Management Service desenvolvedor.

Ao alternar as chaves para CMKs o Amazon MSF, você deve garantir que o operador (chamador da API) tenha permissões para a chave anterior e a nova.

nota

Um aplicativo pode começar a partir de um snapshot que foi criptografado com o AOK depois de configurado para usar o CMK. Um aplicativo também pode iniciar a partir de um snapshot que foi criptografado com uma CMK mais antiga. Para iniciar um aplicativo a partir de um snapshot, o operador (chamador da API) deve ter permissões para a chave antiga e a nova.

No Amazon MSF, recomendamos que você interrompa e reinicie seus aplicativos usando a criptografia CMK. Isso garante que a nova chave mestra de rotação seja aplicada a todos os dados no armazenamento de aplicativos em execução e no armazenamento durável de aplicativos. Se você não parar e reiniciar seu aplicativo, o novo material de chave só será aplicado ao armazenamento durável de aplicativos. O armazenamento de aplicativos em execução continuará sendo criptografado usando o material de chave de rotação anterior.

Se você estiver alterando o AWS KMS key ARN usado para a CMK, você deve usar no UpdateApplicationAmazon MSF. Isso garantirá que seu aplicativo Flink seja reiniciado como parte da UpdateApplication aplicação das alterações da CMK.

nota

Quando você fornece um alias ou alias ARN, o Amazon MSF resolve o alias para a chave ARN e armazena o ARN da chave como a chave configurada para o aplicativo.

Declarações-chave de política menos privilegiadas

Para obter informações sobre as principais declarações de política, consulte Crie uma política de chaves do KMS Permissões do operador do ciclo de vida do aplicativo (chamador da API) e.

Exemplo de entradas AWS CloudTrail de registro

Quando o Amazon MSF usa CMKs AWS KMS, registra AWS CloudTrail automaticamente todas as chamadas de AWS KMS API e detalhes relacionados. Esses registros contêm informações, como AWS service (Serviço da AWS) fazer a solicitação, ARN da chave KMS, ações de API realizadas e registros de data e hora, excluindo os dados criptografados. Esses registros fornecem trilhas de auditoria essenciais para conformidade, monitoramento de segurança e solução de problemas, mostrando quais serviços acessaram suas chaves e quando.

Exemplo 1: AWS KMS decodificar uma chamada de API usando uma função assumida no Amazon MSF

O CloudTrail registro a seguir mostra o Amazon MSF executando uma operação de teste KMS:Decrypt em uma CMK. O Amazon MSF faz essa solicitação usando uma Operator função enquanto usa a CreateApplicationAPI. O registro a seguir inclui detalhes essenciais, como o ARN da chave KMS de destino, o aplicativo Amazon MSF associado MyCmkApplication () e a data e hora da operação.

{ "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" }
Exemplo 2: AWS KMS Descriptografar chamada de API no Amazon MSF com autenticação direta de serviço

O CloudTrail registro a seguir mostra o Amazon MSF executando uma operação de teste KMS:Decrypt em uma CMK. O Amazon MSF faz essa solicitação por meio de AWS service-to-service autenticação direta em vez de assumir uma função. O registro a seguir inclui detalhes essenciais, como o ARN da chave KMS de destino, o aplicativo Amazon MSF associado MyCmkApplication () e um ID de evento compartilhado da operação.

{ "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" }