Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Tutorial: Externalisierung vertraulicher Informationen mithilfe von Konfigurationsanbietern
Dieses Beispiel zeigt, wie vertrauliche Informationen für Amazon MSK Connect mithilfe eines Open-Source-Konfigurationsanbieters externalisiert werden können. Mit einem Konfigurationsanbieter können Sie Variablen anstelle von Klartext in einer Konnektor- oder Worker-Konfiguration angeben, und Worker, die im Konnektor ausgeführt werden, lösen diese Variablen zur Laufzeit auf. Dadurch wird verhindert, dass Anmeldeinformationen und andere Secrets im Klartext gespeichert werden. Der Konfigurationsanbieter im Beispiel unterstützt das Abrufen von Konfigurationsparametern aus AWS Secrets Manager, Amazon S3 und Systems Manager (SSM). In Schritt 2 erfahren Sie, wie Sie das Speichern und Abrufen vertraulicher Informationen für den Service einrichten, den Sie konfigurieren möchten.
Überlegungen
Beachten Sie Folgendes, wenn Sie den MSK Config Provider mit Amazon MSK Connect verwenden:
Weisen Sie der IAM Service Execution Role die entsprechenden Berechtigungen zu, wenn Sie die Config-Anbieter verwenden.
Definieren Sie die Konfigurationsanbieter in Worker-Konfigurationen und ihre Implementierung in der Konnektor-Konfiguration.
-
Vertrauliche Konfigurationswerte können in Konnektor-Protokollen erscheinen, wenn ein Plugin diese Werte nicht als Secret definiert. Kafka Connect behandelt undefinierte Konfigurationswerte genauso wie jeden anderen Klartext-Wert. Weitere Informationen hierzu finden Sie unter Verhindern, dass Secrets in Konnektor-Protokollen erscheinen.
-
Standardmäßig startet MSK Connect einen Connector häufig neu, wenn der Connector einen Konfigurationsanbieter verwendet. Um dieses Neustartverhalten zu deaktivieren, können Sie in der Konnektor-Konfiguration den Wert
config.action.reload
aufnone
festlegen.
Erstellen Sie ein benutzerdefiniertes Plugin und laden Sie es auf S3 hoch
Um ein benutzerdefiniertes Plugin zu erstellen, erstellen Sie eine Zip-Datei, die den Connector und das enthält, msk-config-provider indem Sie die folgenden Befehle auf Ihrem lokalen Computer ausführen.
So erstellen Sie ein benutzerdefiniertes Plugin mit einem Terminalfenster und Debezium als Konnektor
Verwenden Sie die AWS CLI, um Befehle als Superuser mit Anmeldeinformationen auszuführen, mit denen Sie auf Ihren AWS S3-Bucket zugreifen können. Informationen zur Installation und Einrichtung von finden Sie unter Erste Schritte mit dem AWS CLI im AWS Command Line Interface Benutzerhandbuch. AWS CLI Informationen zur Verwendung von AWS CLI mit Amazon S3 finden Sie unter Verwenden von Amazon S3 mit dem AWS CLI im AWS Command Line Interface Benutzerhandbuch.
-
Erstellen Sie in einem Terminal-Fenster mit dem folgenden Befehl einen Ordner mit dem Namen
custom-plugin
in Ihrem Workspace.mkdir custom-plugin && cd custom-plugin
-
Laden Sie mit dem folgenden Befehl die neueste stabile Version des My SQL Connector-Plug-ins von der Debezium-Website
herunter. wget https://repo1.maven.org/maven2/io/debezium/debezium-connectormysql/ 2.2.0.Final/debezium-connector-mysql-2.2.0.Final-plugin.tar.gz
Extrahieren Sie die heruntergeladene GZIP-Datei mit dem folgenden Befehl in den Ordner
custom-plugin
.tar xzf debezium-connector-mysql-2.2.0.Final-plugin.tar.gz
-
Laden Sie die ZIP-Datei des MSK Config-Providers
mit dem folgenden Befehl herunter. wget https://github.com/aws-samples/msk-config-providers/releases/download/r0.1.0/msk-config-providers-0.1.0-with-dependencies.zip
Extrahieren Sie die heruntergeladene GZIP-Datei mit dem folgenden Befehl in den Ordner
custom-plugin
.unzip msk-config-providers-0.1.0-with-dependencies.zip
-
Komprimieren Sie den Inhalt des MSK Konfigurationsanbieters aus dem obigen Schritt und den benutzerdefinierten Konnektor in einer einzigen Datei mit dem Namen
custom-plugin.zip
.zip -r ../custom-plugin.zip *
-
Laden Sie die Datei auf S3 hoch, damit sie später referenziert werden kann.
aws s3 cp ../custom-plugin.zip s3:<
S3_URI_BUCKET_LOCATION
> Wählen Sie auf der MSK Amazon-Konsole im Bereich MSKConnect die Option Benutzerdefiniertes Plugin aus, wählen Sie dann Benutzerdefiniertes Plugin erstellen und durchsuchen Sie das s3: <
S3_URI_BUCKET_LOCATION
Wählen Sie auf der Amazon-Konsole im ZIP Bereich Connect die Option Benutzerdefiniertes Plugin aus, wählen Sie dann Benutzerdefiniertes Plugin erstellen und durchsuchen Sie den s3: S3-Bucket, um die benutzerdefinierte Plugin-Datei auszuwählen, die Sie gerade hochgeladen haben.Geben Sie für den Namen des Plugins
debezium-custom-plugin
ein. Geben Sie optional eine Beschreibung ein und wählen Sie Benutzerdefiniertes Plugin erstellen.
Konfigurieren Sie Parameter und Berechtigungen für verschiedene Anbieter
Sie können Parameterwerte in diesen drei Services konfigurieren:
Secrets Manager
Systems Manager Parameter Store
S3 - Simple Storage Service
Wählen Sie eine der folgenden Registerkarten aus, um Anweisungen zur Einrichtung von Parametern und relevanten Berechtigungen für diesen Service zu erhalten.
Eine benutzerdefinierte Worker-Konfiguration mit Informationen zu Ihrem Konfigurationsanbieter erstellen
-
Wählen Sie im Bereich Amazon MSK Connect die Option Worker-Konfigurationen aus.
Wählen Sie Worker-Konfiguration erstellen.
Geben Sie
SourceDebeziumCustomConfig
in das Textfeld für den Namen der Worker-Konfiguration ein. Die Beschreibung ist optional.Kopieren Sie den entsprechenden Konfigurations-Code basierend auf den gewünschten Anbietern und fügen Sie ihn in das Textfeld Worker-Konfiguration ein.
Dies ist ein Beispiel der Worker-Konfiguration für alle drei Anbieter:
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
Wählen Sie Worker-Konfiguration erstellen.
Erstellen Sie den Connector
Erstellen Sie einen neuen Konnektor anhand der Anweisungen unter Neuen Konnektor erstellen.
Wählen Sie die
custom-plugin.zip
-Datei, die Sie in Erstellen Sie ein benutzerdefiniertes Plugin und laden Sie es auf S3 hoch als Quelle für das benutzerdefinierte Plugin in Ihren S3-Bucket hochgeladen haben.Kopieren Sie den entsprechenden Konfigurations-Code basierend auf den gewünschten Anbietern und fügen Sie ihn in das Feld Konnektor-Konfiguration ein.
Dies ist ein Beispiel für die Konnektor-Konfiguration für alle drei Anbieter:
#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}Wählen Sie Benutzerdefinierte Konfiguration verwenden und wählen Sie eine Option SourceDebeziumCustomConfigaus der Dropdownliste Worker-Konfiguration aus.
Folgen Sie den weiteren Schritten aus den Anweisungen unter Konnektor erstellen.