

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 de datos
<a name="data-encryption"></a>

En este tema se proporciona información específica sobre las decisiones de Amazon Connect sobre el cifrado en tránsito y el cifrado en reposo.

## Cifrado en tránsito
<a name="data-encryption-in-transit"></a>

Todas las comunicaciones entre los clientes y Amazon Connect Decisions y entre Amazon Connect Decisions y sus dependencias posteriores se protegen mediante conexiones TLS 1.2 o superiores.

## Cifrado en reposo
<a name="data-encryption-at-rest"></a>

Todos los datos en reposo se cifran mediante el cifrado del lado del servidor. No se requiere ninguna configuración adicional, ya que el servicio gestiona el cifrado de forma transparente.

De forma predeterminada, Amazon Connect Decisions cifra sus datos con las claves de cifrado de AWS Key Management Service (AWS KMS) que pertenecen a AWS. No tiene que tomar ninguna medida para proteger las claves de propiedad de AWS que cifran sus datos. Para obtener más información, consulte las claves propiedad de [ AWS ](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk) en la Guía * para desarrolladores del servicio de administración de claves de * AWS.

Si lo desea, puede configurar una clave de KMS administrada por el cliente para tener un control total sobre el ciclo de vida de la clave, incluida la creación, la rotación, la inhabilitación y la administración de las políticas de acceso.

### Cifrar los datos en reposo mediante claves de KMS administradas por el cliente
<a name="data-encryption-customer-managed-kms-keys"></a>

#### Cómo utiliza Amazon Connect Decisions una clave de KMS gestionada por el cliente
<a name="data-encryption-how-uses-cmk"></a>

Al configurar una clave de KMS gestionada por el cliente, Amazon Connect Decisions la utiliza para cifrar todos los datos de la instancia en reposo. Esto incluye los datos almacenados en la infraestructura subyacente del servicio.

El servicio accede a su clave a través de tres mecanismos:
+ **Principal de servicio**: el principal de `scn.amazonaws.com` servicio llama a KMS directamente para cifrar, descifrar y realizar GenerateDataKey operaciones, y pasa el contexto de cifrado y los encabezados adjuntos son confusos.
+ ****Concesiones: el servicio crea concesiones para tu clave cuando creas una instancia. Estas subvenciones permiten a los servicios de AWS dependientes cifrar y descifrar datos con su clave. Las subvenciones se retiran cuando se elimina la instancia.
+ **Función de instancia mediante FAS**: una función vinculada a un servicio accede a tu clave a través de la `scn.<region>.amazonaws.com` ViaService condición en la que interactúas con la consola.

**Contexto de cifrado: ** todas las operaciones directas de KMS incluyen el siguiente contexto de cifrado:

```
{"aws:scn:arn": "arn:aws:scn:<region>:<account-id>:instance/<instance-id>"}
```

**Almacenamiento en caché de claves de datos: ** Amazon Connect Decisions almacena en caché las claves de datos durante un máximo de 15 minutos. Esto significa que, después de deshabilitar o revocar el acceso a la clave de KMS, el servicio puede seguir usando una clave de datos en caché durante un máximo de 15 minutos antes de que las operaciones empiecen a fallar.

#### Configurar una clave de KMS administrada por el cliente
<a name="data-encryption-configuring-cmk"></a>

Amazon Connect Decisions solo admite el cifrado simétrico de claves de KMS. Multi-region se admiten las claves.

##### Configurar los permisos para usar una clave de KMS administrada por el cliente
<a name="data-encryption-configuring-permissions"></a>

Para usar una clave de KMS administrada por el cliente, configure su política de claves siguiendo estos tres pasos:

1. **Cree una clave de KMS ** con la política base que se indica a continuación.

1. **Cree una instancia de Amazon Connect ** Decisions y seleccione esa clave.

1. **(Opcional, recomendado) ** Actualice la política de claves con restricciones a nivel de instancia.

##### Paso 1: Crea una clave con la política base
<a name="data-encryption-step1-base-policy"></a>

