As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Tutorial: Externalizando informações confidenciais usando provedores de configuração
Este exemplo mostra como externalizar informações confidenciais para o Amazon MSK Connect usando um provedor de configuração de código aberto. Um provedor de configuração permite que você especifique variáveis, em vez de texto simples, em uma configuração de conector ou de operador, e os operadores em execução em seu conector resolvem essas variáveis em runtime. Isso evita que credenciais e outros segredos sejam armazenados em texto simples. O provedor de configuração no exemplo suporta a recuperação de parâmetros de configuração do AWS Secrets Manager, Amazon S3 e Systems Manager SSM (). Na Etapa 2, você verá como configurar o armazenamento e a recuperação de informações confidenciais para o serviço que deseja configurar.
Considerações
Considere o seguinte ao usar o provedor de MSK configuração com o Amazon MSK Connect:
Atribua as permissões apropriadas ao usar os provedores de configuração para a função IAM de execução de serviços.
Defina os provedores de configuração nas configurações de trabalho e sua implementação na configuração do conector.
-
Valores confidenciais de configuração podem aparecer nos registros do conector se um plug-in não definir esses valores como secretos. O Kafka Connect trata valores de configuração indefinidos da mesma forma que qualquer outro valor de texto simples. Para saber mais, consulte Como evitar que segredos apareçam nos logs do conector.
-
Por padrão, o MSK Connect frequentemente reinicia um conector quando o conector usa um provedor de configuração. Para desativar esse comportamento de reinicialização, você pode definir o valor
config.action.reload
comonone
na configuração do conector.
Crie um plug-in personalizado e faça o upload para o S3
Para criar um plug-in personalizado, crie um arquivo zip que contenha o conector e o msk-config-provider executando os seguintes comandos em sua máquina local.
Para criar um plug-in personalizado usando uma janela de terminal e o Debezium como conector
Use os comandos AWS CLI to run como superusuário com credenciais que permitem acessar seu bucket do AWS S3. Para obter informações sobre como instalar e configurar o AWS CLI, consulte Introdução ao AWS CLI no Guia do AWS Command Line Interface Usuário. Para obter informações sobre como usar o AWS CLI com o Amazon S3, consulte Usando o Amazon S3 com AWS CLI o no AWS Command Line Interface Guia do usuário.
-
Em uma janela de terminal, crie uma pasta nomeada
custom-plugin
no seu espaço de trabalho usando o comando a seguir.mkdir custom-plugin && cd custom-plugin
-
Baixe a versão estável mais recente do My SQL Connector Plug-in no site do Debezium
usando o comando a seguir. wget https://repo1.maven.org/maven2/io/debezium/debezium-connectormysql/ 2.2.0.Final/debezium-connector-mysql-2.2.0.Final-plugin.tar.gz
Extraia o arquivo gzip baixado na pasta
custom-plugin
usando o comando a seguir.tar xzf debezium-connector-mysql-2.2.0.Final-plugin.tar.gz
-
Faça o download do arquivo zip do provedor de MSK configuração
usando o comando a seguir. wget https://github.com/aws-samples/msk-config-providers/releases/download/r0.1.0/msk-config-providers-0.1.0-with-dependencies.zip
Extraia o arquivo zip baixado na
custom-plugin
pasta usando o comando a seguir.unzip msk-config-providers-0.1.0-with-dependencies.zip
-
Compacte o conteúdo do provedor de MSK configuração da etapa acima e do conector personalizado em um único arquivo chamado
custom-plugin.zip
.zip -r ../custom-plugin.zip *
-
Faça upload do arquivo para o S3 para referência posterior.
aws s3 cp ../custom-plugin.zip s3:<
S3_URI_BUCKET_LOCATION
> No MSK console da Amazon, na seção MSKConnect, escolha Custom Plugin, depois escolha Create custom plugin e navegue pelo s3: <
S3_URI_BUCKET_LOCATION
> Bucket S3 para selecionar o ZIP arquivo de plug-in personalizado que você acabou de enviar.Insira
debezium-custom-plugin
para o nome do plug-in. Opcionalmente, insira uma descrição e escolha Criar um plug-in personalizado.
Configure parâmetros e permissões para diferentes provedores
Você pode configurar valores de parâmetros nestes três serviços:
Secrets Manager
Systems Manager Parameter Store
S3: Simple Storage Service
Selecione uma das guias abaixo para obter instruções sobre como configurar parâmetros e permissões relevantes para esse serviço.
Criar uma configuração personalizada de operador com informações sobre seu provedor de configuração
-
Selecione as configurações do Worker na seção Amazon MSK Connect.
Selecione Criar configuração de operador.
Digite
SourceDebeziumCustomConfig
na caixa de texto Nome da configuração do operador. A descrição é opcional.Copie o código de configuração relevante com base nos provedores desejados e cole-o na caixa de texto de Configuração do operador.
Este é um exemplo da configuração de operador para todos os três provedores:
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
Clique em Criar configuração de operador.
Crie o conector
Crie um novo conector usando as instruções em Criar um novo conector.
Escolha o arquivo
custom-plugin.zip
que você enviou para o bucket do S3 em Crie um plug-in personalizado e faça o upload para o S3 como origem do plug-in personalizado.Copie o código de configuração relevante com base nos provedores desejados e cole-o no campo Configuração do conector.
Este é um exemplo da configuração do conector para todos os três provedores:
#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}Selecione Usar uma configuração personalizada e escolha SourceDebeziumCustomConfigno menu suspenso Configuração do trabalhador.
Siga as etapas restantes das instruções em Criar conector.