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.
Dieses Beispiel zeigt, wie vertrauliche Informationen für Amazon MSK Connect mithilfe eines Open-Source-Konfigurationsanbieters externalisiert werden. 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 von 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 bei der Verwendung des MSK-Konfigurationsanbieters mit Amazon MSK Connect Folgendes:
Weisen Sie der IAM-Service-Ausführungsrolle die entsprechenden Berechtigungen zu, wenn Sie die Konfigurationsanbieter 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 Konnektor häufig neu, wenn der Konnektor 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 der AWS CLI finden Sie unter Erste Schritte mit der AWS CLI im AWS Command Line Interface Benutzerhandbuch. Informationen zur Verwendung der AWS CLI mit Amazon S3 finden Sie unter Verwenden von Amazon S3 mit der 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 die neueste stabile Version des MySQL-Konnektor-Plugins mit dem folgenden Befehl 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-Konfigurationsanbieters
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 in der Amazon MSK-Konsole im Bereich MSK Connect die Option Benutzerdefiniertes Plugin und dann Benutzerdefiniertes Plugin erstellen aus. Durchsuchen Sie den s3: <
S3_URI_BUCKET_LOCATION
> S3-Bucket, um die benutzerdefinierte Plugin-ZIP-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.
So konfigurieren Sie Parameterwerte in Secrets Manager
Öffnen Sie die Secrets Manager-Konsole
. Erstellen Sie ein neues Secret, um Ihre Anmeldeinformationen oder Secrets zu speichern. Anweisungen finden Sie im AWS Secrets Manager Benutzerhandbuch unter Create an AWS Secrets Manager Secret.
Kopieren Sie den ARN Ihres Secrets.
Fügen Sie die Secrets-Manager-Berechtigungen aus der folgenden Beispielrichtlinie zu der Service-Ausführungsrolle hinzu. Ersetze es
<arn:aws:secretsmanager:us-east-1:123456789000:secret:MySecret-1234>
durch den ARN deines Geheimnisses.Fügen Sie Worker-Konfiguration und Konnektor-Anweisungen hinzu.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetResourcePolicy", "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret", "secretsmanager:ListSecretVersionIds" ], "Resource": [ "
<arn:aws:secretsmanager:us-east-1:123456789000:secret:MySecret-1234>
" ] } ] }Um den Secrets-Manager-Konfigurationsanbieter zu verwenden, kopieren Sie die folgenden Code-Zeilen in das Worker-Konfigurations-Textfeld in Schritt 3:
# define name of config provider: config.providers = secretsmanager # provide implementation classes for secrets manager: config.providers.secretsmanager.class = com.amazonaws.kafka.config.providers.SecretsManagerConfigProvider # 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
Kopieren Sie für den Secrets-Manager-Konfigurationsanbieter die folgenden Code-Zeilen in die Konnektor-Konfiguration in Schritt 4.
#Example implementation for secrets manager variable database.user=${secretsmanager:MSKAuroraDBCredentials:username} database.password=${secretsmanager:MSKAuroraDBCredentials:password}
Sie können den obigen Schritt auch mit weiteren Konfigurationsanbietern verwenden.
Eine benutzerdefinierte Worker-Konfiguration mit Informationen zu Ihrem Konfigurationsanbieter erstellen
-
Wählen Sie im Abschnitt Amazon MSK Connect die Option Worker-Konfigurationen.
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 Konnektor
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.user=${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.