

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.

# Gestión de complementos personalizados en Amazon OpenSearch Service
<a name="custom-plugins"></a>

Al usar los complementos personalizados para OpenSearch Service, puedes ampliar la OpenSearch funcionalidad en áreas como el análisis del idioma, el filtrado personalizado, la clasificación y más, lo que te permite crear experiencias de búsqueda personalizadas. OpenSearch Se pueden desarrollar complementos personalizados ampliando la `org.opensearch.plugins.Plugin` clase y luego empaquetándola en un `.zip` archivo. 

Amazon OpenSearch Service admite actualmente las siguientes extensiones de complementos:
+ **AnalysisPlugin**— Amplía la funcionalidad de análisis añadiendo, por ejemplo, analizadores personalizados, tokenizadores de caracteres o filtros para el procesamiento de texto.
+ **SearchPlugin**— Mejora las capacidades de búsqueda con tipos de consultas personalizados, algoritmos de similitud, opciones de sugerencias y agregaciones.
+ **MapperPlugin**— Le permite crear tipos de campos personalizados y sus configuraciones de mapeo OpenSearch, lo que le permite definir cómo se deben almacenar e indexar los diferentes tipos de datos.
+ **ScriptPlugin**— Permite añadir funciones de creación de secuencias de comandos personalizadas OpenSearch, por ejemplo, a las secuencias de comandos personalizadas para operaciones como la puntuación, la clasificación y la transformación de los valores de los campos durante la búsqueda o la indexación.

