Como usar chaves gerenciadas pelo cliente para criptografia - Amazon Managed Workflows for Apache Airflow

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

Como usar chaves gerenciadas pelo cliente para criptografia

Opcionalmente, você pode fornecer uma chave gerenciada pelo cliente para criptografia de dados em seu ambiente. Você deve criar uma chave KMS gerenciada pelo cliente na mesma região da sua instância do ambiente do Amazon MWAA e do seu bucket do Amazon S3 onde você armazena recursos para seus fluxos de trabalho. Se a chave KMS gerenciada pelo cliente que você especificou estiver em uma conta diferente da que foi usada para configurar um ambiente, será necessário especificar a chave usando o respectivo ARN para acesso entre contas. Para obter mais informações sobre como criar chaves, consulte Como criar chaves no Guia do desenvolvedor do AWS Key Management Service .

O que é compatível

AWS KMS recurso Compatível

Um ID de chave ou ARN AWS KMS.

Sim

Um alias de chave AWS KMS.

Não

Uma chave de várias regiões AWS KMS.

Não

Como usar concessões para criptografia

Este tópico descreve as concessões que o Amazon MWAA atribui a uma chave do KMS gerenciada pelo cliente em seu nome para criptografar e descriptografar os dados.

Como funciona

Há dois mecanismos de controle de acesso baseados em recursos suportados pela chave KMS gerenciada AWS KMS pelo cliente: uma política de chaves e uma concessão.

A política de chave é usada quando a permissão é principalmente estática e usada no modo de serviço síncrono. A concessão é usada quando são necessárias permissões mais dinâmicas e granulares, como quando um serviço precisa definir permissões de acesso diferentes para si mesmo ou para outras contas.

O Amazon MWAA usa e anexa quatro políticas de concessão à sua chave KMS gerenciada pelo cliente. Isso se deve às permissões granulares necessárias para que um ambiente criptografe dados em repouso a partir de CloudWatch Logs, da fila do Amazon SQS, do banco de dados do banco de dados Aurora PostgreSQL, dos segredos do Secrets Manager, do bucket do Amazon S3 e das tabelas do DynamoDB.

Ao criar um ambiente do Amazon MWAA e especificar uma chave KMS gerenciada pelo cliente, o Amazon MWAA anexa as políticas de concessão à sua chave KMS gerenciada pelo cliente. Essas políticas permitem que o Amazon MWAA em airflow.region}.amazonaws.com use sua chave KMS gerenciada pelo cliente para criptografar recursos em seu nome que são de propriedade do Amazon MWAA.

O Amazon MWAA cria e anexa concessões adicionais a uma chave KMS especificada em seu nome. Isso inclui políticas para retirar uma concessão se você excluir seu ambiente, usar sua chave KMS gerenciada pelo cliente para criptografia do lado do cliente (CSE) e para a função de AWS Fargate execução que precisa acessar segredos protegidos por sua chave gerenciada pelo cliente no Secrets Manager.

Políticas de concessões

O Amazon MWAA adiciona as seguintes concessões de políticas baseadas em recursos em seu nome a uma chave KMS gerenciada pelo cliente. Essas políticas permitem que o beneficiário e a entidade principal (Amazon MWAA) realizem ações definidas na política.

Concessão 1: usada para criar recursos do plano de dados

{ "Name": "mwaa-grant-for-env-mgmt-role-environment name", "GranteePrincipal": "airflow.region.amazonaws.com", "RetiringPrincipal": "airflow.region.amazonaws.com", "Operations": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:CreateGrant", "kms:DescribeKey", "kms:RetireGrant" ] }

Concessão 2: usada para o acesso ControllerLambdaExecutionRole

{ "Name": "mwaa-grant-for-lambda-exec-environment name", "GranteePrincipal": "airflow.region.amazonaws.com", "RetiringPrincipal": "airflow.region.amazonaws.com", "Operations": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey", "kms:RetireGrant" ] }

Concessão 3: usada para o acesso CfnManagementLambdaExecutionRole

{ "Name": " mwaa-grant-for-cfn-mgmt-environment name", "GranteePrincipal": "airflow.region.amazonaws.com", "RetiringPrincipal": "airflow.region.amazonaws.com", "Operations": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ] }

Concessão 4: usada para o perfil de execução do Fargate para acessar segredos de back-end

{ "Name": "mwaa-fargate-access-for-environment name", "GranteePrincipal": "airflow.region.amazonaws.com", "RetiringPrincipal": "airflow.region.amazonaws.com", "Operations": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey", "kms:RetireGrant" ] }

Como anexar políticas de chave a uma chave gerenciada pelo cliente

Se você optar por usar sua própria chave KMS gerenciada pelo cliente com o Amazon MWAA, deverá anexar a seguinte política à chave para permitir que o Amazon MWAA a use para criptografar seus dados.

Se a chave KMS gerenciada pelo cliente que você usou para seu ambiente Amazon MWAA ainda não estiver configurada para funcionar CloudWatch, você deverá atualizar a política de chaves para permitir registros criptografados. CloudWatch Para obter mais informações, consulte Criptografar dados de log no CloudWatch uso do AWS Key Management Service serviço.

O exemplo a seguir representa uma política fundamental para o CloudWatch Logs. Substituir os valores de amostra fornecidos para a região.

{ "Effect": "Allow", "Principal": { "Service": "logs.us-west-2.amazonaws.com" }, "Action": [ "kms:Encrypt*", "kms:Decrypt*", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:Describe*" ], "Resource": "*", "Condition": { "ArnLike": { "kms:EncryptionContext:aws:logs:arn": "arn:aws:logs:us-west-2:*:*" } } }