Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Tutoriel : Externalisation d'informations sensibles à l'aide de fournisseurs de configuration
Cet exemple montre comment externaliser des informations sensibles pour Amazon MSK Connect à l'aide d'un fournisseur de configuration open source. Un fournisseur de configuration vous permet de spécifier des variables plutôt que du texte brut dans une configuration de connecteur ou de worker, et les workers exécutés dans votre connecteur résolvent ces variables au moment de l'exécution. Cela empêche le stockage d'informations d'identification et d'autres secrets en texte brut. Dans cet exemple, le fournisseur de configuration prend en charge la récupération des paramètres de configuration depuis AWS Secrets Manager, Amazon S3 et Systems Manager (SSM). À l'étape 2, vous pouvez voir comment configurer le stockage et la récupération d'informations sensibles pour le service que vous souhaitez configurer.
Considérations
Tenez compte des points suivants lorsque vous utilisez le fournisseur de MSK configuration avec Amazon MSK Connect :
Attribuez les autorisations appropriées lors de l'utilisation des fournisseurs de configuration au rôle d'exécution du IAM service.
Définissez les fournisseurs de configuration dans les configurations du worker et leur implémentation dans la configuration du connecteur.
-
Des valeurs de configuration sensibles peuvent apparaître dans les journaux des connecteurs si un plugin ne définit pas ces valeurs comme secrètes. Kafka Connect traite les valeurs de configuration non définies de la même manière que toute autre valeur en texte brut. Pour en savoir plus, consultez Empêcher l'apparition de secrets dans les journaux des connecteurs.
-
Par défaut, MSK Connect redémarre fréquemment un connecteur lorsque celui-ci utilise un fournisseur de configuration. Pour désactiver ce comportement de redémarrage, vous pouvez définir la valeur
config.action.reload
surnone
dans la configuration de votre connecteur.
Créez un plugin personnalisé et téléchargez-le sur S3
Pour créer un plugin personnalisé, créez un fichier zip contenant le connecteur msk-config-provider en exécutant les commandes suivantes sur votre machine locale.
Pour créer un plugin personnalisé en utilisant une fenêtre de terminal et Debezium comme connecteur
Utilisez les commandes AWS CLI pour exécuter des commandes en tant que superutilisateur avec des informations d'identification vous permettant d'accéder à votre compartiment AWS S3. Pour plus d'informations sur l'installation et la configuration du AWS CLI, reportez-vous à la section Getting started with the AWS CLI dans le guide de AWS Command Line Interface l'utilisateur. Pour plus d'informations sur l'utilisation AWS CLI d'Amazon S3, consultez la section Utilisation d'Amazon S3 avec Amazon S3 AWS CLI dans le guide de AWS Command Line Interface l'utilisateur.
-
Dans une fenêtre de terminal, créez un dossier nommé
custom-plugin
dans votre espace de travail à l'aide de la commande suivante.mkdir custom-plugin && cd custom-plugin
-
Téléchargez la dernière version stable du plug-in My SQL Connector depuis le site de Debezium
à l'aide de la commande suivante. wget https://repo1.maven.org/maven2/io/debezium/debezium-connectormysql/ 2.2.0.Final/debezium-connector-mysql-2.2.0.Final-plugin.tar.gz
Extrayez le fichier gzip téléchargé dans le dossier
custom-plugin
à l'aide de la commande suivante.tar xzf debezium-connector-mysql-2.2.0.Final-plugin.tar.gz
-
Téléchargez le fichier zip du fournisseur de MSK configuration
à l'aide de la commande suivante. wget https://github.com/aws-samples/msk-config-providers/releases/download/r0.1.0/msk-config-providers-0.1.0-with-dependencies.zip
Extrayez le fichier zip téléchargé dans le dossier
custom-plugin
à l'aide de la commande suivante.unzip msk-config-providers-0.1.0-with-dependencies.zip
-
Compressez le contenu du fournisseur de MSK configuration de l'étape ci-dessus et du connecteur personnalisé dans un seul fichier nommé
custom-plugin.zip
.zip -r ../custom-plugin.zip *
-
Chargez le fichier sur S3 pour référence ultérieure.
aws s3 cp ../custom-plugin.zip s3:<
S3_URI_BUCKET_LOCATION
> Sur la MSK console Amazon, dans la section MSKConnect, choisissez Custom Plugin, puis Create custom plugin et parcourez le s3 : <
S3_URI_BUCKET_LOCATION
> Compartiment S3 pour sélectionner le ZIP fichier de plugin personnalisé que vous venez de télécharger.Entrez
debezium-custom-plugin
comme nom du plugin. Si vous le souhaitez, saisissez une description et choisissez Créer un plugin personnalisé.
Configuration des paramètres et des autorisations pour différents fournisseurs
Vous pouvez configurer les valeurs des paramètres dans les trois services suivants :
Secrets Manager
Systems Manager Parameter Store
S3 - Simple Storage Service
Sélectionnez l'un des onglets ci-dessous pour obtenir des instructions sur la configuration des paramètres et des autorisations pertinentes pour ce service.
Créez une configuration de worker personnalisée avec des informations sur votre fournisseur de configuration
-
Sélectionnez Configurations de travail dans la section Amazon MSK Connect.
Sélectionnez Créer une configuration de worker.
Entrez
SourceDebeziumCustomConfig
dans la zone de texte Nom de la configuration du worker. La description est facultative.Copiez le code de configuration approprié en fonction des fournisseurs souhaités, puis collez-le dans la zone de texte Configuration du worker.
Voici un exemple de configuration de worker pour les trois fournisseurs :
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
Cliquez sur Créer une configuration de worker.
Création du connecteur
Créez un nouveau connecteur en suivant les instructions de la section Créer un nouveau connecteur.
Choisissez le fichier
custom-plugin.zip
que vous avez chargé dans votre compartiment S3 dans la section Créez un plugin personnalisé et téléchargez-le sur S3 comme source du plugin personnalisé.Copiez le code de configuration approprié en fonction des fournisseurs souhaités, puis collez-le dans le champ Configuration du connecteur.
Voici un exemple de configuration de connecteur pour les trois fournisseurs :
#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}Sélectionnez Utiliser une configuration personnalisée et choisissez dans le SourceDebeziumCustomConfigmenu déroulant Configuration du travailleur.
Suivez les étapes restantes indiquées dans les instructions de la section Créer un connecteur.