Puedes usar la consola de OpenSearch servicio o los comandos de API existentes para paquetes personalizados para cargar y asociar el complemento al clúster de Amazon OpenSearch Service. También puedes usar el [DescribePackages](https://docs.aws.amazon.com/opensearch-service/latest/APIReference/API_DescribePackages.html)comando para describir todos los paquetes de tu cuenta y ver detalles como la OpenSearch versión y los detalles del error. OpenSearch El servicio valida el paquete de complementos para comprobar la compatibilidad de versiones, las vulnerabilidades de seguridad y las operaciones de complementos permitidas. Para obtener más información sobre los paquetes personalizados, consulte [Importación y gestión de paquetes en Amazon OpenSearch Service](custom-packages.md).

**OpenSearch versión y soporte Región de AWS**  
Los siguientes Regiones de AWS dominios de OpenSearch servicio que ejecutan la OpenSearch versión 2.15 admiten complementos personalizados: 
+ Este de EE. UU. (Ohio) (us-east-2)
+ Este de EE. UU. (Norte de Virginia) (us-east-1)
+ Oeste de EE. UU. (Oregón) (us-west-2)
+ Asia-Pacífico (Mumbai) (ap-south-1)
+ Asia-Pacífico (Seúl) (ap-northeast-2)
+ Asia-Pacífico (Singapur) (ap-southeast-1)
+ Asia-Pacífico (Sídney) (ap-southeast-2)
+ Asia-Pacífico (Tokio) (ap-northeast-1)
+ Canadá (centro) (ca-central-1)
+ Europa (Fráncfort) (eu-central-1)
+ Europa (Irlanda) (eu-west-1)
+ Europa (Londres) (eu-west-2)
+ Europa (París) (eu-west-3)
+ América del Sur (São Paulo) (sa-east-1)

**nota**  
Los complementos personalizados contienen código desarrollado por el usuario. Cualquier problema, incluido el incumplimiento del SLA, causado por un código desarrollado por el usuario no da derecho a los créditos del SLA. Para obtener más información, consulta [Amazon OpenSearch Service: Acuerdo de nivel de servicio](https://aws.amazon.com/opensearch-service/sla/).

**Topics**
+ [Cuotas de complementos](#plugin-limits)
+ [Requisitos previos](#custom-plugin-prerequisites)
+ [Resolución de problemas](#custom-plugin-troubleshooting)
+ [Instalación de un complemento personalizado mediante la consola](#custom-plugin-install-console)
+ [Administrar complementos personalizados mediante el AWS CLI](#managing-custom-plugins-cli)
+ [AWS KMS Integración de paquetes personalizados de Amazon OpenSearch Service](custom-package-kms-integration.md)

## Cuotas de complementos
<a name="plugin-limits"></a>
+ Puede crear hasta 25 complementos personalizados por región para cada cuenta. 
+ El tamaño máximo sin comprimir de un complemento es 1 GB.
+ El número máximo de complementos que se pueden asociar con un solo dominio es 20. Esta cuota se aplica a todos los tipos de complementos combinados: opcionales, de terceros y personalizados.
+ Los complementos personalizados son compatibles con los dominios que ejecutan OpenSearch la versión 2.15 o posterior.
+ El archivo `descriptor.properties` para su complemento debe ser compatible con una versión de motor similar a 2.15.0 o cualquier versión 2.x.x, donde la versión de parche esté establecida en cero.

## Requisitos previos
<a name="custom-plugin-prerequisites"></a>

Antes de instalar un complemento personalizado y asociarlo a un dominio, asegúrese de que cumple los siguientes requisitos:
+ La versión de motor compatible con el complemento del archivo `descriptor.properties` debe ser similar a `2.15.0` o `2.x.0`. Es decir, la versión del parche debe ser cero.
+ Las siguientes características deben estar habilitadas en su dominio:
  +  [Node-to-node cifrado](ntn.md)
  +  [Cifrado en reposo](encryption-at-rest.md)
  + [`EnforceHTTPS` está establecido en “verdadero”](createupdatedomains.md)

    Consulte también [opensearch-https-required](https://docs.aws.amazon.com/config/latest/developerguide/opensearch-https-required.html)en la *Guía para AWS Config desarrolladores*.
  + Los clientes deben admitir **Policy-Min-TLS-1-2-PFS-2023-10**. Puede especificar esta compatibilidad usando el siguiente comando. Sustitúyalo por su propia información: *placeholder value*

    ```
    aws opensearch update-domain-config \
        --domain-name domain-name \
        --domain-endpoint-options '{"TLSSecurityPolicy":"Policy-Min-TLS-1-2-PFS-2023-10" }'
    ```

    Para obtener más información, consulta [DomainEndpointOptions](https://docs.aws.amazon.com/opensearch-service/latest/APIReference/API_DomainEndpointOptions.html)la *referencia de la API OpenSearch de Amazon Service*.

## Resolución de problemas
<a name="custom-plugin-troubleshooting"></a>

Si el sistema devuelve el error `PluginValidationFailureReason : The provided plugin could not be loaded`, consulte [La instalación del complemento personalizado falla debido a la compatibilidad de las versiones](handling-errors.md#troubleshooting-custom-plugins) para obtener información de solución de problemas.

## Instalación de un complemento personalizado mediante la consola
<a name="custom-plugin-install-console"></a>

Para asociar un complemento de terceros a un dominio, primero importe la licencia y la configuración del complemento como paquetes.

**Para instalar un complemento personalizado**

1. Inicia sesión en la consola OpenSearch de Amazon Service desde [https://console.aws.amazon.com/aos/casa](https://console.aws.amazon.com/aos/home).

1. En el panel de navegación izquierdo, elija **Paquetes**.

1. Seleccione **Importar paquete**.

1. En **Nombre**, ingrese un nombre único y fácil de identificar para el complemento.

1. (Opcional) En la **descripción**, proporciona cualquier detalle útil sobre el paquete o su propósito.

1. En **Tipo de paquete**, elija **Complemento**.

1. En **Origen del paquete**, ingrese la ruta o busque el archivo ZIP del complemento en Amazon S3.

1. Para la **versión OpenSearch del motor**, elige la OpenSearch versión compatible con el plugin.

1. Para el **cifrado de paquetes**, elija si desea personalizar la clave de cifrado del paquete. De forma predeterminada, OpenSearch Service cifra el paquete de complementos con un Clave propiedad de AWS. En su lugar, puede usar una clave administrada por el cliente.

1. Seleccione **Importar**.

Después de importar el paquete de complementos, asócielo a un dominio. Para obtener instrucciones, consulte [Para importar y asociar un paquete a un dominio](custom-packages.md#associate-console).

## Administrar complementos personalizados mediante el AWS CLI
<a name="managing-custom-plugins-cli"></a>

Puedes utilizar el AWS CLI para gestionar una serie de tareas de complementos personalizados.

**Topics**
+ [Instalación de un complemento personalizado mediante el AWS CLI](#custom-plugin-install-cli)
+ [Actualización de un complemento personalizado mediante el AWS CLI](#custom-plugin-update-cli)
+ [Crea o actualiza un complemento personalizado con una AWS KMS clave de seguridad](#custom-plugin-kms-key-security-cli)
+ [Actualizar un dominio de OpenSearch servicio con complementos personalizados a una versión posterior OpenSearch mediante el AWS CLI](#custom-plugin-domain-upgrade-cli)
+ [Desinstalar y ver el estado de disociación de un complemento personalizado](#custom-plugin-uninstall-cli)

### Instalación de un complemento personalizado mediante el AWS CLI
<a name="custom-plugin-install-cli"></a>

**Antes de empezar**  
Antes de poder asociar un complemento personalizado con su dominio, debe cargarlo en un bucket de Amazon Simple Storage Service (Amazon S3). El depósito debe estar ubicado en el mismo Región de AWS lugar en el que pretendes utilizar el complemento. Para obtener información sobre cómo agregar un objeto a un bucket de S3, consulte [Cargar objetos](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html) en la *Guía del usuario de Amazon Simple Storage Service*.

Si su complemento contiene información sensible, especifique el cifrado del lado del servidor con claves administradas por S3 al cargarlo. Después de cargar el archivo, tome nota de su ruta de S3. El formato de la ruta es `s3://amzn-s3-demo-bucket/file-path/file-name`.

**nota**  
Si lo desea, puede proteger un complemento personalizado al crear el complemento especificando una clave AWS Key Management Service (AWS KMS). Para obtener información, consulte [Crea o actualiza un complemento personalizado con una AWS KMS clave de seguridad](#custom-plugin-kms-key-security-cli).

**Para instalar un complemento personalizado mediante el AWS CLI**

1. Cree un nuevo paquete para su complemento personalizado ejecutando el siguiente comando [create-package](https://docs.aws.amazon.com/cli/latest/reference/opensearch/create-package.html), asegurándose de cumplir con los siguientes requisitos:
   + La ubicación del bucket y la clave debe apuntar al archivo `.zip` del complemento en un bucket de S3 de la cuenta en la que está ejecutando los comandos. 
   + El bucket de S3 debe estar en la misma región en la que se está creando el paquete. 
   + Solo se admiten archivos `.zip` para los paquetes `ZIP-PLUGIN`. 
   + El contenido del archivo `.zip` debe seguir la estructura de directorios esperada por el complemento.
   + El valor de `--engine-version` debe estar en el formato `OpenSearch_{MAJOR}.{MINOR}`. Por ejemplo: **OpenSearch\$12.17**.

   Sustitúyalo por tu propia información: *placeholder values*

   ```
   aws opensearch create-package \
       --package-name package-name \
       --region region \
       --package-type ZIP-PLUGIN \
       --package-source S3BucketName=amzn-s3-demo-bucket,S3Key=s3-key \
       --engine-version opensearch-version
   ```

1. (Opcional) Vea el estado de la operación `create-package`, incluidos los resultados de validación y las vulnerabilidades de seguridad, usando el comando [describe-packages](https://docs.aws.amazon.com/cli/latest/reference/es/describe-packages.html). Sustitúyalo por su propia información: *placeholder values*

   ```
   aws opensearch describe-packages \
       --region region  \
       --filters '[{"Name": "PackageType","Value": ["ZIP-PLUGIN"]}, {"Name": "PackageName","Value": ["package-name"]}]'
   ```

   El comando devuelve información similar a la siguiente:

   ```
   {
       "PackageDetailsList": [{
           "PackageID": "pkg-identifier",
           "PackageName": "package-name",
           "PackageType": "ZIP-PLUGIN",
           "PackageStatus": "VALIDATION_FAILED",
           "CreatedAt": "2024-11-11T13:07:18.297000-08:00",
           "LastUpdatedAt": "2024-11-11T13:10:13.843000-08:00",
           "ErrorDetails": {
               "ErrorType": "",
               "ErrorMessage": "PluginValidationFailureReason : Dependency Scan reported 3 vulnerabilities for the plugin: CVE-2022-23307, CVE-2019-17571, CVE-2022-23305"
           },
           "EngineVersion": "OpenSearch_2.15",
           "AllowListedUserList": [],
           "PackageOwner": "OWNER-XXXX"
       }]
   }
   ```
**nota**  
Durante la `create-package` operación, Amazon OpenSearch Service comprueba el `ZIP-PLUGIN` valor para comprobar la compatibilidad de versiones, las extensiones de complementos compatibles y las vulnerabilidades de seguridad. Las vulnerabilidades de seguridad se escanean mediante el servicio [Amazon Inspector](https://aws.amazon.com/inspector/getting-started/). Los resultados de estas verificaciones se muestran en el campo `ErrorDetails` de la respuesta de la API.

1. Usa el comando [associate-package](https://docs.aws.amazon.com/cli/latest/reference/opensearch/associate-package.html) para asociar el complemento al dominio de OpenSearch servicio que elijas utilizando el ID de paquete del paquete creado en el paso anterior.
**sugerencia**  
Si tiene varios complementos, puede usar el comando [associate-packages](https://docs.aws.amazon.com/cli/latest/reference/opensearch/associate-packages.html) para asociar múltiples paquetes a un dominio en una sola operación. 

   Sustitúyalo *placeholder values* por tu propia información:

   ```
   aws opensearch associate-package \
       --domain-name domain-name \
       --region region \
       --package-id package-id
   ```
**nota**  
El complemento se instala y desinstala utilizando un proceso de [implementación azul/verde](managedomains-configuration-changes.md).

1. (Opcional) Utilice el [list-packages-for-domain](https://docs.aws.amazon.com/cli/latest/reference/opensearch/list-packages-for-domain.html)comando para ver el estado de la asociación. El estado de la asociación cambia a medida que el flujo de trabajo avanza de `ASSOCIATING` a `ACTIVE`. El estado de la asociación cambia a ACTIVE cuando se completa la instalación del complemento y el complemento está listo para su uso.

   Sustituya *placeholder values* por su propia información.

   ```
   aws opensearch list-packages-for-domain \
       --region region \
       --domain-name domain-name
   ```

### Actualización de un complemento personalizado mediante el AWS CLI
<a name="custom-plugin-update-cli"></a>

Use el comando [update-package](https://docs.aws.amazon.com/cli/latest/reference/opensearch/update-package.html) para realizar cambios en un complemento.

**nota**  
Si lo desea, puede proteger un complemento personalizado al actualizar el complemento especificando una clave AWS Key Management Service (AWS KMS). Para obtener información, consulte [Crea o actualiza un complemento personalizado con una AWS KMS clave de seguridad](#custom-plugin-kms-key-security-cli).

**Para actualizar un complemento personalizado mediante el AWS CLI**
+ Ejecute el comando siguiente. Sustituya *placeholder values* por su propia información.

  ```
  aws opensearch update-package \
      --region region \
      --package-id package-id \
      --package-source S3BucketName=amzn-s3-demo-bucket,S3Key=s3-key \
      --package-description description
  ```

Después de actualizar un paquete, puede usar el comando [associate-package](https://docs.aws.amazon.com/cli/latest/reference/opensearch/associate-package.html) o [associate-packages](https://docs.aws.amazon.com/cli/latest/reference/opensearch/associate-packages.html) para aplicar las actualizaciones del paquete a un dominio.

**nota**  
 Puede auditar, crear, actualizar, asociar y desasociar operaciones en el complemento mediante AWS CloudTrail. Para obtener más información, consulte [Supervisión de las llamadas a la API de Amazon OpenSearch Service con AWS CloudTrail](managedomains-cloudtrailauditing.md).

### Crea o actualiza un complemento personalizado con una AWS KMS clave de seguridad
<a name="custom-plugin-kms-key-security-cli"></a>

Puede proteger un complemento personalizado al crearlo o actualizarlo especificando una clave AWS KMS . Para lograr esto, configure `PackageEncryptionOptions` en `true` y especifique el Nombre de recurso de Amazon (ARN) de la clave, como se muestra en los siguientes ejemplos.

**Ejemplo: crea un complemento personalizado con una AWS KMS clave de seguridad**

```
aws opensearch create-package \
    --region us-east-2  --package-name my-custom-package \
    --package-type ZIP-PLUGIN \
    --package-source S3BucketName=amzn-s3-demo-bucket,S3Key=my-s3-key 
    --engine-version OpenSearch_2.15   
"PackageConfigOptions": {
     ...
  }
  "PackageEncryptionOptions": {
    "Enabled": true,
    "KmsKeyId":"arn:aws:kms:us-east-2:111222333444:key/2ba228d5-1d09-456c-ash9-daf42EXAMPLE"
  }
```

**Ejemplo: actualizar un complemento personalizado con AWS KMS claves de seguridad**

```
aws opensearch update-package \
    --region us-east-2  --package-name my-custom-package \
    --package-type ZIP-PLUGIN \
    --package-source S3BucketName=amzn-s3-demo-bucket,S3Key=my-s3-key 
    --engine-version OpenSearch_2.15   
"PackageConfigOptions": {
     ...
  }
  "PackageEncryptionOptions": {
    "Enabled": true,
    "KmsKeyId":"arn:aws:kms:us-east-2:111222333444:key/2ba228d5-1d09-456c-ash9-daf42EXAMPLE"
  }
```

**importante**  
Si la AWS KMS clave que especificas está deshabilitada o eliminada, el clúster asociado puede dejar inoperativo.

Para obtener más información sobre AWS KMS la integración con paquetes personalizados,[AWS KMS Integración de paquetes personalizados de Amazon OpenSearch Service](custom-package-kms-integration.md).

### Actualizar un dominio de OpenSearch servicio con complementos personalizados a una versión posterior OpenSearch mediante el AWS CLI
<a name="custom-plugin-domain-upgrade-cli"></a>

Cuando necesite actualizar un dominio de OpenSearch servicio que utiliza complementos personalizados a una versión posterior de OpenSearch, complete los siguientes procesos.

**Para actualizar un dominio de OpenSearch servicio con complementos personalizados a una versión posterior OpenSearch mediante el AWS CLI**

1. Usa el comando create-package para crear un paquete nuevo para tu complemento especificando la nueva OpenSearch versión.

   Asegúrese de que el nombre del paquete sea el mismo para el complemento en todas las versiones del motor. Si se cambia el nombre del paquete, se produce un error en el proceso de actualización del dominio durante la blue/green implementación.

1. Actualice su dominio a una versión superior siguiendo los pasos que se indican en [Actualización de los dominios OpenSearch de Amazon Service](version-migration.md).

   Durante este proceso, Amazon OpenSearch Service desasocia la versión anterior del paquete de complementos e instala la nueva versión mediante un blue/green despliegue.

### Desinstalar y ver el estado de disociación de un complemento personalizado
<a name="custom-plugin-uninstall-cli"></a>

Para desinstalar el complemento de cualquier dominio, puede usar el comando [dissociate-package](https://docs.aws.amazon.com/cli/latest/reference/es/dissociate-package.html). Al ejecutar este comando, también se eliminan todos los paquetes de configuración o licencias relacionados. A continuación, puede utilizar el [list-packages-for-domain](https://docs.aws.amazon.com/cli/latest/reference/es/list-packages-for-domain.html)comando para ver el estado de la disociación.

**sugerencia**  
También puede usar el comando [dissociate-packages](https://docs.aws.amazon.com/cli/latest/reference/opensearch/dissociate-packages.html) para desinstalar varios complementos de un dominio en una sola operación. 

**Desinstalar y ver el estado de disociación de un complemento personalizado**

1. Deshabilita el complemento en todos los índices. Esto debe hacerse antes de disociar el paquete de complementos. 

   Si intentas desinstalar un complemento antes de deshabilitarlo en todos los índices, el proceso de blue/green implementación permanece estancado en ese estado. `Processing`

1. Ejecute el siguiente comando para desinstalar el complemento. Sustituya *placeholder values* por su propia información.

   ```
   aws opensearch dissociate-package \
       --region region \
       --package-id plugin-package-id \
       --domain-name domain name
   ```

1. (Opcional) Ejecuta el [list-packages-for-domain](https://docs.aws.amazon.com/cli/latest/reference/opensearch/list-packages-for-domain.html)comando para ver el estado de la disociación.

# AWS KMS Integración de paquetes personalizados de Amazon OpenSearch Service
<a name="custom-package-kms-integration"></a>

Los paquetes personalizados de Amazon OpenSearch Service proporcionan cifrado de forma predeterminada para proteger tus `ZIP-PLUGIN` paquetes en reposo 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 tus `ZIP-PLUGIN` paquetes. No puedes ver, gestionar, 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](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk) en la *Guía para desarrolladores de AWS Key Management Service *.
+ **Claves administradas por el cliente**: puedes añadir una segunda capa de cifrado sobre la existente si eliges una clave administrada Claves propiedad de AWS por el cliente al crear tu paquete `ZIP-PLUGIN` personalizado.

  Los paquetes personalizados de Amazon OpenSearch Service admiten el uso de una clave simétrica gestionada por el cliente que tú creas, posees y gestionas para añadir una segunda capa de cifrado sobre el cifrado que ya AWS tienes. Debido a que usted tiene control total sobre esta capa de cifrado, puede realizar las siguientes tareas:
  + Establecer y mantener políticas de claves.
  + Establezca y mantenga políticas y subvenciones 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](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) en la *Guía para desarrolladores de AWS Key Management Service *.

**nota**  
Los paquetes personalizados de Amazon OpenSearch Service permiten automáticamente el cifrado Claves propiedad de AWS en reposo sin coste alguno. Sin embargo, se aplican AWS KMS cargos cuando utilizas una clave gestionada por el cliente. Para obtener más información acerca de los precios, consulte [Precios de AWS Key Management Service](https://aws.amazon.com/kms/pricing/).

## Cómo el OpenSearch servicio de paquetes personalizados de Amazon Service utiliza las subvenciones en AWS KMS
<a name="custom-package-kms-grants"></a>

OpenSearch Los paquetes personalizados de Service requieren una autorización para usar tu clave gestionada por el cliente.

Cuando creas un `ZIP-PLUGIN` paquete cifrado con una clave gestionada por el cliente, el OpenSearch servicio de paquetes personalizados de Amazon Service crea una concesión en tu nombre enviando una [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)solicitud a AWS KMS. Otorga AWS KMS a OpenSearch In Give Service acceso a una AWS KMS clave de tu cuenta. Las concesiones creadas por los paquetes personalizados del OpenSearch Servicio tienen una restricción que permite realizar operaciones únicamente cuando la solicitud incluye un contexto de cifrado con el identificador del paquete personalizado.

Los paquetes personalizados de Amazon OpenSearch Service requieren la autorización para utilizar tu clave gestionada por el cliente en las siguientes operaciones internas:


| Operación | Description (Descripción) | 
| --- | --- | 
| DescribeKey | Envía DescribeKey solicitudes AWS KMS para comprobar que el identificador de clave simétrico gestionado por el cliente introducido al crear el paquete de complementos es válido. | 
| GenerateDataKeyWithoutPlaintext | Envía GenerateDataKeyWithoutPlaintext solicitudes AWS KMS para generar claves de datos cifradas por la clave gestionada por el cliente. | 
| GenerateDataKey | Envía GenerateDataKey solicitudes AWS KMS para generar claves de datos para cifrar el paquete al copiarlo internamente. | 
| Decrypt | Envía Decrypt solicitudes AWS KMS para descifrar las claves de datos cifradas para que puedan usarse para descifrar los 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, el OpenSearch Servicio no podrá acceder a ningún dato cifrado por la clave gestionada por el cliente, lo que afectará a las operaciones que dependen de esos datos. Por ejemplo, si intentas asociar un paquete de complementos al que OpenSearch Service no puede acceder, la operación devuelve un `AccessDeniedException` error.

## Creación de una clave administrada por el cliente
<a name="custom-package-create-cmk"></a>

Puede crear una clave simétrica gestionada por el cliente mediante el Consola de administración de AWS o el AWS KMS APIs.

**Para crear una clave simétrica administrada por el cliente**
+ Siga los pasos en [Crear una clave KMS](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) en la *Guía para desarrolladores de AWS Key Management Service *.

### Política de claves
<a name="custom-package-key-policy"></a>

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](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) 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. Otorga el acceso de control a una AWS KMS clave específica, lo que permite acceder a las operaciones de concesión que requieren los paquetes personalizados del OpenSearch Servicio. Para obtener más información sobre el uso de permisos, consulte la [Guía para desarrolladores de AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html).

  Esto permite al OpenSearch Servicio hacer lo siguiente:
  + Llamar a `GenerateDataKeyWithoutPlainText` para generar una clave de datos cifrada y almacenarla para validaciones posteriores.
  + Llamar a `GenerateDataKey` para copiar internamente el paquete del complemento.
  + Llamar a `Decrypt` para acceder internamente al paquete del complemento.
  + Configurar una entidad principal que se retire para permitir que el servicio `RetireGrant`.
+ `kms:DescribeKey`— Proporciona los detalles clave gestionados por el cliente para que el OpenSearch Servicio pueda validar la clave.
+ `kms:GenerateDataKey`,`kms:GenerateDataKeyWithoutPlaintext`, `kms:Decrypt` — Da acceso a los paquetes personalizados del OpenSearch Servicio para utilizar estas operaciones en la concesión.

Los siguientes son ejemplos de declaraciones de políticas que puede añadir a los paquetes personalizados del OpenSearch Servicio:

```
"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](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) y en la *Guía para desarrolladores de AWS Key Management Service *.

Para obtener más información sobre la solución de problemas de acceso a las claves, consulte [Solución de problemas de AWS KMS permisos](https://docs.aws.amazon.com/kms/latest/developerguide/policy-evaluation.html) en la *Guía para AWS Key Management Service desarrolladores*.

## Especifica una clave gestionada por el cliente para los paquetes personalizados OpenSearch de Amazon Service
<a name="custom-package-specify-cmk"></a>

Puede especificar una clave administrada por el cliente como segunda capa de cifrado para sus paquetes `ZIP-PLUGIN`.

Al crear un paquete de complementos, puede especificar la clave de datos introduciendo un identificador de AWS KMS clave, que los paquetes personalizados del OpenSearch Servicio utilizan para cifrar el paquete de complementos.

*AWS KMS ID de clave*: identificador de clave para una clave gestionada por el AWS KMS cliente. Introduzca el ID de la clave, el ARN de la clave, el nombre de alias o el ARN del alias.

## Contexto de cifrado de paquetes personalizados de Amazon OpenSearch Service
<a name="custom-package-encryption-context"></a>

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 respaldar el cifrado autenticado. Al incluir un contexto de cifrado en una solicitud de cifrado de 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 paquetes personalizados de Amazon OpenSearch Service
<a name="custom-package-encryption-context-details"></a>

Los paquetes personalizados de Amazon OpenSearch Service utilizan el mismo contexto de cifrado en todas las operaciones AWS KMS criptográficas, donde la clave es `packageId` y el valor es el `package-id` del paquete de complementos.

### Uso del contexto de cifrado para monitoreo
<a name="custom-package-encryption-context-monitoring"></a>

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 Amazon CloudWatch Logs.

### Utilizar el contexto de cifrado para controlar el acceso a la clave administrada por el cliente
<a name="custom-package-encryption-context-access-control"></a>

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.

OpenSearch Los paquetes personalizados de servicios utilizan una restricción del contexto de cifrado en las concesiones para controlar el acceso a la clave gestionada 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"
         }
    }
}
```

## Servicio de supervisión de las claves de cifrado para paquetes OpenSearch personalizados
<a name="custom-package-monitoring-keys"></a>

Cuando utilizas una clave gestionada por el AWS KMS cliente con los recursos del OpenSearch servicio de paquetes personalizados, puedes utilizar CloudTrail nuestros CloudWatch registros para realizar un seguimiento de las solicitudes a las que se envían los paquetes OpenSearch personalizados 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 AWS KMS básicos, consulte [AWS KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html)la *Guía para AWS Key Management Service desarrolladores*.
+ Para obtener más información sobre las mejores prácticas de seguridad AWS KMS, consulte la guía de *orientación AWS prescriptiva* para conocer [las AWS Key Management Service mejores prácticas](https://docs.aws.amazon.com/kms/latest/developerguide/best-practices.html).