Seleccione sus preferencias de cookies

Usamos cookies esenciales y herramientas similares que son necesarias para proporcionar nuestro sitio y nuestros servicios. Usamos cookies de rendimiento para recopilar estadísticas anónimas para que podamos entender cómo los clientes usan nuestro sitio y hacer mejoras. Las cookies esenciales no se pueden desactivar, pero puede hacer clic en “Personalizar” o “Rechazar” para rechazar las cookies de rendimiento.

Si está de acuerdo, AWS y los terceros aprobados también utilizarán cookies para proporcionar características útiles del sitio, recordar sus preferencias y mostrar contenido relevante, incluida publicidad relevante. Para aceptar o rechazar todas las cookies no esenciales, haga clic en “Aceptar” o “Rechazar”. Para elegir opciones más detalladas, haga clic en “Personalizar”.

Tutorial: Externalización de la información confidencial con proveedores de configuración

Modo de enfoque
Tutorial: Externalización de la información confidencial con proveedores de configuración - Amazon Managed Streaming para Apache Kafka

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.

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.

En este ejemplo, se muestra cómo externalizar la información confidencial de Amazon MSK Connect mediante un proveedor de configuración de código abierto. Un proveedor de configuración le permite especificar variables en lugar de texto sin formato en una configuración de conector o de trabajo, y los procesos de trabajo que se ejecutan en su conector resuelven estas variables en tiempo de ejecución. Esto evita que las credenciales y otros secretos se almacenen en texto sin formato. El proveedor de configuración del ejemplo admite la recuperación de los parámetros de configuración de AWS Secrets Manager, Amazon S3 y Systems Manager (SSM). En el paso 2, puede ver cómo configurar el almacenamiento y la recuperación de información confidencial para el servicio que desee configurar.

Consideraciones

Tenga en cuenta lo siguiente al utilizar el proveedor de configuración de MSK con Amazon MSK Connect:

  • Al utilizar los proveedores de configuración, asigne los permisos adecuados al rol de ejecución del servicio de IAM.

  • Defina los proveedores de configuración en las configuraciones de proceso de trabajo y su implementación en la configuración del conector.

  • Los valores de configuración confidenciales pueden aparecer en los registros de los conectores si un complemento no los define como secretos. Kafka Connect trata los valores de configuración indefinidos de la misma manera que cualquier otro valor de texto sin formato. Para obtener más información, consulte Impedir que los secretos aparezcan en los registros de los conectores.

  • De forma predeterminada, MSK Connect reinicia con frecuencia un conector cuando este utiliza un proveedor de configuración. Para desactivar este comportamiento de reinicio, puede establecer el valor de config.action.reload en none en la configuración del conector.

Creación de un complemento personalizado y carga a S3

Para crear un complemento personalizado, cree un archivo zip que contenga el conector y ejecute msk-config-provider los siguientes comandos en su máquina local.

Para crear un complemento personalizado utilizando una ventana de terminal y Debezium como conector

