Cifrado en Amazon OpenSearch sin servidor - OpenSearch Servicio Amazon

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.

Cifrado en Amazon OpenSearch sin servidor

Cifrado en reposo

Cada colección de Amazon OpenSearch sin servidor que se crea está protegida con cifrado de datos en reposo, una característica de seguridad que ayuda a prevenir el acceso no autorizado a los datos. El cifrado en reposo utiliza AWS Key Management Service (AWS KMS) para almacenar y administrar las claves de cifrado. Utiliza el algoritmo estándar de cifrado avanzado con claves de 256 bits (AES-256) para realizar el cifrado.

Políticas de cifrado

Con las políticas de cifrado, puede administrar numerosas colecciones a escala mediante la asignación automática de una clave de cifrado a las colecciones más recientes que coincidan con un nombre o un patrón específicos.

Al crear una política de cifrado, puede especificar un prefijo, que es una regla de coincidencia basada en caracteres comodín, como MyCollection*, o escribir un nombre de colección único. Después, cuando se cree una colección que coincida con ese patrón de nombre o prefijo, se le asignarán de forma automática la política y la clave de KMS correspondientes.

Encryption policy creation process with rules and collection matching to KMS key.

Las políticas de cifrado contienen los siguientes elementos:

  • Rules: una o más reglas de coincidencia de colecciones, cada una con los siguientes subelementos:

    • ResourceType: en la actualidad, la única opción es “colección”. Las políticas de cifrado solo se aplican a los recursos de colecciones.

    • Resource: uno o más nombres o patrones de colección a los que se aplicará la política, en el formato collection/<collection name|pattern>.

  • AWSOwnedKey: si se utiliza una Clave propiedad de AWS o no.

  • KmsARN: si configura el valor AWSOwnedKey en falso, especifique el nombre de recurso de Amazon (ARN) de la clave KMS con la que se va a cifrar las colecciones asociadas. Si incluye este parámetro, OpenSearch sin servidor ignora el parámetro AWSOwnedKey.

El siguiente ejemplo de política asignará una clave administrada por el cliente a cualquier colección futura denominada autopartsinventory, así como a las colecciones que comiencen por el término “ventas”:

{ "Rules":[ { "ResourceType":"collection", "Resource":[ "collection/autopartsinventory", "collection/sales*" ] } ], "AWSOwnedKey":false, "KmsARN":"arn:aws:encryption:us-east-1:123456789012:key/93fd6da4-a317-4c17-bfe9-382b5d988b36" }

Incluso si una política coincide con el nombre de una colección, puede optar por anular esta asignación automática durante la creación de la colección si el patrón de recursos contiene un comodín (*). Si decide anular la asignación automática de claves, OpenSearch sin servidor crea una política de cifrado denominada auto-<collection-name> y la adjunta a la colección. En un principio, la política solo se aplica a una única colección, pero se puede modificar para que incluya colecciones adicionales.

Si modifica las reglas de políticas para que dejen de coincidir con una colección, la clave KMS asociada continuará asignada a esa colección. La colección siempre permanece cifrada con su clave de cifrado inicial. Si desea cambiar la clave de cifrado de una colección, debe volver a crear la colección.

Si las reglas de varias políticas coinciden con una colección, se utiliza la regla más específica. Por ejemplo, si una política contiene una regla para collection/log* y otra para collection/logSpecial, se utiliza la clave de cifrado de la segunda política porque es más específica.

No puede usar un nombre o un prefijo en una política si ya existe en otra política. OpenSearch sin servidor muestra un error si intenta configurar patrones de recursos idénticos en diferentes políticas de cifrado.

Consideraciones

Cuando configure el cifrado de las colecciones, tenga en cuenta lo siguiente:

  • El cifrado en reposo es obligatorio para todas las colecciones sin servidor.

  • Puede elegir entre utilizar una clave administrada por el cliente o una Clave propiedad de AWS. Si elige una clave administrada por el cliente, le recomendamos habilitar la rotación automática de claves.

  • No se puede cambiar la clave de cifrado de una colección después de su creación. Seleccione cuidadosamente qué AWS KMS usará la primera vez que configure una colección.

  • Una colección solo puede coincidir con una única política de cifrado.

  • Las colecciones con claves KMS únicas no pueden compartir las unidades de cómputo de OpenSearch (OCU) con otras colecciones. Cada colección con una clave única requiere 4 OCU propias.

  • Si actualiza la clave KMS de una política de cifrado, el cambio no afectará a las colecciones coincidentes existentes con claves KMS ya asignadas.

  • OpenSearch sin servidor no comprueba de forma explícita los permisos de usuario en las claves administradas por el cliente. Si un usuario tiene permisos para acceder a una colección mediante una política de acceso a los datos, podrá incorporar y consultar los datos cifrados con la clave asociada.

Permisos necesarios

