Integración de paquete personalizado de AWS KMS de Amazon OpenSearch Service
Los paquetes personalizados de Amazon OpenSearch Service proporcionan cifrado por defecto para proteger sus paquetes ZIP-PLUGIN en reposo utilizando Claves administradas por AWS.
-
Claves propiedad de AWS: los paquetes personalizados de Amazon OpenSearch Service utilizan estas claves de forma predeterminada para cifrar automáticamente sus paquetes
ZIP-PLUGIN. No puede ver, administrar ni usar Claves propiedad de AWS ni auditar su uso. Sin embargo, no necesita realizar ninguna acción ni cambiar ningún programa para proteger las claves que cifran los datos. Para obtener más información, consulte Claves propiedad de AWS en la Guía para desarrolladores de AWS Key Management Service. -
Claves administradas por el cliente: puede agregar una segunda capa de cifrado sobre las Claves propiedad de AWS existentes al elegir una clave administrada por el cliente al crear su paquete personalizado
ZIP-PLUGIN.Los paquetes personalizados de Amazon OpenSearch Service admiten el uso de una clave simétrica administrada por el cliente que usted crea, posee y administra para agregar una segunda capa de cifrado sobre el cifrado administrado por AWS existente. Debido a que usted tiene control total sobre esta capa de cifrado, puede realizar las siguientes tareas:
-
Establecer y mantener políticas de claves.
-
Establecer y mantener políticas y permisos de AWS Identity and Access Management (IAM)
-
Habilitar y deshabilitar políticas de claves.
-
Rotar el material criptográfico.
-
Agregar etiquetas.
-
Crear alias de claves.
-
Programar la eliminación de claves.
-
Para más información, consulte las claves administradas por el cliente en la Guía para desarrolladores de AWS Key Management Service.
nota
Los paquetes personalizados de Amazon OpenSearch Service habilitan automáticamente el cifrado en reposo utilizando Claves propiedad de AWS sin cargo. Sin embargo, se aplican cargos de AWS KMS cuando utiliza una clave administrada por el cliente. Para obtener más información acerca de los precios, consulte Precios de AWS Key Management Service
Cómo el servicio de paquetes personalizados de Amazon OpenSearch Service utiliza permisos en AWS KMS
Los paquetes personalizados de OpenSearch Service requieren una concesión para utilizar su clave administrada por el cliente.
Cuando crea un paquete ZIP-PLUGIN cifrado con una clave administrada por el cliente, el servicio de paquetes personalizados de Amazon OpenSearch Service crea un permiso en su nombre enviando una solicitud CreateGrant a AWS KMS. Los permisos en AWS KMS otorgan a OpenSearch Service acceso a una clave AWS KMS en su cuenta. Los permisos creados por los paquetes personalizados de OpenSearch Service tienen una restricción que permite operaciones únicamente cuando la solicitud incluye un contexto de cifrado con el ID de su paquete personalizado.
Los paquetes personalizados de Amazon OpenSearch Service requieren el permiso para usar su clave administrada por el cliente en las siguientes operaciones internas:
| Operación | Descripción |
|---|---|
DescribeKey |
Enviar solicitudes DescribeKey a AWS KMS para verificar que el ID de clave simétrica administrada por el cliente ingresado al crear el paquete del complemento sea válido. |
GenerateDataKeyWithoutPlaintext |
Envía solicitudes GenerateDataKeyWithoutPlaintext a AWS KMS para generar claves de datos cifradas con su clave administrada por el cliente. |
GenerateDataKey |
Envía solicitudes GenerateDataKey a AWS KMS para generar claves de datos para cifrar el paquete al copiarlo internamente. |
Decrypt |
Envía solicitudes Decrypt a AWS KMS para descifrar las claves de datos cifradas para que puedan usarse para descifrar sus datos. |
Puede revocar el acceso a la concesión o eliminar el acceso del servicio a la clave administrada por el cliente en cualquier momento. Si no lo hace, OpenSearch Service no podrá acceder a ningún dato cifrado con la clave administrada por el cliente, lo que afecta a las operaciones que dependen de esos datos. Por ejemplo, si intenta asociar un paquete de complemento al que OpenSearch Service no puede acceder, la operación devuelve un error AccessDeniedException.
Crear una clave administrada por el cliente
Puede crear una clave administrada por el cliente a través de la Consola de administración de AWS o la API de AWS KMS.
Para crear una clave simétrica administrada por el cliente
-
Siga los pasos en Crear una clave KMS en la Guía para desarrolladores de AWS Key Management Service.
Política de claves
Las políticas de clave controlan el acceso a la clave administrada por el cliente. Cada clave administrada por el cliente debe tener exactamente una política de clave, que contiene instrucciones que determinan quién puede usar la clave y cómo puede utilizarla. Cuando crea la clave administrada por el cliente, puede especificar una política de clave. Para obtener más información, consulte Políticas de claves en AWS KMS en la Guía para desarrolladores de AWS Key Management Service.
Para usar su clave administrada por el cliente con los recursos de su complemento, debe permitir las siguientes operaciones de API en la política de claves:
-
kms:CreateGrant: agrega una concesión a una clave administrada por el cliente. Permite el control del acceso a una clave AWS KMS especificada, permitiendo el acceso a las operaciones de permisos que requieren los paquetes personalizados de OpenSearch Service. Para obtener más información sobre el uso de permisos, consulte la Guía para desarrolladores de AWS KMS.Esto permite que OpenSearch Service realice lo siguiente:
-
Llamar a
GenerateDataKeyWithoutPlainTextpara generar una clave de datos cifrada y almacenarla para validaciones posteriores. -
Llamar a
GenerateDataKeypara copiar internamente el paquete del complemento. -
Llamar a
Decryptpara acceder internamente al paquete del complemento. -
Configurar una entidad principal que se retire para permitir que el servicio
RetireGrant.
-
-
kms:DescribeKey: proporciona los detalles de la clave administrada por el cliente para permitir que OpenSearch Service valide la clave. -
kms:GenerateDataKey,kms:GenerateDataKeyWithoutPlaintext,kms:Decryptotorgan a los paquetes personalizados de OpenSearch Service acceso para usar estas operaciones en el permiso.
Los siguientes son ejemplos de declaraciones de política que puede agregar para los paquetes personalizados de OpenSearch Service:
"Statement" : [ { "Sid" : "Allow access to principals authorized to use OpenSearch Service custom packages", "Effect" : "Allow", "Principal" : { "AWS" : "*" }, "Action" : [ "kms:CreateGrant", "kms:GenerateDataKey", "kms:GenerateDataKeyWithoutPlaintext", "kms:Decrypt" ], "Resource" : "*", "Condition" : { "StringEquals" : { "kms:ViaService" : "custom-packages.region.amazonaws.com" }, "StringEquals" : { "kms:EncryptionContext:packageId": "Id of the package" } } }, { "Sid" : "Allow access to principals authorized to use Amazon OpenSearch Service custom packages", "Effect" : "Allow", "Principal" : { "AWS" : "*" }, "Action" : [ "kms:DescribeKey" ], "Resource" : "*", "Condition" : { "StringEquals" : { "kms:ViaService" : "custom-packages.region.amazonaws.com" } } } ]
Para obtener más información sobre cómo especificar permisos en una política, consulte Políticas de clave en AWS KMS y en la Guía para desarrolladores de AWS Key Management Service.
Para obtener más información sobre cómo solucionar problemas de acceso a claves, consulte Solución de problemas de permisos de AWS KMS en la Guía para desarrolladores de AWS Key Management Service.
Especificar una clave administrada por el cliente para los paquetes personalizados de Amazon OpenSearch Service
Puede especificar una clave administrada por el cliente como segunda capa de cifrado para sus paquetes ZIP-PLUGIN.
Al crear un paquete de complemento, puede especificar la clave de datos ingresando un ID de clave AWS KMS, que los paquetes personalizados de OpenSearch Service usan para cifrar el paquete del complemento.
ID de clave AWS KMS: un identificador para una clave administrada por el cliente AWS KMS. Introduzca el ID de la clave, el ARN de la clave, el nombre de alias o el ARN del alias.
Contexto de cifrado de los paquetes personalizados de Amazon OpenSearch Service
Un contexto de cifrado es un conjunto opcional de pares clave-valor que pueden contener información contextual adicional sobre los datos.
AWS KMS utiliza el contexto de cifrado como datos autenticados adicionales para admitir el cifrado autenticado. Cuando se incluye un contexto de cifrado en una solicitud para cifrar datos, AWS KMS vincula el contexto de cifrado a los datos cifrados. Para descifrar los datos, debe incluir el mismo contexto de cifrado en la solicitud.
Contexto de cifrado de los paquetes personalizados de Amazon OpenSearch Service
Los paquetes personalizados de Amazon OpenSearch Service utilizan el mismo contexto de cifrado en todas las operaciones criptográficas AWS KMS, donde la clave es packageId y el valor es el package-id de su paquete de complemento.
Uso del contexto de cifrado para monitoreo
Cuando utiliza una clave simétrica administrada por el cliente para cifrar su paquete de complemento, puede usar el contexto de cifrado en los registros de auditoría y logs para identificar cómo se está utilizando la clave administrada por el cliente. El contexto de cifrado también aparece en los registros generados por AWS CloudTrail o registros de Amazon CloudWatch.
Utilizar el contexto de cifrado para controlar el acceso a la clave administrada por el cliente
Puede utilizar el contexto de cifrado en políticas de claves y políticas de IAM como condiciones para controlar el acceso a su clave simétrica administrada por el cliente. Puede usar también una restricción de contexto de cifrado en una concesión.
Los paquetes personalizados de OpenSearch Service utilizan una restricción de contexto de cifrado en los permisos para controlar el acceso a la clave administrada por el cliente en su cuenta o región. La restricción de concesión requiere que las operaciones que permite la concesión utilicen el contexto de cifrado especificado.
Los siguientes son ejemplos de declaraciones de política de claves para conceder acceso a una clave administrada por el cliente para un contexto de cifrado específico. La condición de esta declaración de política exige que las concesiones tengan una restricción de contexto de cifrado que especifique el contexto de cifrado.
{ "Sid": "Enable DescribeKey", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleReadOnlyRole" }, "Action": "kms:DescribeKey", "Resource": "*" }, { "Sid": "Enable OpenSearch Service custom packages to use the key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/ExampleReadOnlyRole" }, "Action" : [ "kms:CreateGrant", "kms:GenerateDataKey", "kms:GenerateDataKeyWithoutPlaintext", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals" : { "kms:EncryptionContext:packageId": "ID of the package" } } }
Monitoreo de sus claves de cifrado para el servicio de paquetes personalizados de OpenSearch
Cuando utiliza una clave administrada por el cliente AWS KMS con los recursos del servicio de paquetes personalizados de OpenSearch Service, puede usar CloudTrail o Registros de CloudWatch para rastrear las solicitudes que los paquetes personalizados de OpenSearch envían a AWS KMS.
Más información
Los siguientes recursos proporcionan más información sobre cifrado de datos en reposo.
-
Para obtener más información sobre los conceptos básicos de AWS KMS, consulte AWS KMS keys en la Guía para desarrolladores de AWS Key Management Service.
-
Para obtener más información sobre las prácticas recomendadas de seguridad para AWS KMS, consulte la guía Prescriptive Guidance de AWS para las prácticas recomendadas de AWS Key Management Service.