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.
Externalisation d'informations sensibles à l'aide des 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.
Rubriques
Étape 1 : Créer un plugin personnalisé et le charger 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 la 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 de la AWS CLI, consultez 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 de l' AWS interface de ligne de commande avec Amazon S3, consultez la section Utilisation d'Amazon S3 avec l' AWS interface de ligne de commande 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 du connecteur MySQL depuis le site 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 configuration MSK
à 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 configuration MSK à partir 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 console Amazon MSK, dans la section MSK Connect, choisissez Plugin personnalisé, puis choisissez Créer un plugin personnalisé et parcourez le compartiment S3 s3:<
S3_URI_BUCKET_LOCATION
> pour sélectionner le fichier ZIP du 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é.
Étape 2 : Configurer les paramètres et les 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.
Étape 3 : Créer une configuration de worker personnalisée avec des informations sur votre fournisseur de configuration
-
Sélectionnez Configurations de worker 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.
Étape 4 : Créer un 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 Étape 1 : Créer un plugin personnalisé et le charger 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.
Considérations
Tenez compte des points suivants lorsque vous utilisez le fournisseur de configuration MSK avec Amazon MSK Connect :
Attribuez les autorisations appropriées lors de l'utilisation des fournisseurs de configuration au rôle d'exécution du service IAM.
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, veuillez consulter la section 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.