

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.

# Protección de datos en Amazon Kinesis Data Streams
<a name="server-side-encryption"></a>

El cifrado del lado del servidor mediante claves AWS Key Management Service (AWS KMS) le permite cumplir con facilidad los estrictos requisitos de administración de datos al cifrar los datos en reposo en Amazon Kinesis Data Streams.

**nota**  
Si necesita módulos criptográficos validados por FIPS 140-2 para acceder a AWS través de una interfaz de línea de comandos o una API, utilice un punto de conexión FIPS. Para obtener más información sobre los puntos de conexión de FIPS disponibles, consulte [Estándar de procesamiento de la información federal (FIPS) 140-2](https://aws.amazon.com/compliance/fips/).

**Topics**
+ [¿Qué es el cifrado del lado del servidor para Kinesis Data Streams?](what-is-sse.md)
+ [Cuestiones sobre costos, regiones y rendimiento](costs-performance.md)
+ [¿Cómo puedo comenzar a usar el cifrado en el servidor?](getting-started-with-sse.md)
+ [Crear y usar claves KMS generadas por el usuario](creating-using-sse-master-keys.md)
+ [Permisos para utilizar claves de KMS generadas por el usuario](permissions-user-key-KMS.md)
+ [Comprobar y solucionar problemas de permisos de claves de KMS](sse-troubleshooting.md)
+ [Usar Amazon Kinesis Data Streams con puntos de conexión de VPC de interfaz](vpc.md)

# ¿Qué es el cifrado del lado del servidor para Kinesis Data Streams?
<a name="what-is-sse"></a>

El cifrado del lado del servidor es una función de Amazon Kinesis Data Streams que cifra automáticamente los datos antes de que estén en reposo mediante la clave maestra del AWS KMS cliente (CMK) que especifique. Los datos se cifran antes de escribirlos en la capa de almacenamiento del flujo de Kinesis y se descifran después de recuperarlos del almacenamiento. Como resultado, los datos se cifran en reposo en el servicio de Kinesis Data Streams. Esto le permite cumplir requisitos normativos estrictos y mejorar la seguridad de sus datos.

Con el cifrado del lado del servidor, sus consumidores y productores del flujo de Kinesis no tendrán que ocuparse de administrar claves principales ni realizar operaciones criptográficas. Los datos se cifran automáticamente a medida que entran y salen del servicio Kinesis Data Streams, por lo que los datos en reposo se cifran. AWS KMS proporciona todas las claves maestras que utiliza la función de cifrado del lado del servidor. AWS KMS facilita el uso de una CMK para Kinesis gestionada por una CMK AWS KMS especificada AWS por el usuario o una clave maestra importada al servicio. AWS KMS 

**nota**  
El cifrado en el servidor cifra los datos entrantes solo después de que se habilite el cifrado. Los datos preexistentes de una secuencia sin cifrar no se cifran tras activar el cifrado en el servidor. 

Al cifrar sus flujos de datos y compartir el acceso con otras entidades principales, debe conceder permisos tanto a la política de claves de la clave como a las políticas de IAM AWS KMS de la cuenta externa. Para obtener más información, consulte [Allowing users in other accounts to use a KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying-external-accounts.html) (Permitir que los usuarios de otras cuentas utilicen una clave KMS). 

Si ha habilitado el cifrado del lado del servidor para un flujo de datos con una clave KMS AWS administrada y desea compartir el acceso mediante una política de recursos, debe cambiar a la clave administrada por el cliente (CMK), como se muestra a continuación: 

![\[Encryption settings interface with options for server-side encryption and customer-managed CMK.\]](http://docs.aws.amazon.com/es_es/streams/latest/dev/images/cmk2.png)


Además, debe permitir que las entidades principales compartidas tengan acceso a su CMK mediante las capacidades de uso compartido entre cuentas de KMS. Asegúrese de realizar también el cambio en las políticas de IAM para las entidades principales compartidas. Para obtener más información, consulte [Allowing users in other accounts to use a KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying-external-accounts.html) (Permitir que los usuarios de otras cuentas utilicen una clave KMS).

# Cuestiones sobre costos, regiones y rendimiento
<a name="costs-performance"></a>

Al aplicar el cifrado del lado del servidor, está sujeto al uso de la API y a los costes de las claves. AWS KMS A diferencia de las claves maestras de KMS personalizadas, la clave maestra del cliente (CMK) `(Default) aws/kinesis` se ofrece sin cargo alguno. No obstante, debe pagar los costos de uso de la API que Amazon Kinesis Data Streams genera en su nombre.

Los costos de uso de la API se aplican a todas las CMK, incluidas las personalizadas. Kinesis Data Streams llama a AWS KMS aproximadamente cada cinco minutos cuando rota la clave de datos. En un mes de 30 días, el coste total de las llamadas a la AWS KMS API iniciadas por una transmisión de Kinesis debería ser inferior a unos pocos dólares. Este coste varía en función del número de credenciales de usuario que utilice para generar y consumir datos, ya que cada credencial de usuario requiere una llamada única a la API. AWS KMS Cuando utiliza un rol de IAM para la autenticación, cada llamada al rol genera credenciales de usuario únicas. Para ahorrar costos de KMS, tal vez le resulte conveniente almacenar las credenciales de usuario devueltas por la llamada al rol. 

A continuación se describen los costos por recurso:

**Claves**
+ La CMK para Kinesis gestionada AWS por (alias `aws/kinesis` =) es gratuita.
+ Las claves de KMS generadas por el usuario están sujetas a los costos por clave de KMS. Para obtener más información, consulte [Precios de AWS Key Management Service](https://aws.amazon.com/kms/pricing/#Keys).

Los costos de uso de la API se aplican a todas las CMK, incluidas las personalizadas. Kinesis Data Streams llama a KMS aproximadamente cada cinco minutos cuando rota la clave de datos. En un mes de 30 días, el costo total de las llamadas a la API de KMS iniciadas por un flujo de datos de Kinesis debería ser inferior a unos pocos dólares. Tenga en cuenta que este costo varía en función del número de credenciales de usuario que utilice para generar y consumir datos, ya que cada credencial de usuario requiere una llamada de API única a KMS. AWS Al utilizar la función de IAM para la autenticación, cada una de ellas assume-role-call generará credenciales de usuario únicas, por lo que puede que prefiera almacenar en caché las credenciales de usuario devueltas por esa función assume-role-call para ahorrar costes de KMS.

## Uso de las API de KMS
<a name="api-usage"></a>

Para cada transmisión cifrada, al leer el TIP y utilizar una única clave de account/user acceso de IAM entre lectores y escritores, el servicio Kinesis llama AWS KMS al servicio aproximadamente 12 veces cada 5 minutos. No leer el TIP podría provocar un aumento de las llamadas al AWS KMS servicio. Las solicitudes de API para generar nuevas claves de cifrado de datos están sujetas a costes AWS KMS de uso. Para obtener más información, consulte [Precios de AWS Key Management Service: Uso](https://aws.amazon.com/kms/pricing/#Usage).

## Disponibilidad del cifrado en el servidor por región
<a name="sse-regions"></a>

Actualmente, el cifrado del lado del servidor de las transmisiones de Kinesis está disponible en todas las regiones compatibles con Kinesis Data Streams, AWS GovCloud incluidas las regiones de EE. UU. y China. Para obtener más información sobre las regiones compatibles con Kinesis Data Streams, [https://docs.aws.amazon.com/general/latest/gr/akconsulte](https://docs.aws.amazon.com/general/latest/gr/ak.html) .html.

## Consideraciones sobre el rendimiento
<a name="performance-considerations"></a>

Debido a la sobrecarga de servicio que supone aplicar el cifrado, el cifrado en el servidor aumenta la latencia típica de `PutRecord`, `PutRecords` y `GetRecords` en menos de 100 μs.

# ¿Cómo puedo comenzar a usar el cifrado en el servidor?
<a name="getting-started-with-sse"></a>

La forma más sencilla de empezar a utilizar el cifrado del lado del servidor es utilizar la clave de Consola de administración de AWS servicio Amazon Kinesis KMS,. `aws/kinesis`

El siguiente procedimiento demuestra cómo habilitar el cifrado del lado del servidor para un flujo de Kinesis.

**Para habilitar el cifrado del lado del servidor para un flujo de Kinesis**

1. Inicie sesión en la consola de [Amazon Kinesis Data Streams Consola de administración de AWS](https://console.aws.amazon.com/kinesis/home?region=us-east-1#/streams/list) y ábrala.

1. Cree o seleccione un flujo de Kinesis en la Consola de administración de AWS.

1. Elija la pestaña **Details (Detalles)**.

1. En **Server-side encryption (Cifrado en el servidor)**, elija **Edit (Editar)**.

1. A no ser que quiera utilizar una clave maestra de KMS generada por el usuario, asegúrese de que la clave maestra de KMS **(Default) aws/kinesis** esté seleccionada. Esta es la clave principal de KMS generada por el servicio de Kinesis. Seleccione **Enabled (Habilitada)** y, a continuación, elija **Save (Guardar)**. 
**nota**  
La clave maestra del servicio de Kinesis predeterminada es gratuita; sin embargo, las llamadas a la API que Kinesis realiza al AWS KMS servicio están sujetas a los costes de uso de KMS. 

1. La secuencia realiza una transición a través del estado **pendiente**. Cuando la secuencia vuelve a un estado **activo** con el cifrado habilitado, todos los datos entrantes que se escriben en la secuencia se cifran con la clave maestra de KMS que haya seleccionado.

1. ****Para deshabilitar el cifrado del lado del servidor, seleccione Desactivar el cifrado del **lado del servidor en el Consola de administración de AWS y, a continuación**, seleccione Guardar.****

# Crear y usar claves KMS generadas por el usuario
<a name="creating-using-sse-master-keys"></a>

En esta sección se describe cómo crear y utilizar sus propias claves de KMS en lugar de utilizar la clave principal administrada por Amazon Kinesis.

## Crear claves KMS generadas por el usuario
<a name="creating-sse-master-keys"></a>

Para obtener instrucciones sobre cómo crear sus propias claves, consulte [Creación de claves](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html) en la *Guía para desarrolladores de AWS Key Management Service *. Después de crear las claves para su cuenta, el servicio de Kinesis Data Streams devuelve estas claves en la lista de **claves principales de KMS**.

## Utilizar claves KMS generadas por el usuario
<a name="using-sse-master-keys"></a>

Una vez aplicados los permisos correctos a sus consumidores, productores y administradores, puede usar claves KMS personalizadas en su propia AWS cuenta o en otra cuenta. AWS Todas las claves maestras de KMS de su cuenta aparecerán en la lista **KMS Master Key (Clave maestra de KMS)** de la Consola de administración de AWS.

Para utilizar las claves maestras de KMS personalizadas en otra cuenta, necesitará permisos para utilizar las claves. También debe especificar el ARN de la clave maestra de KMS en el cuadro de introducción del ARN de la Consola de administración de AWS.

# Permisos para utilizar claves de KMS generadas por el usuario
<a name="permissions-user-key-KMS"></a>

Para poder utilizar el cifrado del lado del servidor con una clave KMS generada por el usuario, debe configurar AWS KMS políticas de claves que permitan el cifrado de las transmisiones y el cifrado y descifrado de los registros de las transmisiones. Para ver ejemplos y más información sobre AWS KMS los permisos, consulte Permisos de la [API de AWS KMS: referencia sobre acciones](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) y recursos. 

**nota**  
El uso de las claves de servicio predeterminadas para el cifrado no requiere que se apliquen permisos de IAM personalizados.

Antes de utilizar las claves principales de KMS generadas por el usuario, asegúrese de que sus productores y consumidores de flujos de Kinesis (entidades principales de IAM) sean usuarios en la política de claves principales de KMS. De lo contrario, las labores de escritura y lectura de una secuencia producirán un error, lo que, en definitiva, podría resultar en pérdida de datos, retrasos en el procesamiento, aplicaciones colgadas. Puede administrar los permisos para las claves de KMS con las políticas de IAM. Para obtener más información, consulte [Uso de políticas de IAM con AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html).

## Contexto de cifrado de Kinesis Data Streams
<a name="sse-kms-encryption-context"></a>

Cuando Amazon Kinesis Data Streams AWS KMS llama en su nombre, pasa un contexto de cifrado AWS KMS al que se puede utilizar como condición para la autorización en políticas y concesiones clave. Kinesis Data Streams utiliza el ARN de transmisión como contexto de cifrado en todas las llamadas. AWS KMS 

```
"encryptionContext": {
    "aws:kinesis:arn": "arn:aws:kinesis:region:account-id:stream/stream-name"
}
```

Puede usar el contexto de cifrado para identificar el uso de su clave KMS en los registros y registros de auditoría. También aparece en texto plano en los registros, como AWS CloudTrail.

Para limitar el uso de la clave de KMS a las solicitudes de Kinesis Data Streams para una transmisión específica, utilice `kms:EncryptionContext:aws:kinesis:arn` la clave de condición de la política de claves de KMS o la política de IAM.

## Ejemplo de permisos para productores
<a name="example-producer-permissions"></a>

Sus productores de flujos de Kinesis deben tener el permiso `kms:GenerateDataKey`.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "kms:GenerateDataKey"
        ],
        "Resource": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab"
    }, 
    {
        "Effect": "Allow",
        "Action": [
            "kinesis:PutRecord",
            "kinesis:PutRecords"
        ],
        "Resource": "arn:aws:kinesis:*:123456789012:MyStream"
    }
  ]
}
```

------

## Ejemplo de permisos para consumidores
<a name="example-consumer-permissions"></a>

Sus consumidores de flujos de Kinesis deben tener el permiso `kms:Decrypt`.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "kms:Decrypt"
        ],
        "Resource": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab"
    }, 
    {
        "Effect": "Allow",
        "Action": [
            "kinesis:GetRecords",
            "kinesis:DescribeStream"
        ],
        "Resource": "arn:aws:kinesis:*:123456789012:MyStream"
    }
  ]
}
```

------

Amazon Managed Service para Apache Flink y AWS Lambda utilice roles para consumir transmisiones de Kinesis. Asegúrese de agregar el permiso `kms:Decrypt` a los roles que usen estos consumidores.

## Permisos de administrador de flujos
<a name="stream-administrator-permissions"></a>

Los administradores de flujos de Kinesis deben tener autorización para llamar a `kms:List*` y ```kms:DescribeKey*`.

# Comprobar y solucionar problemas de permisos de claves de KMS
<a name="sse-troubleshooting"></a>

Tras habilitar el cifrado en una transmisión de Kinesis, le recomendamos que supervise el éxito de sus `getRecords` llamadas y de sus `putRecord` llamadas utilizando las siguientes métricas de Amazon CloudWatch : `putRecords`
+  `PutRecord.Success` 
+  `PutRecords.Success` 
+  `GetRecords.Success` 

Para obtener más información, consulte [Supervisar Kinesis Data Streams](monitoring.md)

# Usar Amazon Kinesis Data Streams con puntos de conexión de VPC de interfaz
<a name="vpc"></a>

Puede utilizar un punto de conexión de VPC de interfaz para evitar que el tráfico entre Amazon VPC y Kinesis Data Streams abandone la red de Amazon. Los puntos finales de la interfaz VPC no requieren una puerta de enlace a Internet, un dispositivo NAT, una conexión VPN o una conexión. Direct Connect Los puntos de enlace de la interfaz VPC funcionan con una AWS tecnología que permite la comunicación privada entre AWS servicios mediante una interfaz de red elástica y privada en IPs su Amazon VPC. AWS PrivateLink Para obtener más información, consulte [Amazon Virtual Private Cloud](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Introduction.html) e [Interface VPC Endpoints ()](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#create-interface-endpoint).AWS PrivateLink 

**Topics**
+ [Usar puntos de conexión de VPC de interfaz para Kinesis Data Streams](#using-interface-vpc-endpoints)
+ [Controlar el acceso a los puntos de conexión de VPC para Kinesis Data Streams](#interface-vpc-endpoints-policies)
+ [Disponibilidad de las políticas de punto de conexión de VPC para Kinesis Data Streams](#availability)

## Usar puntos de conexión de VPC de interfaz para Kinesis Data Streams
<a name="using-interface-vpc-endpoints"></a>

Para empezar, no es necesario cambiar la configuración de los flujos, los productores ni los consumidores. Cree un punto de conexión de VPC de interfaz para que el tráfico de Kinesis Data Streams con origen y destino en los recursos de Amazon VPC comience a circular por el punto de conexión de VPC de interfaz. Los puntos de conexión de VPC con interfaz habilitada para FIPS están disponibles para las regiones de EE. UU. Para obtener más información, consulte [Creación de un punto de conexión de interfaz](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#create-interface-endpoint).

La biblioteca de productores de Amazon Kinesis (KPL) y la biblioteca de consumidores de Kinesis (KCL) llaman a servicios como AWS Amazon y Amazon CloudWatch DynamoDB mediante puntos de enlace públicos o puntos de enlace de VPC de interfaz privada, según se utilicen. Por ejemplo, si su aplicación de KCL se ejecuta en una VPC con interfaz de DynamoDB con puntos de conexión de VPC habilitados, las llamadas entre DynamoDB y su aplicación de KCL fluyen a través del punto de conexión de VPC de interfaz.

## Controlar el acceso a los puntos de conexión de VPC para Kinesis Data Streams
<a name="interface-vpc-endpoints-policies"></a>

Las políticas de punto de conexión de VPC le permiten controlar el acceso asociando una política a un punto de conexión de VPC o utilizando campos adicionales en una política asociada a un usuario, grupo o rol de IAM para restringir el acceso para que solo se produzca a través del punto de conexión de VPC especificado. Use estas políticas para restringir el acceso a transmisiones específicas a un punto de conexión de VPC especificado cuando se utilizan junto con las políticas de IAM para conceder acceso únicamente a las acciones de flujos de datos de Kinesis a través del punto de conexión de VPC especificado.

A continuación, se muestran ejemplos de políticas de punto de enlace para obtener acceder a las transmisiones de datos de Kinesis.
+ **Ejemplo de política de VPC: acceso de solo lectura:** esta política de ejemplo se puede asociar a un punto de enlace de la VPC. (Para obtener más información, consulte [Control de acceso a recursos de Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_IAM.html)). Limita las acciones a solo enumerar y describir una transmisión de datos de Kinesis a través del punto de enlace de la VPC al que está asociada.

  ```
  {
    "Statement": [
      {
        "Sid": "ReadOnly",
        "Principal": "*",
        "Action": [
          "kinesis:List*",
          "kinesis:Describe*"
        ],
        "Effect": "Allow",
        "Resource": "*"
      }
    ]
  }
  ```
+ **Ejemplo de política de VPC: restringe el acceso a una transmisión de datos de Kinesis específica** ; esta política de ejemplo se puede asociar a un punto de enlace de la VPC. Limita el acceso a una secuencia de datos específica a través del punto de enlace de la VPC al que está asociada.

  ```
  {
    "Statement": [
      {
        "Sid": "AccessToSpecificDataStream",
        "Principal": "*",
        "Action": "kinesis:*",
        "Effect": "Allow",
        "Resource": "arn:aws:kinesis:us-east-1:123456789012:stream/MyStream"
      }
    ]
  }
  ```
+ **Ejemplo de política de IAM: restringe el acceso a una transmisión específica solo desde un punto de conexión de VPC específica** ; esta política de ejemplo se puede asociar a un usuario, rol o grupo de IAM. Restringe el acceso a una transmisión de datos de Kinesis especificada para que solo se produzca desde un punto de enlace especificado de la VPC.

------
#### [ JSON ]

****  

  ```
  {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
        {
           "Sid": "AccessFromSpecificEndpoint",
           "Action": "kinesis:*",
           "Effect": "Deny",
           "Resource": "arn:aws:kinesis:us-east-1:123456789012:stream/MyStream",
           "Condition": { "StringNotEquals" : { "aws:sourceVpce": "vpce-11aa22bb" } }
        }
     ]
  }
  ```

------

## Disponibilidad de las políticas de punto de conexión de VPC para Kinesis Data Streams
<a name="availability"></a>

Los puntos de conexión de VPC de interfaz de Kinesis Data Streams con políticas se admiten en las siguientes regiones: 
+ Europa (París)
+ Europa (Irlanda)
+ Este de EE. UU. (Norte de Virginia)
+ Europa (Estocolmo)
+ Este de EE. UU. (Ohio)
+ Europa (Fráncfort)
+ América del Sur (São Paulo)
+ Europa (Londres)
+ Asia-Pacífico (Tokio)
+ Oeste de EE. UU. (Norte de California)
+ Asia-Pacífico (Singapur)
+ Asia-Pacífico (Sídney)
+ China (Pekín)
+ China (Ningxia)
+ Asia-Pacífico (Hong Kong)
+ Medio Oriente (Baréin)
+ Medio Oriente (EAU)
+ Europa (Milán)
+ África (Ciudad del Cabo)
+ Asia-Pacífico (Bombay)
+ Asia-Pacífico (Seúl)
+ Canadá (Centro)
+ Oeste de EE. UU. (Oregón) excepto usw2-az4
+ AWS GovCloud (Este de EE. UU.)
+ AWS GovCloud (Estados Unidos-Oeste)
+ Asia-Pacífico (Osaka)
+ Europa (Zúrich)
+ Asia-Pacífico (Hyderabad)