Utilice la AWS CLI para ejecutar comandos como superusuario con credenciales que le permitan acceder a su bucket de AWS S3. Para obtener información sobre la instalación y configuración de la AWS CLI, consulte Introducción a la AWS CLI en la Guía del AWS Command Line Interface usuario. Para obtener información sobre el uso de la AWS CLI con Amazon S3, consulte Uso de Amazon S3 con la AWS CLI en la Guía del AWS Command Line Interface usuario.

  1. En una ventana de terminal, cree una carpeta denominada custom-plugin en su espacio de trabajo mediante el siguiente comando.

    mkdir custom-plugin && cd custom-plugin
  2. Descargue la última versión estable del complemento MySQL Connector desde el sitio de Debezium mediante el siguiente comando.

    wget https://repo1.maven.org/maven2/io/debezium/debezium-connectormysql/ 2.2.0.Final/debezium-connector-mysql-2.2.0.Final-plugin.tar.gz

    Extraiga el archivo gzip descargado de la carpeta custom-plugin con el siguiente comando.

    tar xzf debezium-connector-mysql-2.2.0.Final-plugin.tar.gz
  3. Descargue el archivo zip del proveedor de configuración de MSK con el siguiente comando.

    wget https://github.com/aws-samples/msk-config-providers/releases/download/r0.1.0/msk-config-providers-0.1.0-with-dependencies.zip

    Extraiga el archivo zip descargado de la carpeta custom-plugin con el siguiente comando.

    unzip msk-config-providers-0.1.0-with-dependencies.zip
  4. Comprima el contenido del proveedor de configuración de MSK del paso anterior y el conector personalizado en un único archivo denominado custom-plugin.zip.

    zip -r ../custom-plugin.zip *
  5. Cargue el archivo en S3 para consultarlo más adelante.

    aws s3 cp ../custom-plugin.zip s3:<S3_URI_BUCKET_LOCATION>
  6. En la consola de Amazon MSK, en la sección MSK Connect, elija Custom Plugin, elija Create custom plugin y explore el bucket s3: < S3_URI_BUCKET_LOCATION > S3 para seleccionar el archivo ZIP del plugin personalizado que acaba de cargar.

    Amazon S3 bucket interface showing a single custom-plugin.zip file in the debezium folder.
  7. Introduzca debezium-custom-plugin para el nombre del complemento. De manera opcional, ingrese una descripción y elija Crear complemento personalizado.

    Amazon S3 bucket interface showing a single custom-plugin.zip file in the debezium folder.

Configuración de los parámetros y permisos para los distintos proveedores

Puede configurar los valores de los parámetros en estos tres servicios:

  • Secrets Manager 

  • Almacén de parámetros de Systems Manager

  • S3 - Simple Storage Service

Seleccione una de las pestañas siguientes para obtener instrucciones sobre cómo configurar los parámetros y los permisos pertinentes para ese servicio.

Configure in Secrets Manager
Configuración de valores de parámetros en Secrets Manager
  1. Abra la consola de Secrets Manager.

  2. Cree un nuevo secreto para almacenar sus credenciales o secretos. Para obtener instrucciones, consulte Crear un AWS Secrets Manager secreto en la Guía del AWS Secrets Manager usuario.

  3. Copie el ARN de su secreto.

  4. Añada los permisos de Secrets Manager de la siguiente política de ejemplo al rol de ejecución del servicio. <arn:aws:secretsmanager:us-east-1:123456789000:secret:MySecret-1234>Sustitúyalo por el ARN de su secreto.

  5. Agregue la configuración de proceso de trabajo y las instrucciones del conector.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetResourcePolicy", "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret", "secretsmanager:ListSecretVersionIds" ], "Resource": [ "<arn:aws:secretsmanager:us-east-1:123456789000:secret:MySecret-1234>" ] } ] }
  6. Para utilizar el proveedor de configuración Secrets Manager, copie las siguientes líneas de código en el cuadro de texto de configuración del proceso de trabajo del paso 3:

    # define name of config provider: config.providers = secretsmanager # provide implementation classes for secrets manager: config.providers.secretsmanager.class = com.amazonaws.kafka.config.providers.SecretsManagerConfigProvider # configure a config provider (if it needs additional initialization), for example you can provide a region where the secrets or parameters are located: config.providers.secretsmanager.param.region = us-east-1
  7. Para el proveedor de configuración Secrets Manager, copie las siguientes líneas de código en la configuración del conector del paso 4.

    #Example implementation for secrets manager variable database.user=${secretsmanager:MSKAuroraDBCredentials:username} database.password=${secretsmanager:MSKAuroraDBCredentials:password}

También puede utilizar el paso anterior con más proveedores de configuración.