Abra la consola de [ AWS KMS](https://console.aws.amazon.com/kms), elija ** Crear clave ** y sustituya la política predeterminada por la siguiente. `<customer-account-id>`Sustitúyala por el ID de tu cuenta de AWS y `<region>` por tu región de AWS.

```
{
          "Version": "2012-10-17",		 	 	 
          "Statement": [
            {
              "Sid": "AllowAccountRootFullAccess",
              "Effect": "Allow",
              "Principal": {
                "AWS": "arn:aws:iam::<customer-account-id>:root"
              },
              "Action": "kms:*",
              "Resource": "*"
            },
            {
              "Sid": "AllowScnRetrievalOfKeyMetadata",
              "Effect": "Allow",
              "Principal": {
                "Service": "scn.amazonaws.com"
              },
              "Action": "kms:DescribeKey",
              "Resource": "*",
              "Condition": {
                "StringEquals": {
                  "aws:SourceAccount": "<customer-account-id>"
                }
              }
            },
            {
              "Sid": "AllowScnEncryptDecryptWithContext",
              "Effect": "Allow",
              "Principal": {
                "Service": "scn.amazonaws.com"
              },
              "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey",
                "kms:GenerateDataKeyWithoutPlaintext"
              ],
              "Resource": "*",
              "Condition": {
                "StringEquals": {
                  "aws:SourceAccount": "<customer-account-id>"
                }
              }
            },
            {
              "Sid": "AllowScnCryptoViaDependencyServices",
              "Effect": "Allow",
              "Principal": {
                "Service": "scn.amazonaws.com"
              },
              "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey*",
                "kms:DescribeKey"
              ],
              "Resource": "*",
              "Condition": {
                "StringEquals": {
                  "kms:ViaService": [
                    "redshift-serverless.<region>.amazonaws.com",
                    "aoss.<region>.amazonaws.com",
                    "dynamodb.<region>.amazonaws.com",
                    "s3.<region>.amazonaws.com"
                  ]
                }
              }
            },
            {
              "Sid": "AllowScnCreateGrantForDependencyServices",
              "Effect": "Allow",
              "Principal": {
                "Service": "scn.amazonaws.com"
              },
              "Action": "kms:CreateGrant",
              "Resource": "*",
              "Condition": {
                "ForAllValues:StringEquals": {
                  "kms:GrantOperations": [
                    "Encrypt",
                    "Decrypt",
                    "GenerateDataKey",
                    "GenerateDataKeyWithoutPlaintext",
                    "DescribeKey",
                    "RetireGrant",
                    "ReEncryptFrom",
                    "ReEncryptTo",
                    "CreateGrant"
                  ]
                },
                "Bool": {
                  "kms:GrantIsForAWSResource": "true"
                }
              }
            },
            {
              "Sid": "AllowInstanceRoleDescribeKey",
              "Effect": "Allow",
              "Principal": {
                "AWS": "*"
              },
              "Action": "kms:DescribeKey",
              "Resource": "*",
              "Condition": {
                "ArnLike": {
                  "aws:PrincipalArn": "arn:aws:iam::<customer-account-id>:role/service-role/scn-instance-role-*"
                },
                "StringEquals": {
                  "kms:ViaService": "scn.<region>.amazonaws.com"
                }
              }
            },
            {
              "Sid": "AllowInstanceRoleEncryptDecrypt",
              "Effect": "Allow",
              "Principal": {
                "AWS": "*"
              },
              "Action": [
                "kms:Decrypt",
                "kms:GenerateDataKey*"
              ],
              "Resource": "*",
              "Condition": {
                "ArnLike": {
                  "aws:PrincipalArn": "arn:aws:iam::<customer-account-id>:role/service-role/scn-instance-role-*"
                },
                "StringEquals": {
                  "kms:ViaService": "scn.<region>.amazonaws.com"
                }
              }
            },
            {
              "Sid": "AllowInstanceRoleCreateGrant",
              "Effect": "Allow",
              "Principal": {
                "AWS": "*"
              },
              "Action": "kms:CreateGrant",
              "Resource": "*",
              "Condition": {
                "ArnLike": {
                  "aws:PrincipalArn": "arn:aws:iam::<customer-account-id>:role/service-role/scn-instance-role-*"
                },
                "StringEquals": {
                  "kms:ViaService": "scn.<region>.amazonaws.com"
                },
                "ForAllValues:StringEquals": {
                  "kms:GrantOperations": [
                    "Encrypt",
                    "Decrypt",
                    "GenerateDataKey",
                    "GenerateDataKeyWithoutPlaintext",
                    "DescribeKey",
                    "CreateGrant"
                  ]
                },
                "Bool": {
                  "kms:GrantIsForAWSResource": "true"
                }
              }
            }
          ]
        }
```

**Explicaciones de la declaración de política: **
+ **AllowAccountRootFullAccess**— Garantiza que el propietario de la clave mantenga el control total. Necesario para evitar el bloqueo de las llaves.
+ **AllowScnRetrievalOfKeyMetadata**— Permite al servicio validar la configuración de claves durante la creación de la instancia. Accede a tu cuenta a través `aws:SourceAccount` de.
+ **AllowScnEncryptDecryptWithContext**— Permite realizar operaciones criptográficas directas sobre sus datos. Tras el paso 3, esto se amplía aún más a su instancia específica mediante un contexto de cifrado.
+ **AllowScnCryptoViaDependencyServices**— Permite las operaciones criptográficas a través de servicios de dependencia que no admiten el contexto de cifrado. Se extiende a puntos finales `kms:ViaService` de servicio específicos.
+ **AllowScnCreateGrantForDependencyServices**— Permite la creación de subvenciones para los servicios de dependencia. Limitado a las operaciones incluidas en la lista y restringido únicamente a los recursos de AWS.
+ **AllowInstanceRoleDescribeKey**— Permite que la función vinculada al servicio de la instancia describa la clave a través de FAS.
+ **AllowInstanceRoleEncryptDecrypt**— Permite que el rol de instancia descifre y genere claves de datos mediante FAS.
+ **AllowInstanceRoleCreateGrant**— Permite que el rol de instancia cree concesiones para integraciones posteriores.

##### Paso 2: Crea tu instancia de Amazon Connect Decisions
<a name="data-encryption-step2-create-instance"></a>

Durante la creación de la instancia, selecciona la clave gestionada ** por el ** cliente en la configuración de cifrado y elige la clave que creaste en el paso 1.

**importante**  
No puedes cambiar esta selección después de la creación de la instancia. Si necesitas usar una clave diferente en el futuro, debes crear una instancia nueva.

##### Paso 3 (opcional): agrega restricciones a nivel de instancia
<a name="data-encryption-step3-instance-restrictions"></a>

Tras crear la instancia, actualiza la política de claves para restringir el acceso solo a esa instancia. Esto evita que otras instancias de la misma cuenta usen la clave.

Sustituye `<customer-account-id>``<region>`, y `<instance-id>` (el UUID visible en la consola de Amazon Connect Decisions).

Los cambios con respecto a la política base son los siguientes:
+ Agregue `aws:SourceArn` condiciones a las declaraciones principales del servicio, restringiéndolas al ARN de la instancia.
+ Agregue `kms:EncryptionContext:aws:scn:arn` condiciones a las operaciones criptográficas, exigiendo que el contexto de cifrado coincida con su instancia.

Política actualizada (que muestra solo las declaraciones que cambian):

**AllowScnRetrievalOfKeyMetadata**— añadir `ArnLike` condición:

```
"Condition": {
          "StringEquals": {
            "aws:SourceAccount": "<customer-account-id>"
          },
          "ArnLike": {
            "aws:SourceArn": "arn:aws:scn:<region>:<customer-account-id>:instance/<instance-id>"
          }
        }
```

**AllowScnEncryptDecryptWithContext**— agregar `EncryptionContext` y `SourceArn` condicionar:

```
"Condition": {
          "StringEquals": {
            "aws:SourceAccount": "<customer-account-id>",
            "kms:EncryptionContext:aws:scn:arn": "arn:aws:scn:<region>:<customer-account-id>:instance/<instance-id>"
          },
          "ArnLike": {
            "aws:SourceArn": "arn:aws:scn:<region>:<customer-account-id>:instance/<instance-id>"
          }
        }
```

**AllowInstanceRoleEncryptDecrypt**— añadir `EncryptionContext` condición:

```
"Condition": {
          "ArnLike": {
            "aws:PrincipalArn": "arn:aws:iam::<customer-account-id>:role/scn-instance-role-*"
          },
          "StringEquals": {
            "kms:EncryptionContext:aws:scn:arn": "arn:aws:scn:<region>:<customer-account-id>:instance/<instance-id>",
            "kms:ViaService": "scn.<region>.amazonaws.com"
          }
        }
```

##### Crear una nueva instancia con una clave de KMS administrada por el cliente
<a name="data-encryption-creating-instance-with-cmk"></a>

La clave de KMS se selecciona durante la creación de la instancia en la consola de decisiones de Amazon Connect. Para obtener más información sobre la creación de una instancia, consulte [ Creación de una instancia de Amazon Connect Decisions](https://docs.aws.amazon.com/connect-decisions/latest/adminguide/creating-your-instance.html).

##### Cambiar la configuración de cifrado en una instancia existente
<a name="data-encryption-changing-encryption-config"></a>

Amazon Connect Decisions no permite cambiar la clave de KMS en una instancia activa. Si necesita usar una clave diferente, debe crear una nueva instancia configurada con la clave deseada. Los datos cifrados con la clave anterior no se conservan en la nueva instancia.

##### Limitar el acceso a la clave de KMS administrada por el cliente
<a name="data-encryption-scoping-down-access"></a>

Puede restringir el acceso a su clave mediante los siguientes mecanismos:
+ **Contexto de cifrado**: `kms:EncryptionContext:aws:scn:arn` utilícelo en su política de claves para restringir las operaciones a una instancia específica (consulte el paso 3).
+ **Protección secundaria confusa**: el servicio transfiere `aws:SourceAccount` y recibe `aws:SourceArn` las llamadas de KMS. Usa estas condiciones para asegurarte de que solo tu cuenta e instancia puedan acceder a la clave.
+ **kms: ViaService ** — El rol de instancia solo accede a la clave de forma directa`scn.<region>.amazonaws.com`, lo que impide su uso directo fuera del servicio.
+ **Restricciones en materia de subvenciones**: las subvenciones abarcan `kms:GrantIsForAWSResource` y se limitan a las operaciones enumeradas de forma explícita.

**nota**  
Los servicios de dependencia (Redshift Serverless, OpenSearch Serverless, DynamoDB) no admiten el contexto de cifrado ni los encabezados adjuntos confusos. El acceso a estos servicios está limitado únicamente al ámbito de uso. `kms:ViaService`

### Supervisión de la interacción de Amazon Connect Decisions con AWS KMS
<a name="data-encryption-monitoring-kms"></a>

Puede usar AWS CloudTrail para rastrear las solicitudes de KMS que Amazon Connect Decisions realiza en su nombre. Busque entradas de registro con los siguientes valores:


| Campo | Valor esperado | 
| --- | --- | 
| eventName | `Decrypt`, `GenerateDataKey`, `CreateGrant` | 
| usuario Identity.invokedBy | `scn.amazonaws.com` | 
| solicitud Parameters.encryptionContext | `{"aws:scn:arn": "arn:aws:scn:<region>:<account-id>:instance/<instance-id>"}` | 

Puede filtrar CloudTrail los eventos con estos valores para auditar cuándo y cómo Amazon Connect Decisions accede a su clave de KMS.

Para obtener más información, consulte [ Registrar las llamadas a la API de AWS KMS con AWS CloudTrail](https://docs.aws.amazon.com/kms/latest/developerguide/logging-using-cloudtrail.html).