El cifrado en reposo para OpenSearch sin servidor utiliza los siguientes permisos de AWS Identity and Access Management (IAM). Puede especificar las condiciones de IAM para restringir a los usuarios a colecciones específicas.

  • aoss:CreateSecurityPolicy: cree una política de cifrado.

  • aoss:ListSecurityPolicies enumere todas las políticas y colecciones de cifrado a las que están adjuntas.

  • aoss:GetSecurityPolicy: consulte los detalles de una política de cifrado específica.

  • aoss:UpdateSecurityPolicy: modifique una política de cifrado.

  • aoss:DeleteSecurityPolicy: elimine una política de cifrado.

El siguiente ejemplo de política de acceso basada en la identidad proporciona los permisos mínimos necesarios para que un usuario administre las políticas de cifrado con el patrón de recursos collection/application-logs.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "aoss:CreateSecurityPolicy", "aoss:UpdateSecurityPolicy", "aoss:DeleteSecurityPolicy", "aoss:GetSecurityPolicy" ], "Resource":"*", "Condition":{ "StringEquals":{ "aoss:collection":"application-logs" } } }, { "Effect":"Allow", "Action":[ "aoss:ListSecurityPolicies" ], "Resource":"*" } ] }

Política de claves para una clave administrada por el cliente

Si selecciona una clave administrada por el cliente para proteger una colección, OpenSearch sin servidor obtiene permiso para utilizar la clave KMS en nombre de la entidad principal que realiza la selección. Esa entidad principal, un usuario o un rol, debe tener los permisos en la clave KMS que OpenSearch sin servidor necesita. Puede proporcionar estos permisos en una política de claves o en una política de IAM.

Como mínimo, OpenSearch sin servidor necesita los siguientes permisos en una clave administrada por el cliente:

Por ejemplo:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:DescribeKey", "kms:CreateGrant" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "aoss.us-east-1.amazonaws.com" }, "Bool": { "kms:GrantIsForAWSResource": "true" } } } ] }

OpenSearch sin servidor crea una concesión con los permisos kms:GenerateDataKey y kms:Decrypt.

Para más información, consulte Uso de políticas de claves en AWS KMS en la Guía del desarrollador de AWS Key Management Service.

Cómo OpenSearch sin servidor utiliza las concesiones en AWS KMS

OpenSearch sin servidor requiere una concesión para poder utilizar una clave administrada por el cliente.

Cuando crea una política de cifrado en su cuenta con una clave nueva, OpenSearch sin servidor crea una concesión en su nombre mediante el envío de la solicitud CreateGrant a AWS KMS. Las concesiones en AWS KMS se utilizan para otorgar a OpenSearch sin servidor acceso a una clave KMS en una cuenta de cliente.

OpenSearch sin servidor necesita la concesión para utilizar la clave administrada por el cliente para las siguientes operaciones internas:

  • Enviar solicitudes de DescribeKey a AWS KMS para comprobar que el ID de la clave simétrica administrada por el cliente proporcionado es válido.

  • Enviar solicitudes de GenerateDataKey a la clave KMS para crear claves de datos para cifrar objetos.

  • Enviar solicitudes de Decrypt a AWS KMS para descifrar las claves de datos cifradas para que puedan usarse para cifrar 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 lo hace, OpenSearch sin servidor no podrá acceder a ninguno de los datos cifrados por la clave administrada por el cliente, lo que afectará a todas las operaciones que dependen de esos datos y provocará errores y fallos de AccessDeniedException en los flujos de trabajo asíncronos.

OpenSearch sin servidor retira las concesiones en un flujo de trabajo asíncrono cuando una determinada clave administrada por el cliente no está asociada a ninguna política o colección de seguridad.

Creación de políticas de cifrado (consola)

En una política de cifrado, se especifica una clave KMS y una serie de patrones de colección a los que se aplicará la política. A cualquier colección nueva que coincida con uno de los patrones definidos en la política se le asignará la clave KMS correspondiente al crear la colección. Recomendamos que cree las políticas de cifrado antes de empezar a crear las colecciones.

Para crear una política de cifrado de OpenSearch sin servidor
  1. Abra la consola de Amazon OpenSearch Service en https://console.aws.amazon.com/aos/home.

  2. En el panel de navegación izquierdo, amplíe Sin servidor y seleccione Políticas de cifrado.

  3. Seleccione Crear política de cifrado.

  4. Escriba un nombre y una descripción para la política.

  5. En Recursos, ingrese uno o más patrones de recursos para esta política de cifrado. Todas las colecciones recién creadas en la región y Cuenta de AWS actuales que coincidan con uno de los patrones se asignan de forma automática a esta política. Por ejemplo, si introduce ApplicationLogs (sin comodín) y luego crea una colección con ese nombre, la política y la clave KMS correspondientes se asignarán a esa colección.

    También puede proporcionar un prefijo como Logs*, que asigna la política a cualquier colección nueva cuyo nombre comience por Logs. Mediante el uso de comodines, puede administrar la configuración de cifrado de varias colecciones a escala.

  6. En Cifrado, seleccione la clave KMS que se debe utilizar.

  7. Seleccione Crear.

