翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
セルフマネージド Apache Kafka クラスターで MSK レプリケーターの前提条件を設定する
IAM 実行ロールを作成する
の信頼ポリシーを使用して IAM ロールを作成しますkafka.amazonaws.com。AWSMSKReplicatorExecutionRole 管理ポリシーをアタッチします。マネージドポリシーは、レプリケーターが必要とするクラスターレベル、トピックconsumer-group-level Kafka アクセス許可を付与しますが、SASL/SCRAM 認証と CMK で暗号化された認証情報に必要な AWS Secrets Manager または アクセス AWS KMS 許可は含まれません。追加するインラインポリシースニペットについては、「」を参照してくださいSASL/SCRAM、mTLS、SASL/OAUTHBEARER、カスタマーマネージドキーに対する追加の SER アクセス許可。
信頼ポリシーの例:
{ "Statement": [{ "Effect": "Allow", "Principal": {"Service": "kafka.amazonaws.com"}, "Action": "sts:AssumeRole" }] }
SASL/SCRAM ユーザーと ACL アクセス許可を設定する
セルフマネージド Kafka クラスターに専用の SCRAM ユーザーを作成します。次の ACL アクセス許可が必要です。
すべてのトピックを読み、記述する
すべてのコンシューマーグループで読み、記述する
クラスターリソースで記述する
kafka-acls.sh コマンドの例:
# Grant Read and Describe on all topics kafka-acls.sh --bootstrap-server <broker>:9092 \ --add --allow-principal User:msk-replicator \ --operation Read --operation Describe \ --topic '*' # Grant Read and Describe on all consumer groups kafka-acls.sh --bootstrap-server <broker>:9092 \ --add --allow-principal User:msk-replicator \ --operation Read --operation Describe \ --group '*' # Grant Describe on cluster kafka-acls.sh --bootstrap-server <broker>:9092 \ --add --allow-principal User:msk-replicator \ --operation Describe --cluster
セルフマネージドクラスターで mTLS を設定する
でセルフマネージド Kafka ブローカーに SSL リスナーを設定しますssl.client.auth=required。ブローカーのトラストストアには、MSK レプリケーターに使用するクライアント証明書に署名した CA 証明書が含まれている必要があります。
クライアント証明書の識別名 (DN) から派生した Kafka プリンシパルに ACL アクセス許可を付与します。必要なアクセス許可は、すべてのトピックで読み取りと記述、すべてのコンシューマーグループで読み取りと記述、クラスターリソースで記述です。
セルフマネージドクラスターで SASL/OAUTHBEARER (OAuth) を設定する
SASL/OAUTHBEARER を使用すると、MSK レプリケーターは ID プロバイダー (IDP) からアクセストークンを取得し、SASL/OAUTHBEARER ハンドシェイク (RFC 7628) 中にセルフマネージド Kafka クラスターに提示します。で OAUTHBEARERが有効になっているSASL_SSLリスナーを使用してブローカーを設定しsasl.enabled.mechanisms、IDP によって発行されたトークンのブローカー側の検証を設定します。
IDP がアクセストークンをソースクラスターで MSK レプリケーターが必要とする ACL アクセス許可にマッピングする Kafka プリンシパルを付与します。
MSK レプリケーターは、アクセストークンを取得するための以下のメカニズムをサポートしています。レプリケーターを作成するときに選択します (「」を参照セルフマネージド Kafka クラスターの CreateReplicator API の例)。
クライアント認証情報 — 標準
client_credentials権限 (RFC 6749 §4.4)。でclient_idと を指定しますclient_secretAWS Secrets Manager。このメカニズムは、Okta、Microsoft Entra ID、Keycloak、PingFederate、Google などの IDPs で使用します。IAM JWT ベアラー — JWT ベアラーアサーショングラント (RFC 7523)。MSK レプリケーターは、サービス実行ロールの AWS ID を使用して、トークンエンドポイントにアサーションとして送信される署名付き JWT を取得します。IDP でクライアントも認証する必要がある場合は、共有シークレットは必要ありませんが、オプションでクライアント認証情報を指定できます。
クライアント認証情報アサーション — JWT クライアントアサーションを持つ
client_credentialsグラント (RFC 7521/7523 §2.2)。サービス実行ロールの署名付き JWT は、共有シークレットなしでクライアントを認証client_assertionする として使用されます。
トークンエンドポイントには、次の要件が適用されます。
は HTTPS スキームを使用してホスト名を指定
tokenEndpointUrlする必要があります (TLS ホスト名の検証を実行できるように、IP アドレスリテラルは使用できません)。トークンエンドポイントは、レプリケーターに提供する VPC サブネットから到達可能である必要があります。「ネットワーク接続の設定」を参照してください。
IDP がプライベート CA によって発行された証明書を提示する場合は、CA 証明書を に保存 AWS Secrets Manager し、レプリケーターの作成
tokenEndpointTlsCertificateArn時に で参照します。
セルフマネージドクラスターで SSL を設定する
ブローカーで SSL リスナーを設定します。パブリックに信頼された証明書の場合、追加の設定は必要ありません。プライベート証明書または自己署名証明書の場合は、 AWS Secrets Manager に保存されているシークレットに CA 証明書チェーン全体を含めます。
AWS Secrets Manager に認証情報を保存する
認証タイプに適したキーと値のペアを使用して、Secrets Manager で Other (RDS/Redshift ではない) タイプの AWS シークレットを作成します。
SASL/SCRAM の場合:
username— セルフマネージドクラスターの SCRAM ユーザー名password— セルフマネージドクラスターの SCRAM パスワードcertificate— CA 証明書チェーン (PEM 形式。プライベート/自己署名証明書に必要)
mTLS の場合:
certificate— PEM エンコードされたクライアント証明書チェーンprivateKey— PEM エンコードされたプライベートキーprivateKeyPassword— (オプション) 暗号化された PKCS8 キーにのみ必要なプライベートキーのパスフレーズ
SASL/OAUTHBEARER の場合:
クライアント認証情報メカニズムにはシークレットが必要であり、IAM JWT ベアラーとクライアント認証情報アサーションメカニズムにはオプションです (IDP でクライアントも認証する必要がある場合にのみシークレットを提供します)。シークレットは、キーと値のペアのフラットな JSON オブジェクトです。MSK レプリケーターは次のキーを認識します。
client_id— OAuth クライアント識別子。クライアント認証情報メカニズムに必要です。client_secret— OAuth クライアントシークレット。クライアント認証情報メカニズムに必要です。custom_param.<name>— (オプション) 標準 OAuth セットを超えるパラメータを必要とする IDPs に対して、トークンリクエストに追加される追加のフォームパラメータ。パラメータごとに 1 つのキーを追加します (例:custom_param.resource)。custom_header.<name>— (オプション) トークンリクエストとともに送信される追加の HTTP ヘッダー。ヘッダーごとに 1 つのキーを追加します (例:custom_header.X-Custom)。extension.<name>— (オプション) 認証中に追加のキーと値のペアを必要とする Kafka プロバイダーのために、SASL/OAUTHBEARER ハンドシェイク中に Kafka ブローカーに送信される SASL 拡張機能。拡張機能ごとに 1 つのキーを追加します。
これらのプレフィックスの 1 つclient_secretを使用しない client_idおよび 以外のキーは無視されます。クライアント認証情報メカニズムのシークレット値の例を次に示します。
{ "client_id": "my-oauth-client", "client_secret": "example-client-secret", "custom_param.resource": "urn:example:kafka" }
注記
MSK レプリケーターは、パラメータ名が標準の OAuth パラメータ (grant_type、、、client_idclient_secret、assertion、 など) client_assertion client_assertion_typeと競合するcustom_param.エントリを拒否しますscope。また、Host、、 などの制限されたcustom_header.エントリも拒否AuthorizationしますContent-Type。
ネットワーク接続の設定
MSK レプリケーターには、セルフマネージド Kafka クラスターへのネットワーク接続が必要です。サポートされているオプション:
AWS Site-to-Site VPN — インターネット経由でオンプレミスネットワークを VPC に接続します。
AWS Direct Connect — オンプレミスから への専用プライベートネットワーク接続を確立します AWS。
SASL/OAUTHBEARER を使用する場合は、レプリケーターに指定した VPC サブネットからトークンエンドポイントに到達できる必要があります。インターネットホスト IDP の場合、これには通常、インターネットゲートウェイ、NAT ゲートウェイ、ルートテーブルエントリが必要です。オンプレミス IDP またはプライベート IDP の場合は、 AWS Site-to-Site VPN または AWS Direct Connect を使用します。トークンエンドポイントは、ループバック、リンクローカル、または AWS メタデータアドレスに解決してはいけません。
セキュリティグループの設定
セキュリティグループが、認証リスナーが使用するポートで MSK レプリケーターとセルフマネージドクラスター間のトラフィックを許可していることを確認します。VPC セキュリティグループのインバウンドルールと、セルフマネージド型クラスターファイアウォールのアウトバウンドルールの両方を更新します。