Configure in Systems Manager Parameter Store
Configuración de valores de parámetros en el almacén de parámetros de Systems Manager
  1. Abra la consola de Systems Manager.

  2. En el panel de navegación, elija Parameter Store (Almacén de parámetros).

  3. Cree un parámetro nuevo para guardarlo en Systems Manager. Para obtener instrucciones, consulte Creación de un parámetro de Systems Manager (consola) en la Guía del AWS Systems Manager usuario.

  4. Copie el ARN de su parámetro.

  5. Añada los permisos de Systems Manager de la siguiente política de ejemplo al rol de ejecución del servicio. <arn:aws:ssm:us-east-1:123456789000:parameter/MyParameterName>Sustitúyalo por el ARN de su parámetro.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "ssm:GetParameterHistory", "ssm:GetParametersByPath", "ssm:GetParameters", "ssm:GetParameter" ], "Resource": "arn:aws:ssm:us-east-1:123456789000:parameter/MyParameterName" } ] }
  6. Para utilizar el proveedor de configuración del almacén de parámetros, copie las siguientes líneas de código en el cuadro de texto de configuración del proceso de trabajo del paso 3:

    # define name of config provider: config.providers = ssm # provide implementation classes for parameter store: config.providers.ssm.class = com.amazonaws.kafka.config.providers.SsmParamStoreConfigProvider # configure a config provider (if it needs additional initialization), for example you can provide a region where the secrets or parameters are located: config.providers.ssm.param.region = us-east-1
  7. Para el proveedor de configuración del almacén de parámetros, copie las siguientes líneas de código en la configuración del conector del paso 5.

    #Example implementation for parameter store variable schema.history.internal.kafka.bootstrap.servers=${ssm::MSKBootstrapServerAddress}

    También puede agrupar los dos pasos anteriores con más proveedores de configuración.

Configure in Amazon S3
Configuración de objetos o archivos en Amazon S3
  1. Abra la consola de Amazon S3.

  2. Cargue su objeto en un bucket en S3. Para obtener instrucciones, consulte Carga de objetos.

  3. Copie el ARN de su objeto.

  4. Añada los permisos de lectura de objetos de Amazon S3 de la siguiente política de ejemplo al rol de ejecución del servicio. <arn:aws:s3:::MY_S3_BUCKET/path/to/custom-plugin.zip>Sustitúyalo por el ARN de su objeto.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "s3:GetObject", "Resource": "<arn:aws:s3:::MY_S3_BUCKET/path/to/custom-plugin.zip>" } ] }
  5. Para utilizar el proveedor de configuración de Amazon S3, copie las siguientes líneas de código en el cuadro de texto de configuración del proceso de trabajo del paso 3:

    # define name of config provider: config.providers = s3import # provide implementation classes for S3: config.providers.s3import.class = com.amazonaws.kafka.config.providers.S3ImportConfigProvider
  6. Para el proveedor de configuración de Amazon S3, copie las siguientes líneas de código en la configuración del conector del paso 4.

    #Example implementation for S3 object database.ssl.truststore.location = ${s3import:us-west-2:my_cert_bucket/path/to/trustore_unique_filename.jks}

    También puede agrupar los dos pasos anteriores con más proveedores de configuración.

