翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
チュートリアル: 設定プロバイダーを使用した機密情報の外部化
この例では、オープンソース設定プロバイダーを使用して Amazon MSK Connect の機密情報を外部化する方法を示しています。設定プロバイダーを使用すると、コネクタまたはワーカー設定でプレーンテキストの代わりに変数を指定でき、コネクタで実行されているワーカーは実行時にこれらの変数を解決します。これにより、認証情報やその他のシークレットがプレーンテキストで保存されるのを防ぐことができます。この例の設定プロバイダーは、 AWS Secrets Manager、Amazon S3、Systems Manager () からの設定パラメータの取得をサポートしていますSSM。ステップ 2 では、設定するサービスの機密情報の保存と取得をセットアップする方法を確認できます。
考慮事項
Amazon MSK Connect MSK で 設定プロバイダーを使用する際は、次の点を考慮してください。
設定プロバイダーを使用するときに、適切なアクセス許可をIAMサービス実行ロールに割り当てます。
ワーカー設定で設定プロバイダーを定義し、コネクタ設定でその実装を定義します。
-
プラグインで機密設定値をシークレットとして定義していない場合、機密設定値がコネクタログに表示される可能性があります。Kafka Connect は、未定義の設定値を他のプレーンテキスト値と同じように扱います。詳細については、「シークレットがコネクタログに表示されないようにする」を参照してください。
-
デフォルトでは、コネクタが設定プロバイダーを使用する場合、MSKConnect はコネクタを頻繁に再起動します。この再起動動作を無効にするには、コネクタ設定で
config.action.reload
の値をnone
に設定します。
カスタムプラグインを作成して S3 にアップロードする
カスタムプラグインを作成するには、ローカルマシンで次のコマンド msk-config-providerを実行して、コネクタと を含む zip ファイルを作成します。
ターミナルウィンドウと Debezium をコネクタとして使用してカスタムプラグインを作成するには
AWS CLI を使用して、 AWS S3 バケットへのアクセスを許可する認証情報を持つスーパーユーザーとしてコマンドを実行します。のインストールとセットアップの詳細については AWS CLI、 AWS Command Line Interface ユーザーガイドの「 の開始方法 AWS CLI」を参照してください。Amazon S3 で を使用する AWS CLI方法については、 AWS Command Line Interface ユーザーガイドの「 で Amazon S3 を使用する AWS CLI」を参照してください。
-
ターミナルウィンドウで、以下のコマンドを使用して
custom-plugin
という名前のフォルダをワークスペースに作成します。mkdir custom-plugin && cd custom-plugin
-
次のコマンドを使用して、Debezium サイト
から MySQL Connector プラグインの最新安定リリースをダウンロードします。 wget https://repo1.maven.org/maven2/io/debezium/debezium-connectormysql/ 2.2.0.Final/debezium-connector-mysql-2.2.0.Final-plugin.tar.gz
次のコマンドを使用して、ダウンロードした gzip ファイルを
custom-plugin
フォルダに解凍します。tar xzf debezium-connector-mysql-2.2.0.Final-plugin.tar.gz
-
次のコマンドを使用してMSK、設定プロバイダーの zip ファイル
をダウンロードします。 wget https://github.com/aws-samples/msk-config-providers/releases/download/r0.1.0/msk-config-providers-0.1.0-with-dependencies.zip
次のコマンドを使用して、ダウンロードした zip ファイルを
custom-plugin
フォルダに解凍します。unzip msk-config-providers-0.1.0-with-dependencies.zip
-
上記のステップとカスタムコネクタからMSK設定プロバイダーの内容を という名前の 1 つのファイルに圧縮します
custom-plugin.zip
。zip -r ../custom-plugin.zip *
-
このファイルを後で参照できるように S3 にアップロードします。
aws s3 cp ../custom-plugin.zip s3:<
S3_URI_BUCKET_LOCATION
> Amazon MSKコンソールの MSK Connect セクションで、Custom Plugin を選択し、Create custom plugin を選択し、s3:<
S3_URI_BUCKET_LOCATION
> アップロードしたカスタムプラグインZIPファイルを選択する S3 バケット。プラグイン名には
debezium-custom-plugin
と入力します。オプションで説明を入力し、[カスタムプラグインの作成] を選択します。
さまざまなプロバイダーのパラメータとアクセス許可を設定する
次の 3 つのサービスでパラメータ値を設定できます。
Secrets Manager
Systems Manager Parameter Store
S3 - Simple Storage Service
以下のタブのいずれかを選択すると、そのサービスのパラメータと関連するアクセス許可の設定方法が表示されます。
設定プロバイダーに関する情報を使用してカスタムワーカー設定を作成します。
-
Amazon MSK Connect セクションでワーカー設定を選択します。
[ワーカー設定の作成] を選択します。
[ワーカー設定名] テキストボックスに
SourceDebeziumCustomConfig
を入力します。説明はオプションです。必要なプロバイダーに基づいて関連する設定コードをコピーし、[ワーカー設定] テキストボックスに貼り付けます。
3 つのプロバイダーすべてのワーカー設定の例を以下に示します。
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
[ワーカー設定の作成] をクリックします。
コネクタを作成する
「Create a new connector」の手順に従って新しいコネクタを作成します。
カスタムプラグインを作成して S3 にアップロードする で S3 バケットにアップロードした
custom-plugin.zip
ファイルをカスタムプラグインのソースとして選択します。必要なプロバイダーに基づいて関連する設定コードをコピーし、[コネクタの設定] フィールドに貼り付けます。
3 つのプロバイダーすべてのコネクタ設定の例を以下に示します。
#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}「カスタム設定を使用する」を選択し、「ワーカー設定」ドロップダウンSourceDebeziumCustomConfigから選択します。
「Create connector」の残りの手順に従います。