Uso de claves maestras de cliente para el cifrado - Amazon Managed Workflows para Apache Airflow

Uso de claves maestras de cliente para el cifrado

Si lo desea, puede proporcionar una clave administrada por el cliente para el cifrado de datos de su entorno. Deberá crear la clave de KMS administrada por el cliente en la misma región que su instancia de entorno de Amazon MWAA y su bucket de Amazon S3 en el cual almacena los recursos para sus flujos de trabajo. Si la clave KMS administrada por el cliente que especifica está en una cuenta diferente de la que usa para configurar un entorno, debe especificarla mediante su ARN para el acceso entre cuentas. Para obtener más información sobre la creación de claves, consulte cómo crear claves en la guía para desarrolladores de AWS Key Management Service.

Elementos compatibles

AWS KMSCaracterística de Compatible

Un ID o un ARN de la clave de AWS KMS.

Un alias de la clave de AWS KMS.

No

Una clave AWS KMS de varias regiones.

No

Uso de concesiones para el cifrado

En este tema, se describen las concesiones que Amazon MWAA asocia a una clave de KMS administrada por el cliente en su nombre para cifrar y descifrar sus datos.

Funcionamiento

AWS KMS admite dos mecanismos de control de acceso basados en recursos para la clave de KMS administrada por el cliente: una política de claves y una concesión.

La política de claves se utiliza cuando el permiso es principalmente estático y se utiliza en modo de servicio sincrónico, mientras que la concesión se utiliza cuando se requieren permisos más dinámicos y detallados, como cuando un servicio necesita definir diferentes permisos de acceso para sí mismo o para otras cuentas.

Amazon MWAA usa y asocia cuatro políticas de concesión a la clave de KMS administrada por el cliente. Esto se debe a que se necesitan permisos detallados para que un entorno cifre los datos en reposo procedentes de los registros de CloudWatch, la cola de Amazon SQS, la base de datos de Aurora PostgreSQL, la información secreta de Secrets Manager, el bucket de Amazon S3 y las tablas de DynamoDB.

Al crear un entorno de Amazon MWAA y especificar una clave de KMS administrada por el cliente, Amazon MWAA asocia las políticas de concesión a dicha clave. Estas políticas permiten que Amazon MWAA use su clave de KMS administrada por el cliente en airflow.us-east-1.amazonaws.com para cifrar en su nombre los recursos que son propiedad de Amazon MWAA.

Amazon MWAA crea y asocia concesiones adicionales a una clave de KMS específica en su nombre. Esto incluye políticas para retirar una concesión en caso de que elimine su entorno, para usar la clave de KMS administrada por el cliente para el cifrado del cliente (CSE) y para el rol de ejecución de AWS Fargate que necesita obtener acceso a los secretos protegidos por su clave administrada por el cliente en Secrets Manager.

Políticas de concesión

Amazon MWAA agrega las concesiones de la política basada en recursos que se indican a continuación en su nombre a una clave de KMS administrada por el cliente. Estas políticas permiten que el beneficiario y la entidad principal (Amazon MWAA) lleven a cabo las acciones definidas en la política.

Concesión 1: se utiliza para crear recursos del plano de datos

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

Concesión 2: se utiliza para el acceso del ControllerLambdaExecutionRole

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

Concesión 3: se utiliza para el acceso del CfnManagementLambdaExecutionRole

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

Concesión 4: se utiliza para el rol de ejecución de Fargate a fin de acceder a la información secreta del backend

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

Asociación de políticas de claves a una clave administrada por el cliente

Si decide usar su propia clave de KMS administrada por el cliente con Amazon MWAA, debe asociar la siguiente política a la clave para que Amazon MWAA pueda usarla para cifrar sus datos.

Si la clave de KMS administrada por el cliente que use para su entorno de Amazon MWAA todavía no está configurada para que trabaje con CloudWatch, deberá actualizar la política de claves para permitir el cifrado de registros de CloudWatch. Para obtener más información, consulte el cifrado de datos de registro en CloudWatch mediante servicios de AWS Key Management Service.

En el siguiente ejemplo se representa una política de claves para los Registros de CloudWatch. Sustituya los valores de ejemplo que se han indicado para la región.

{ "Effect": "Allow", "Principal": { "Service": "logs.us-east-1.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-east-1:*:*" } } }