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.
Tutorial: Externalización de información confidencial mediante proveedores de configuración
En este ejemplo, se muestra cómo externalizar información confidencial para 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 cuando utilice el proveedor de MSK configuración con Amazon MSK Connect:
Al utilizar los proveedores de configuración, asigne los permisos adecuados a la función IAM de ejecución del servicio.
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
ennone
en la configuración del conector.
Cree un complemento personalizado y cárguelo en 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
AWS CLIUtilícelo para ejecutar los comandos como superusuario con credenciales que le permitan acceder a su AWS bucket de S3. Para obtener información sobre cómo instalar y configurar el AWS CLI, consulte Introducción a él AWS CLI en la Guía del AWS Command Line Interface usuario. Para obtener información sobre el AWS CLI uso de Amazon S3, consulte Uso de Amazon S3 con Amazon S3 AWS CLI en la Guía del AWS Command Line Interface usuario.
-
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
-
Descargue la última versión estable del complemento My SQL Connector del 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
-
Descargue el archivo zip del proveedor de MSK configuración mediante 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
-
Comprima el contenido del proveedor de MSK configuración del paso anterior y el conector personalizado en un único archivo denominado
custom-plugin.zip
.zip -r ../custom-plugin.zip *
-
Cargue el archivo en S3 para consultarlo más adelante.
aws s3 cp ../custom-plugin.zip s3:<
S3_URI_BUCKET_LOCATION
> En la MSK consola de Amazon, en la sección MSKConnect, selecciona Custom Plugin, selecciona Create custom plugin y busca s3: <
S3_URI_BUCKET_LOCATION
En la consola de Amazon, en la ZIP sección Conectar, selecciona Complemento personalizado, luego elige Crear complemento personalizado y navega por el bucket s3: S3 para seleccionar el archivo de complemento personalizado que acabas de cargar.Introduzca
debezium-custom-plugin
para el nombre del complemento. De manera opcional, ingrese una descripción y elija Crear complemento personalizado.
Configure 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.
Creación de una configuración de proceso de trabajo personalizada con información sobre su proveedor de configuración
-
Seleccione Configuraciones de trabajo en la sección Amazon MSK Connect.
Seleccione Crear configuración de proceso de trabajo.
Introduzca
SourceDebeziumCustomConfig
en el cuadro de texto Nombre de configuración de proceso de trabajo. La descripción es opcional.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.
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
Haga clic en Crear configuración del proceso de trabajo.
Cree el conector
Cree un conector nuevo siguiendo las instrucciones de Crear un conector nuevo.
Elija el archivo
custom-plugin.zip
que cargó en su bucket de S3 en Cree un complemento personalizado y cárguelo en S3 como origen del complemento personalizado.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.
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.hostname=${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}Seleccione Usar una configuración personalizada y elija SourceDebeziumCustomConfiguna opción en el menú desplegable Worker Configuration.
Siga los pasos restantes de las instrucciones de Crear un conector.