Configuración de valores de parámetros en Secrets Manager
  1. Abra la consola de Secrets Manager.

  2. Cree un nuevo secreto para almacenar sus credenciales o secretos. Para obtener instrucciones, consulte Crear un AWS Secrets Manager secreto en la Guía del AWS Secrets Manager usuario.

  3. Copie el ARN de su secreto.

  4. Añada los permisos de Secrets Manager de la siguiente política de ejemplo al rol de ejecución del servicio. <arn:aws:secretsmanager:us-east-1:123456789000:secret:MySecret-1234>Sustitúyalo por el ARN de su secreto.

  5. Agregue la configuración de proceso de trabajo y las instrucciones del conector.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetResourcePolicy", "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret", "secretsmanager:ListSecretVersionIds" ], "Resource": [ "<arn:aws:secretsmanager:us-east-1:123456789000:secret:MySecret-1234>" ] } ] }
  6. Para utilizar el proveedor de configuración Secrets Manager, copie las siguientes líneas de código en el cuadro de texto de configuración del proceso de trabajo del paso 3:

    # define name of config provider: config.providers = secretsmanager # provide implementation classes for secrets manager: config.providers.secretsmanager.class = com.amazonaws.kafka.config.providers.SecretsManagerConfigProvider # configure a config provider (if it needs additional initialization), for example you can provide a region where the secrets or parameters are located: config.providers.secretsmanager.param.region = us-east-1
  7. Para el proveedor de configuración Secrets Manager, copie las siguientes líneas de código en la configuración del conector del paso 4.

    #Example implementation for secrets manager variable database.user=${secretsmanager:MSKAuroraDBCredentials:username} database.password=${secretsmanager:MSKAuroraDBCredentials:password}

También puede utilizar el paso anterior con más proveedores de configuración.

Creación de una configuración de proceso de trabajo personalizada con información sobre su proveedor de configuración

  1. Seleccione Configuraciones de proceso de trabajo en la sección Amazon MSK Connect.

  2. Seleccione Crear configuración de proceso de trabajo.

  3. Introduzca SourceDebeziumCustomConfig en el cuadro de texto Nombre de configuración de proceso de trabajo. La descripción es opcional.

  4. Copie el código de configuración correspondiente en función de los proveedores que desee y péguelo en el cuadro de texto Configuración del proceso de trabajo.

  5. Este es un ejemplo de la configuración de proceso de trabajo para los tres proveedores:

    key.converter=org.apache.kafka.connect.storage.StringConverter key.converter.schemas.enable=false value.converter=org.apache.kafka.connect.json.JsonConverter value.converter.schemas.enable=false offset.storage.topic=offsets_my_debezium_source_connector # define names of config providers: config.providers=secretsmanager,ssm,s3import # provide implementation classes for each provider: config.providers.secretsmanager.class = com.amazonaws.kafka.config.providers.SecretsManagerConfigProvider config.providers.ssm.class = com.amazonaws.kafka.config.providers.SsmParamStoreConfigProvider config.providers.s3import.class = com.amazonaws.kafka.config.providers.S3ImportConfigProvider # configure a config provider (if it needs additional initialization), for example you can provide a region where the secrets or parameters are located: config.providers.secretsmanager.param.region = us-east-1 config.providers.ssm.param.region = us-east-1
  6. Haga clic en Crear configuración del proceso de trabajo.

Creación del conector

  1. Cree un conector nuevo siguiendo las instrucciones de Crear un conector nuevo.

  2. Elija el archivo custom-plugin.zip que cargó en su bucket de S3 en Creación de un complemento personalizado y carga a S3 como origen del complemento personalizado.

  3. Copie el código de configuración correspondiente en función de los proveedores que desee y péguelo en el cuadro de texto Configuración del conector.

  4. Este es un ejemplo de la configuración del conector para los tres proveedores:

    #Example implementation for parameter store variable schema.history.internal.kafka.bootstrap.servers=${ssm::MSKBootstrapServerAddress} #Example implementation for secrets manager variable database.user=${secretsmanager:MSKAuroraDBCredentials:username} database.password=${secretsmanager:MSKAuroraDBCredentials:password} #Example implementation for Amazon S3 file/object database.ssl.truststore.location = ${s3import:us-west-2:my_cert_bucket/path/to/trustore_unique_filename.jks}
  5. Seleccione Usar una configuración personalizada y elija SourceDebeziumCustomConfiguna opción en el menú desplegable Configuración de trabajo.

  6. Siga los pasos restantes de las instrucciones de Crear un conector.

PrivacidadTérminos del sitioPreferencias de cookies
© 2025, Amazon Web Services, Inc o sus afiliados. Todos los derechos reservados.