

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 Managed Streaming para Apache Kafka
<a name="data-protection"></a>

El [modelo de ](https://aws.amazon.com/compliance/shared-responsibility-model/) se aplica a protección de datos en Amazon Managed Streaming for Apache Kafka. Como se describe en este modelo, AWS es responsable de proteger la infraestructura global en la que se ejecutan todos los Nube de AWS. Eres responsable de mantener el control sobre el contenido alojado en esta infraestructura. También eres responsable de las tareas de administración y configuración de seguridad para los Servicios de AWS que utiliza. Para obtener más información sobre la privacidad de los datos, consulte las [Preguntas frecuentes sobre la privacidad de datos](https://aws.amazon.com/compliance/data-privacy-faq/). Para obtener información sobre la protección de datos en Europa, consulte la publicación de blog sobre el [Modelo de responsabilidad compartida de AWS y GDPR](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) en el * Blog de seguridad de AWS *.

Con fines de protección de datos, le recomendamos que proteja Cuenta de AWS las credenciales y configure los usuarios individuales con AWS IAM Identity Center o AWS Identity and Access Management (IAM). De esta manera, solo se otorgan a cada usuario los permisos necesarios para cumplir sus obligaciones laborales. También recomendamos proteger sus datos de la siguiente manera:
+ Utiliza la autenticación multifactor (MFA) en cada cuenta.
+ Se utiliza SSL/TLS para comunicarse con AWS los recursos. Exigimos TLS 1.2 y recomendamos TLS 1.3.
+ Configure la API y el registro de actividad de los usuarios con AWS CloudTrail. Para obtener información sobre el uso de CloudTrail senderos para capturar AWS actividades, consulte [Cómo trabajar con CloudTrail senderos](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-trails.html) en la *Guía del AWS CloudTrail usuario*.
+ Utilice soluciones de AWS cifrado, junto con todos los controles de seguridad predeterminados Servicios de AWS.
+ Utiliza servicios de seguridad administrados avanzados, como Amazon Macie, que lo ayuden a detectar y proteger la información confidencial almacenada en Amazon S3.
+ Si necesita módulos criptográficos validados por FIPS 140-3 para acceder a AWS través de una interfaz de línea de comandos o una API, utilice un punto final 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-3](https://aws.amazon.com/compliance/fips/).

Se recomienda encarecidamente no introducir nunca información confidencial o sensible, como por ejemplo, direcciones de correo electrónico de clientes, en etiquetas o campos de formato libre, tales como el campo **Nombre**. Esto incluye cuando trabaja con Amazon MSK u otro Servicios de AWS mediante la consola, la API o AWS SDKs. AWS CLI Cualquier dato que introduzca en etiquetas o campos de formato libre utilizados para los nombres se pueden emplear para los registros de facturación o diagnóstico. Si proporciona una URL a un servidor externo, recomendamos encarecidamente que no incluya información de credenciales en la URL a fin de validar la solicitud para ese servidor.

**Topics**
+ [Cifrado de Amazon MSK](msk-encryption.md)
+ [Introducción al cifrado de Amazon MSK](msk-working-with-encryption.md)
+ [Utilice Amazon MSK APIs con puntos de enlace de VPC de interfaz](privatelink-vpc-endpoints.md)

# Cifrado de Amazon MSK
<a name="msk-encryption"></a>

Amazon MSK proporciona opciones de cifrado de datos que puede utilizar para cumplir estrictos requisitos de administración de datos. Los certificados que Amazon MSK utiliza para el cifrado deben renovarse cada 13 meses. Amazon MSK renueva automáticamente estos certificados para todos los clústeres. Los clústeres con agentes Express permanecen en el estado `ACTIVE` cuando Amazon MSK inicia la operación de actualización de certificados. En los clústeres con agentes Standard, Amazon MSK establece el estado del clúster en `MAINTENANCE` cuando inicia la operación de actualización de certificados. MSK restablece el estado a `ACTIVE` cuando finaliza la actualización. Mientras un clúster se encuentra en la operación de actualización de certificados, puede continuar con la producción y el consumo de datos, pero no puede realizar ninguna operación de actualización en este.

## Cifrado en reposo de Amazon MSK
<a name="msk-encryption-at-rest"></a>

Amazon MSK se integra con [AWS Key Management Service](https://docs.aws.amazon.com/kms/latest/developerguide/) (KMS) para ofrecer cifrado transparente del servidor. Amazon MSK siempre cifra sus datos en reposo. Al crear un clúster de MSK, puede especificar la propiedad AWS KMS key que desea que Amazon MSK utilice para cifrar sus datos en reposo. Si no se especifica una clave de KMS, Amazon MSK crea una administrada por [Clave administrada de AWS](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk) y la utiliza en su nombre. Para obtener más información acerca de las claves de KMS, consulte [AWS KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys) en la *Guía para desarrolladores de AWS Key Management Service *.

## Cifrado en tránsito de Amazon MSK
<a name="msk-encryption-in-transit"></a>

Amazon MSK utiliza TLS 1.2. De forma predeterminada, cifra los datos en tránsito entre los agentes de su clúster de MSK. Puede anular este valor predeterminado en el momento en que cree el clúster. 

Para la comunicación entre clientes y agentes, debe especificar una de las tres opciones siguientes:
+ Permitir solo datos cifrados TLS. Esta es la configuración predeterminada.
+ Permitir tanto datos de texto sin formato como datos cifrados TLS.
+ Permitir solo datos de texto sin formato.

Los corredores de Amazon MSK utilizan AWS Certificate Manager certificados públicos. Por lo tanto, cualquier almacén de confianza que confíe en Amazon Trust Services también confía en los certificados de los agentes de Amazon MSK.

Si bien recomendamos encarecidamente habilitar el cifrado en tránsito, puede agregar sobrecarga de CPU adicional y unos pocos milisegundos de latencia. Sin embargo, la mayoría de los casos de uso no son sensibles a estas diferencias y la magnitud del impacto depende de la configuración del clúster, los clientes y el perfil de uso. 

# Introducción al cifrado de Amazon MSK
<a name="msk-working-with-encryption"></a>

Al crear un clúster de MSK, puede especificar la configuración de cifrado en formato JSON. A continuación se muestra un ejemplo.

```
{
   "EncryptionAtRest": {
       "DataVolumeKMSKeyId": "arn:aws:kms:us-east-1:123456789012:key/abcdabcd-1234-abcd-1234-abcd123e8e8e"
    },
   "EncryptionInTransit": {
        "InCluster": true,
        "ClientBroker": "TLS"
    }
}
```

Para `DataVolumeKMSKeyId`, puede especificar una [clave administrada por el cliente](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) o la Clave administrada de AWS para MSK en su cuenta (`alias/aws/kafka`). Si no lo especifica`EncryptionAtRest`, Amazon MSK seguirá cifrando sus datos en reposo en. Clave administrada de AWS Para determinar qué clave está utilizando su clúster, envíe una solicitud `GET` o invoque la operación de la API de `DescribeCluster`. 

En `EncryptionInTransit`, el valor predeterminado de `InCluster` es true, pero puede establecerlo en false si no desea que Amazon MSK cifre sus datos a medida que pasan entre los agentes.

Para especificar el modo de cifrado de los datos en tránsito entre clientes y agentes, establezca `ClientBroker` a uno de los tres valores: `TLS`, `TLS_PLAINTEXT`, o `PLAINTEXT`.

**Topics**
+ [Especificación de la configuración de cifrado al crear un clúster de Amazon MSK](msk-working-with-encryption-cluster-create.md)
+ [Prueba del cifrado TLS de Amazon MSK](msk-working-with-encryption-test-tls.md)

# Especificación de la configuración de cifrado al crear un clúster de Amazon MSK
<a name="msk-working-with-encryption-cluster-create"></a>

En este proceso, se describe cómo especificar una configuración de cifrado al crear un clúster de Amazon MSK.

**Especificación de la configuración de cifrado al crear un clúster**

1. Guarde el contenido del ejemplo anterior en un archivo y asígnele el nombre que desee. Por ejemplo, llámalo `encryption-settings.json`.

1. Ejecute el comando `create-cluster` y use la opción `encryption-info` para señalar al archivo donde guardó su configuración JSON. A continuación se muestra un ejemplo. Sustitúyala por una versión que coincida *\$1YOUR MSK VERSION\$1* con la versión del cliente de Apache Kafka. Para obtener información sobre cómo encontrar la versión de clúster de MSK, consulte [Determinación de la versión del clúster de MSK](create-topic.md#find-msk-cluster-version). Tenga en cuenta que el uso de una versión de cliente de Apache Kafka que no sea la misma que su versión de clúster de MSK puede provocar la corrupción, la pérdida y el tiempo de inactividad de los datos de Apache Kafka.

   ```
   aws kafka create-cluster --cluster-name "ExampleClusterName" --broker-node-group-info file://brokernodegroupinfo.json --encryption-info file://encryptioninfo.json --kafka-version "{YOUR MSK VERSION}" --number-of-broker-nodes 3
   ```

   El siguiente es un ejemplo de una respuesta correcta después de ejecutar este comando.

   ```
   {
       "ClusterArn": "arn:aws:kafka:us-east-1:123456789012:cluster/SecondTLSTest/abcdabcd-1234-abcd-1234-abcd123e8e8e",
       "ClusterName": "ExampleClusterName",
       "State": "CREATING"
   }
   ```

# Prueba del cifrado TLS de Amazon MSK
<a name="msk-working-with-encryption-test-tls"></a>

En este proceso, se describe cómo probar el cifrado TLS con Amazon MSK.

**Prueba del cifrado TLS**

1. Cree un equipo cliente siguiendo las instrucciones de [Paso 3: creación de un equipo cliente](create-client-machine.md).

1. Instale Apache Kafka en el equipo cliente.

1. En este ejemplo, usamos el almacén de confianza de JVM para comunicarnos con el clúster de MSK. Para ello, primero cree una carpeta denominada `/tmp` en el equipo cliente. Luego, vaya a la carpeta `bin` de la instalación de Apache Kafka y ejecute el siguiente comando. (Su ruta de JVM puede ser diferente).

   ```
   cp /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.201.b09-0.amzn2.x86_64/jre/lib/security/cacerts /tmp/kafka.client.truststore.jks
   ```

1. Mientras esté aún en la carpeta `bin` de la instalación de Apache Kafka en el equipo cliente, cree un archivo de texto denominado `client.properties` con el siguiente contenido.

   ```
   security.protocol=SSL
   ssl.truststore.location=/tmp/kafka.client.truststore.jks
   ```

1. Ejecute el siguiente comando en una máquina que lo tenga AWS CLI instalado y *clusterARN* reemplácelo por el ARN de su clúster.

   ```
   aws kafka get-bootstrap-brokers --cluster-arn clusterARN
   ```

   Un resultado correcto sería como el siguiente. Guarde este resultado porque lo necesita para el siguiente paso.

   ```
   {
       "BootstrapBrokerStringTls": "a-1.example.g7oein.c2.kafka.us-east-1.amazonaws.com:0123,a-3.example.g7oein.c2.kafka.us-east-1.amazonaws.com:0123,a-2.example.g7oein.c2.kafka.us-east-1.amazonaws.com:0123"
   }
   ```

1. Ejecute el siguiente comando y *BootstrapBrokerStringTls* reemplácelo por uno de los puntos finales del broker que obtuvo en el paso anterior.

   ```
   <path-to-your-kafka-installation>/bin/kafka-console-producer.sh --broker-list BootstrapBrokerStringTls --producer.config client.properties --topic TLSTestTopic
   ```

1. Abra una nueva ventana de comandos y conéctese al mismo equipo cliente. A continuación, ejecute el siguiente comando para crear un consumidor de consola.

   ```
   <path-to-your-kafka-installation>/bin/kafka-console-consumer.sh --bootstrap-server BootstrapBrokerStringTls --consumer.config client.properties --topic TLSTestTopic
   ```

1. En la ventana del productor, escriba un mensaje de texto seguido de una devolución y busque el mismo mensaje en la ventana del consumidor. Amazon MSK cifró este mensaje en tránsito.

Para obtener más información acerca de cómo configurar clientes Apache Kafka para que funcionen con datos cifrados, consulte [Configuración de clientes Kafka](https://kafka.apache.org/documentation/#security_configclients).

# Utilice Amazon MSK APIs con puntos de enlace de VPC de interfaz
<a name="privatelink-vpc-endpoints"></a>

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

Sus aplicaciones se pueden conectar con Amazon MSK Provisioned y MSK Connect APIs mediante. AWS PrivateLink Para comenzar, cree un punto de conexión de VPC de interfaz para la API de Amazon MSK, con el fin de permitir el flujo de tráfico desde y hacia los recursos de la VPC de Amazon a través del punto de conexión de VPC de interfaz. Los puntos de conexión de VPC de interfaz con compatibilidad con 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/privatelink/create-interface-endpoint.html#create-interface-endpoint).

Al utilizar esta característica, los clientes de Apache Kafka pueden recuperar dinámicamente las cadenas de conexión necesarias para conectarse a los recursos de MSK aprovisionado o MSK Connect, sin atravesar Internet para obtener dichas cadenas de conexión.

Cuando cree un punto de conexión de VPC de interfaz, elija uno de los siguientes puntos de conexión de nombre de servicio:

**Para MSK aprovisionado:**
+ Los siguientes puntos de enlace con nombres de servicio ya no son compatibles con las nuevas conexiones:
  + com.amazonaws.region.kafka
  + com.amazonaws.region.kafka-fips (con FIPS habilitado)
+ El servicio de punto final de Dualstack que admite tanto el tráfico como el IPv4 siguiente IPv6 :
  + aws.api.region.kafka-api
  + aws.api.region. kafka-api-fips (habilitado para FIPS)

[Para configurar los puntos finales de doble pila, debe seguir las pautas de los puntos finales de doble pila y FIPS.](https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html)

Donde “region” es el nombre de la región. Elija este nombre de servicio para que funcione con MSK Provisioned-Compatible. APIs *Para obtener más información, consulte [Operaciones](https://docs.aws.amazon.com/msk/1.0/apireference/operations.html) en la versión 1.0/apireference/. https://docs.aws.amazon.com/msk/*

**Para MSK Connect:**
+ com.amazonaws.region.kafkaconnect

Donde “region” es el nombre de la región. Elija este nombre de servicio para que funcione con MSK Connect APIs compatible. Para obtener más información, consulte [Acciones](https://docs.aws.amazon.com/MSKC/latest/mskc/API_Operations.html) en la *Referencia de la API de Amazon MSK Connect*.

*Para obtener más información, incluidas step-by-step las instrucciones para crear un punto final de VPC de interfaz, consulte [Creación de un punto final de interfaz](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint) en la AWS PrivateLink Guía.*

## Controle el acceso a los puntos de enlace de VPC para Amazon MSK Provisioned o MSK Connect APIs
<a name="vpc-endpoints-control-access"></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. Utilice la política de ejemplo adecuada para definir los permisos de acceso para el servicio MSK aprovisionado o MSK Connect, según corresponda.

Si no adjunta una política al crear un punto de conexión, Amazon VPC adjunta una política predeterminada que le conceda acceso completo al servicio. Una política de punto de conexión no anula ni reemplaza las políticas basadas en identidad de IAM ni las políticas específicas del servicio. Se trata de una política independiente para controlar el acceso desde el punto de conexión al servicio especificado.

Para más información, consulte [Control del acceso a los servicios con puntos de conexión de VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html) en la *Guía de AWS PrivateLink *.

------
#### [ MSK Provisioned — VPC policy example ]

**Acceso de solo lectura**  
Esta política de ejemplo se puede asociar a un punto de conexión de VPC. (Para obtener más información, consulte Control de acceso a recursos de Amazon VPC). Restringe las acciones únicamente a las operaciones de listado y descripción a través del punto de conexión de VPC al que está asociada.

```
{
  "Statement": [
    {
      "Sid": "MSKReadOnly",
      "Principal": "*",
      "Action": [
        "kafka:List*",
        "kafka:Describe*"
      ],
      "Effect": "Allow",
      "Resource": "*"
    }
  ]
}
```

**Ejemplo de política de punto de conexión de VPC para MSK aprovisionado**  
Restricción del acceso a un clúster de MSK específico

Esta política de ejemplo se puede asociar a un punto de conexión de VPC. Restringe el acceso a un clúster específico de Kafka a través del punto de conexión de VPC al que está asociada.

```
{
  "Statement": [
    {
      "Sid": "AccessToSpecificCluster",
      "Principal": "*",
      "Action": "kafka:*",
      "Effect": "Allow",
      "Resource": "arn:aws:kafka:us-east-1:123456789012:cluster/MyCluster"
    }
  ]
}
```

------
#### [ MSK Connect — VPC endpoint policy example ]

**Enumeración de conectores y creación de un conector nuevo**  
El siguiente es un ejemplo de una política de punto de conexión para MSK Connect. Esta política permite que el rol especificado enumere conectores y cree un conector nuevo.

```
{
    "Version": "2012-10-17", 		 	 	 		 	 	 
    "Statement": [
        {
            "Sid": "MSKConnectPermissions",
            "Effect": "Allow",
            "Action": [
                "kafkaconnect:ListConnectors",
                "kafkaconnect:CreateConnector"
            ],
            "Resource": "*",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:role/MyMSKConnectExecutionRole"
                ]
            }
        }
    ]
}
```

**Ejemplo de política de punto de conexión de VPC para MSK Connect**  
Permite únicamente solicitudes provenientes de una dirección IP específica dentro de la VPC especificada

En el siguiente ejemplo, se muestra una política que solo permite que las solicitudes procedentes de una dirección IP específica en la VPC especificada se ejecuten correctamente. Las solicitudes de otras direcciones IP devolverán un error.

```
{
    "Statement": [
        {
            "Action": "kafkaconnect:*",
            "Effect": "Allow",
            "Principal": "*",
            "Resource": "*",
            "Condition": {
                "IpAddress": {
                    "aws:VpcSourceIp": "192.0.2.123"
                },
        "StringEquals": {
                    "aws:SourceVpc": "vpc-555555555555"
                }
            }
        }
    ]
}
```

------