本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用自我管理的 Apache Kafka 叢集設定 MSK Replicator 的先決條件
建立 IAM 執行角色
使用 的信任政策建立 IAM 角色kafka.amazonaws.com。連接 AWSMSKReplicatorExecutionRole受管政策。受管政策會授予複寫器所需的叢集、主題和consumer-group-level Kafka 許可,但不包含 SASL/SCRAM 身分驗證和 CMK 加密憑證所需的 AWS Secrets Manager 或 AWS KMS 許可。如需要新增的內嵌政策程式碼片段,請參閱 SASL/SCRAM、mTLS 和客戶受管金鑰的其他 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 Replicator 之用戶端憑證的 CA 憑證。
將 ACL 許可授予衍生自用戶端憑證辨別名稱 (DN) 的 Kafka 主體。必要的許可包括:所有主題的讀取和描述、所有取用者群組的讀取和描述,以及叢集資源的描述。
在自我管理叢集上設定 SSL
在代理程式上設定 SSL 接聽程式。對於公開信任的憑證,不需要額外的組態。對於私有或自我簽署憑證,請在存放在 AWS Secrets Manager 的秘密中包含完整的 CA 憑證鏈。
在 AWS Secrets Manager 中存放登入資料
在 AWS Secrets Manager 中建立類型為其他 (非 RDS/Redshift) 的秘密,並為您的身分驗證類型使用適當的鍵值對。
對於 SASL/SCRAM:
username— 自我管理叢集的 SCRAM 使用者名稱password— 自我管理叢集的 SCRAM 密碼certificate— CA 憑證鏈 (PEM 格式;私有/自我簽署憑證需要)
對於 mTLS:
certificate— PEM 編碼的用戶端憑證鏈privateKey— PEM 編碼的私有金鑰privateKeyPassword— (選用) 私有金鑰的密碼短語,僅加密 PKCS8 金鑰需要
設定網路連線
MSK Replicator 需要連線至自我管理 Kafka 叢集的網路連線。支援的選項:
AWS Site-to-Site VPN — 透過網際網路將內部部署網路連接到 VPC。
AWS Direct Connect — 從您的內部部署建立專用的私有網路連線 AWS。
設定安全群組
確保安全群組允許 MSK Replicator 與身分驗證接聽程式所用連接埠上的自我管理叢集之間的流量。更新 VPC 安全群組的傳入規則和自我管理叢集防火牆的傳出規則。