Siguiente paso: crear colecciones

Después de configurar una o más políticas de cifrado, puede empezar a crear colecciones que coincidan con las reglas definidas en esas políticas. Para obtener instrucciones, consulte Creación de colecciones.

En el paso de Cifrado de la creación de la colección, OpenSearch sin servidor le informa que el nombre que ingresó coincide con el patrón definido en una política de cifrado y asigna de forma automática la clave KMS correspondiente a esa colección. Si el patrón de recursos contiene un comodín (*), puede anular la coincidencia y seleccionar su propia clave.

Creación de políticas de cifrado (AWS CLI)

Para crear una política de cifrado mediante las operaciones de la API de OpenSearch sin servidor, especifique los patrones de recursos y una clave de cifrado en formato JSON. La solicitud CreateSecurityPolicy acepta políticas insertadas y archivos .json.

Las políticas de cifrado tienen el siguiente formato. El archivo de muestra my-policy.json coincidirá con cualquier colección futura con el nombre autopartsinventory, así como con cualquier colección cuyo nombre comience con sales.

{ "Rules":[ { "ResourceType":"collection", "Resource":[ "collection/autopartsinventory", "collection/sales*" ] } ], "AWSOwnedKey":false, "KmsARN":"arn:aws:encryption:us-east-1:123456789012:key/93fd6da4-a317-4c17-bfe9-382b5d988b36" }

Para usar una clave propiedad del servicio, configure la AWSOwnedKey como true:

{ "Rules":[ { "ResourceType":"collection", "Resource":[ "collection/autopartsinventory", "collection/sales*" ] } ], "AWSOwnedKey":true }

La siguiente solicitud crea la política de cifrado:

aws opensearchserverless create-security-policy \ --name sales-inventory \ --type encryption \ --policy file://my-policy.json

A continuación, utilice la operación de la API CreateCollection para crear una o más colecciones que coincidan con uno de los patrones de recursos.

Visualización de políticas de cifrado

Antes de crear una colección, puede que desee obtener una vista previa de las políticas de cifrado existentes en su cuenta para ver cuál tiene un patrón de recursos que coincide con el nombre de su colección. La siguiente solicitud ListSecurityPolicies enumera todas las políticas de cifrado de su cuenta:

aws opensearchserverless list-security-policies --type encryption

La solicitud devuelve información sobre todas las políticas de cifrado configuradas. Utilice el contenido del elemento policy para ver las reglas de patrón que se definen en la política:

{ "securityPolicyDetails": [ { "createdDate": 1663693217826, "description": "Sample encryption policy", "lastModifiedDate": 1663693217826, "name": "my-policy", "policy": "{\"Rules\":[{\"ResourceType\":\"collection\",\"Resource\":[\"collection/autopartsinventory\",\"collection/sales*\"]}],\"AWSOwnedKey\":true}", "policyVersion": "MTY2MzY5MzIxNzgyNl8x", "type": "encryption" } ] }

Para ver información detallada sobre una política específica, incluida la clave KMS, utilice el comando GetSecurityPolicy.

Actualización de políticas de cifrado

Si actualiza la clave KMS en una política de cifrado, el cambio solo se aplica a las colecciones recién creadas que coincidan con el nombre o patrón configurado. No afecta a las colecciones existentes que ya tienen claves KMS asignadas.

Lo mismo sucede con las reglas de coincidencia de las políticas. Si agrega, modifica o elimina una regla, el cambio solo se aplica a las colecciones recién creadas. Las colecciones existentes no pierden la clave KMS asignada si modifica las reglas de una política para que ya no coincida con el nombre de una colección.

Para actualizar una política de cifrado en la consola de OpenSearch sin servidor, seleccione Políticas de cifrado, seleccione la política que desee modificar y seleccione Editar. Realice los cambios y elija Guardar.

Para actualizar una política de cifrado mediante la API de OpenSearch sin servidor, utilice la operación UpdateSecurityPolicy. La siguiente solicitud actualiza una política de cifrado con un nuevo documento JSON de política:

aws opensearchserverless update-security-policy \ --name sales-inventory \ --type encryption \ --policy-version 2 \ --policy file://my-new-policy.json

Eliminación de políticas de cifrado

Cuando se elimina una política de cifrado, las colecciones que estén utilizando en ese momento la clave KMS definida en la política no se ven afectadas. Para eliminar una política en la consola de OpenSearch sin servidor, seleccione la política y elija Eliminar.

También puede utilizar la operación DeleteSecurityPolicy:

aws opensearchserverless delete-security-policy --name my-policy --type encryption

Cifrado en tránsito

En OpenSearch sin servidor, todas las rutas de una colección se cifran en tránsito mediante Transport Layer Security 1.2 (TLS) y un cifrado AES-256 estándar del sector. El acceso a todas las API y paneles de Opensearch también se realiza a través de TLS 1.2. TLS es un conjunto de protocolos criptográficos estándares del sector que se utilizan para cifrar la información que se intercambia a través de la red.