

 Amazon Redshift dejará de admitir la creación de nuevas UDF de Python a partir del parche 198. Las UDF de Python existentes seguirán funcionando hasta el 30 de junio de 2026. Para obtener más información, consulte la [publicación del blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# Autenticación con mTLS para la ingesta de transmisiones de Redshift desde orígenes de Apache Kafka
<a name="materialized-view-streaming-ingestion-mtls"></a>

La seguridad mutua de la capa de transporte (mTLS) proporciona los medios para que un servidor autentique a un cliente al que envía información y para que el cliente autentique el servidor. El beneficio de usar mTLS es que proporciona una autenticación fiable para una variedad de casos de uso en varias aplicaciones del sector vertical. Estos incluyen casos de uso en los sectores financiero, minorista, gubernamental y sanitario. En el caso de la ingesta de transmisiones en Redshift, la autenticación se produce entre un servidor, que puede ser Amazon MSK, Apache Kafka o Confluent Cloud, y un clúster aprovisionado de Amazon Redshift o un grupo de trabajo de Amazon Redshift sin servidor.

En este tema se proporcionan procedimientos y ejemplos de comandos de SQL que muestran formas de crear un esquema externo que utiliza mTLS para autenticarse entre el cliente de Redshift y cualquier servidor de Apache Kafka. Los pasos de este tema complementan el conjunto completo de pasos para configurar la ingesta de transmisiones desde orígenes de Apache Kafka. Para obtener más información, consulte [Introducción a la ingesta de transmisiones desde orígenes de Apache Kafka](materialized-view-streaming-ingestion-getting-started-MSK.md).

## Requisitos previos para usar mTLS para la ingesta de streaming
<a name="materialized-view-streaming-ingestion-mtls-prerequisites"></a>

En esta sección se proporcionan los pasos previos para usar mTLS para la ingesta de transmisiones con AWS Certificate Manager o AWS Secrets Manager.

Como paso preliminar, debe tener o crear una autoridad de certificación privada (PCA), que puede utilizar para emitir certificados que, entre otras funciones, permiten una comunicación segura a través de canales de comunicación seguros. AWS Private Certificate Authority (Entidad de certificación privada) es un servicio disponible que realiza esta función. Para obtener más información, consulte [Creación de una entidad de certificación privada](https://docs.aws.amazon.com/privateca/latest/userguide/create-CA.html) en la *Guía del usuario de AWS Private Certificate Authority*. Tras crear la CA privada, exporte el certificado de CA raíz y guárdelo en un archivo con la extensión .pem. 

Para crear un clúster que utilice el certificado de CA, haga lo siguiente:

------
#### [ Amazon MSK ]

1. Cree un clúster de Amazon MSK que admita la autenticación de clientes mtls. Para obtener más información sobre la configuración de un clúster de Amazon MSK, consulte [Autenticación TLS mutua de clientes para Amazon MSK](https://docs.aws.amazon.com/msk/latest/developerguide/msk-authentication.html#msk-authentication-cluster) en la *Guía para desarrolladores de Amazon Managed Streaming para Apache Kafka*.

1. Edite la configuración de seguridad del clúster de Amazon MSK, active la autenticación de cliente de TLS mediante AWS Certificate Manager (ACM) y seleccione la AWS Private CA (PCA) que creó anteriormente. Para obtener más información, consulte [Actualización de la configuración de seguridad de un clúster](https://docs.aws.amazon.com/msk/latest/developerguide/msk-update-security.html) en la *Guía para desarrolladores de Amazon Managed Streaming para Apache Kafka*.

------
#### [ Confluent Cloud ]

1. Cree un clúster de Confluent Cloud dedicado, preferiblemente en la misma Región de AWS que el clúster de Amazon Redshift. Para obtener información sobre cómo crear un clúster de Confluent Cloud, consulte [Create a Kafka cluster in Confluent Cloud](https://docs.confluent.io/cloud/current/get-started/index.html#step-1-create-a-ak-cluster-in-ccloud).

1. Cargue el archivo pem del certificado de CA raíz de AWS Private CA exportado que creó anteriormente. Para obtener más información, consulte [Manage certificate authority for mTLS authentication for Confluent Cloud](https://docs.confluent.io/cloud/current/security/authenticate/workload-identities/identity-providers/mtls/certificate-authority.html). Confluent Cloud usa este certificado para verificar el certificado de cliente de Amazon Redshift. 

------

## Uso de mTLS para la ingesta de datos con AWS Certificate Manager
<a name="materialized-view-streaming-ingestion-mtls-acm"></a>

El siguiente procedimiento muestra cómo configurar mTLS para la ingesta de transmisiones de Redshift utilizando AWS Certificate Manager (ACM) para el almacenamiento y la administración de certificados:

1. Solicite un certificado privado a través de ACM. Cuando lo haga, seleccione la PCA que creó en la sección de requisitos previos como autoridad de certificación. ACM almacena el certificado firmado y la clave privada adjunta para una comunicación segura. Para obtener más información sobre la administración de certificados con ACM, consulte [Emisión y administración de certificados](https://docs.aws.amazon.com/acm/latest/userguide/gs.html) en la *Guía del usuario de AWS Certificate Manager*.

1. Para el rol de IAM que utilice para administrar el clúster de Redshift o el grupo de trabajo de Amazon Redshift sin servidor, adjunte el permiso para exportar el certificado, que es **acm:ExportCertificate**. Para obtener más información acerca de cómo configurar los recursos de IAM necesarios para la ingesta de transmisiones, consulte [Configuración de la ingesta de transmisiones desde Kafka](materialized-view-streaming-ingestion-getting-started-MSK.md#materialized-view-streaming-ingestion-getting-started-MSK-setup). Especifique el mismo rol de IAM en el siguiente paso para crear el esquema externo.
**nota**  
Solicitudes para que AWS Certificate Manager requiera una puerta de enlace de Internet (IGW) o una puerta de enlace NAT (NGW) en su VPC. Si su VPC no tiene una IGW ni una NGW, haga lo siguiente:  
Utilice Secrets Manager en lugar de ACM para almacenar sus certificados.
Adjunte un punto de conexión de VPC de Secrets Manager a su VPC.
Para obtener información sobre el uso de Secrets Manager con mTLS para la ingesta de streaming, consulte [Uso de mTLS para la ingesta de datos con AWS Secrets Manager](#materialized-view-streaming-ingestion-mtls-secrets-manager).

1. Obtenga el URI del agente de arranque para el clúster de Amazon MSK, Apache Kafka o Confluent Cloud. Para obtener información sobre cómo obtener el URI del agente de arranque para Amazon MSK, consulte [Obtención de agentes de arranque para un clúster de Amazon MSK](https://docs.aws.amazon.com/msk/latest/developerguide/msk-get-bootstrap-brokers.html) en la *Guía para desarrolladores de Amazon Managed Streaming para Apache Kafka*.

1.  Ejecute un comando de SQL como en el siguiente ejemplo para crear un esquema externo que asigne el clúster a un esquema externo de Redshift utilizando `mtls`.

------
#### [ Amazon MSK ]

   ```
   CREATE EXTERNAL SCHEMA my_schema
   FROM KAFKA
   IAM_ROLE 'arn:aws:iam::012345678901:role/my_role'
   AUTHENTICATION mtls
   URI 'b-1.myTestCluster.123z8u.c2.kafka.us-west-1.amazonaws.com:9094,b-2.myTestCluster.123z8u.c2.kafka.us-west-1.amazonaws.com:9094'
   AUTHENTICATION_ARN 'arn:aws:acm:Region:444455556666:certificate/certificate_ID';
   ```

------
#### [ Apache Kafka or Confluent Cloud ]

   ```
   CREATE EXTERNAL SCHEMA my_schema
   FROM KAFKA
   IAM_ROLE 'arn:aws:iam::012345678901:role/my_role'
   AUTHENTICATION mtls
   URI 'lkc-2v531.domz6wj0p.us-west-1.aws.confluent.cloud:9092'
   AUTHENTICATION_ARN 'arn:aws:acm:region:444455556666:certificate/certificate_ID';
   ```

------

   Parámetros importantes:
   + IAM\$1ROLE: el rol de IAM asociado al clúster, para la ingesta de streaming.
   + URI: URI del agente de arranque para el clúster. Tenga en cuenta que, para Amazon MSK, se especifica el puerto 9094 para comunicarse con los agentes de cifrado TLS.
   + AUTHENTICATION\$1ARN: el ARN del certificado de ACM. El ARN está disponible en la consola de ACM al elegir el certificado emitido.

Tras realizar estos pasos de configuración, puede crear una vista materializada de Redshift que haga referencia al esquema definido en el ejemplo y, a continuación, utilizar REFRESH MATERIALIZED VIEW para transmitir los datos. Para obtener más información, consulte [Introducción a la ingesta de transmisiones desde orígenes de Apache Kafka](materialized-view-streaming-ingestion-getting-started-MSK.md).

## Uso de mTLS para la ingesta de datos con AWS Secrets Manager
<a name="materialized-view-streaming-ingestion-mtls-secrets-manager"></a>

Puede configurar mTLS para la ingesta de transmisiones de Redshift utilizando AWS Secrets Manager para la administración de certificados si no desea hacer referencia al certificado en AWS Certificate Manager. En los siguientes pasos se describe cómo configurar los mTLS mediante Secrets Manager.

1. Cree una solicitud de firma de certificado y una clave privada con la herramienta que prefiera. A continuación, puede utilizar la solicitud de firma para generar un certificado firmado con la misma entidad de certificación privada de AWS (PCA) que utilizó para generar el certificado para el clúster. Para obtener más información sobre la emisión de un certificado, consulte [IssueCertificate](https://docs.aws.amazon.com/privateca/latest/APIReference/API_IssueCertificate.html) en la *Referencia de la API de AWS Private Certificate Authority*.

1. Extraiga el certificado mediante AWS Private Certificate Authority. Para obtener más información, consulte [Retrieve a private certificate](https://docs.aws.amazon.com/privateca/latest/userguide/PcaGetCert.html) en la *Guía del usuario de AWS Private Certificate Authority*.

1. Guarde el certificado y la clave privada generados en el paso anterior enAWS Secrets Manager. Elija `Other type of secret` y utilice el formato de texto plano. Los pares clave-valor deben tener el formato `{"certificate":"<cert value>","privateKey":"<pkey value>"}`, que se muestra en el siguiente ejemplo. Para obtener más información acerca de la creación y administración de secretos en AWS Secrets Manager, consulte [Creación y administración de secretos con AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/managing-secrets.html) en la *Guía del usuario de AWS Secrets Manager*.

   ```
   {"certificate":"-----BEGIN CERTIFICATE-----
   klhdslkfjahksgdfkgioeuyihbflahabhbdslv6akybeoiwv1hoaiusdhbahsbdi 
   H4hAX8/eE96qCcjkpfT84EdvHzp6fC+/WwM0oXlwUEWlvfMCXNaG5D8SqRq3qA==
   -----END CERTIFICATE-----
   -----BEGIN CERTIFICATE-----
   klhdslkfjahksgdfkgioeuyihbflahabhbdslv6akybeoiwv1hoaiusdhbahsbdi 
   wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
   -----END CERTIFICATE-----",
   "privateKey":"-----BEGIN PRIVATE KEY-----
   klhdslkfjahksgdfkgioeuyihbflahabhbdslv6akybeoiwv1hoaiusdhbahsbdi
   7OD4m1dBEs3Fj++hDMH9rYRp99RqtCOf0EWOUe139KOilOsW+cyhAoc9Ci2+Jo/k
   17u2N1iGILMQEZuCRtnJOkFYkw==
   -----END PRIVATE KEY-----"}
   ```

1. Asocie la política de permisos para recuperar el secreto para el rol de IAM que utiliza para administrar el clúster de Amazon Redshift o el grupo de trabajo de Amazon Redshift sin servidor. Este permiso es `secretsmanager:GetSecretValue`. Para obtener más información, consulte [Configuración de la autenticación](materialized-view-streaming-ingestion-getting-started-MSK.md#materialized-view-streaming-ingestion-getting-started-MSK-setup-auth). Para obtener más información sobre la administración de las políticas de IAM, consulte [Edición de políticas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-edit.html). Especifique el mismo rol de IAM en el siguiente paso para crear el esquema externo.

1. En Redshift, ejecute el comando SQL para crear el esquema externo. Se utiliza el tipo de AUTENTICACIÓN `mtls`. También se debe especificar el URI del clúster y el ARN del secreto en AWS Secrets Manager.

   ```
   CREATE EXTERNAL SCHEMA my_schema
   FROM KAFKA
   IAM_ROLE 'arn:aws:iam::012345678901:role/my_role'
   AUTHENTICATION mtls
   URI 'b-1.myTestCluster.123z8u.c2.kafka.us-west-1.amazonaws.com:9094,b-2.myTestCluster.123z8u.c2.kafka.us-west-1.amazonaws.com:9094'
   SECRET_ARN 'arn:aws:secretsmanager:us-east-1:012345678910:secret:myMTLSSecret';
   ```

Parámetros importantes:
+ IAM\$1ROLE: el rol de IAM asociado al clúster, para la ingesta de streaming.
+ URI: URI del agente de arranque para el clúster. Tenga en cuenta que, para Amazon MSK, se especifica el puerto 9094 para comunicarse con los agentes de cifrado TLS.
+ SECRET\$1ARN: el ARN del secreto de Secrets Manager, que contiene el certificado que se utilizará para mTLS.

## Habilitación de la autenticación mTLS para un esquema externo existente
<a name="materialized-view-streaming-ingestion-mtls-alter"></a>

Si tiene un esquema externo existente que utiliza para la ingesta de streaming y desea implementar un TLS mutuo para la autenticación, puede ejecutar un comando como el siguiente, que especifica la autenticación mTLS y el ARN del certificado ACM en ACM.

```
ALTER EXTERNAL SCHEMA schema_name 
AUTHENTICATION mtls
AUTHENTICATION_ARN 'arn:aws:acm:Region:444455556666:certificate/certificate_ID';
```

O bien, puede especificar la autenticación mTLS, con referencia al ARN del secreto en AWS Secrets Manager.

```
ALTER EXTERNAL SCHEMA schema_name 
AUTHENTICATION mtls
SECRET_ARN 'arn:aws:secretsmanager:us-east-1:012345678910:secret:myMTLSSecret';
```

Para obtener información sobre el comando ALTER EXTERNAL SCHEMA, consulte [ALTER EXTERNAL SCHEMA](r_ALTER_EXTERNAL_SCHEMA.md).