本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
主題複寫許可
使用 Amazon MSK Replicator 在叢集之間複寫主題。授予服務執行角色許可,以連線至兩個叢集、管理內部複寫器主題、從來源主題讀取資料,以及將複寫資料寫入目標叢集。
目標叢集上資料主題的許可會根據topicNameConfiguration設定而有所不同:
PREFIXED_WITH_SOURCE_CLUSTER_ALIAS (預設) — 目標上的複寫主題會以來源叢集別名做為字首命名 (例如,
source-alias.my-topic)。由於建立時不知道完整的來源別名,請使用*.${topicPattern}做為 IAM 目標資料主題資源。對於非 MSK 叢集上的 Kafka ACLs,請使用 MSK 叢集名稱的前 28 個字元做為 PREFIXED 模式。IDENTICAL — 目標上的複寫主題會保留與來源相同的名稱。目標資料主題資源使用與來源相同的模式。
服務執行角色 IAM 政策 (MSK 叢集)
將下列政策連接至服務執行角色。將預留位置值取代為您的叢集名稱、UUIDs和主題模式。選擇符合您topicNameConfiguration設定的TargetDataTopicPermissions陳述式。
PREFIXED_WITH_SOURCE_CLUSTER_ALIAS (預設)
目標上的複寫主題會以來源叢集別名做為字首命名 (例如 source-alias.my-topic)。由於在建立複寫器之前不知道完整別名,請在目標資料主題資源中使用具有主題模式 (例如,*.${topicPattern}) 的萬用字元字首。IAM 在資源 ARN 中支援多個萬用字元。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ClusterPermissions", "Effect": "Allow", "Action": [ "kafka-cluster:Connect", "kafka-cluster:DescribeCluster", "kafka-cluster:WriteDataIdempotently" ], "Resource": [ "arn:aws:kafka:${region}:${account}:cluster/${SourceClusterName}/${SourceClusterUUID}", "arn:aws:kafka:${region}:${account}:cluster/${TargetClusterName}/${TargetClusterUUID}" ] }, { "Sid": "SourceInternalTopicPermissions", "Effect": "Allow", "Action": [ "kafka-cluster:CreateTopic", "kafka-cluster:ReadData", "kafka-cluster:WriteData", "kafka-cluster:DescribeTopic", "kafka-cluster:DescribeTopicDynamicConfiguration", "kafka-cluster:AlterTopic", "kafka-cluster:AlterTopicDynamicConfiguration" ], "Resource": [ "arn:aws:kafka:${region}:${account}:topic/${SourceClusterName}/${SourceClusterUUID}/*__amazon_msk_replicator_*", "arn:aws:kafka:${region}:${account}:topic/${SourceClusterName}/${SourceClusterUUID}/mskr-offset-syncs.*", "arn:aws:kafka:${region}:${account}:topic/${SourceClusterName}/${SourceClusterUUID}/*.checkpoints.internal" ] }, { "Sid": "SourceDataTopicPermissions", "Effect": "Allow", "Action": [ "kafka-cluster:ReadData", "kafka-cluster:DescribeTopic", "kafka-cluster:DescribeTopicDynamicConfiguration" ], "Resource": [ "arn:aws:kafka:${region}:${account}:topic/${SourceClusterName}/${SourceClusterUUID}/${topicPattern}" ] }, { "Sid": "TargetInternalTopicPermissions", "Effect": "Allow", "Action": [ "kafka-cluster:CreateTopic", "kafka-cluster:ReadData", "kafka-cluster:WriteData", "kafka-cluster:DescribeTopic", "kafka-cluster:DescribeTopicDynamicConfiguration", "kafka-cluster:AlterTopic", "kafka-cluster:AlterTopicDynamicConfiguration" ], "Resource": [ "arn:aws:kafka:${region}:${account}:topic/${TargetClusterName}/${TargetClusterUUID}/*__amazon_msk_replicator_*", "arn:aws:kafka:${region}:${account}:topic/${TargetClusterName}/${TargetClusterUUID}/mskr-offset-syncs.*", "arn:aws:kafka:${region}:${account}:topic/${TargetClusterName}/${TargetClusterUUID}/*.checkpoints.internal" ] }, { "Sid": "TargetDataTopicPermissions", "Effect": "Allow", "Action": [ "kafka-cluster:CreateTopic", "kafka-cluster:WriteData", "kafka-cluster:DescribeTopic", "kafka-cluster:DescribeTopicDynamicConfiguration" ], "Resource": [ "arn:aws:kafka:${region}:${account}:topic/${TargetClusterName}/${TargetClusterUUID}/*.${topicPattern}" ] }, { "Sid": "TargetGroupPermissions", "Effect": "Allow", "Action": [ "kafka-cluster:AlterGroup", "kafka-cluster:DescribeGroup" ], "Resource": [ "arn:aws:kafka:${region}:${account}:group/${TargetClusterName}/${TargetClusterUUID}/*__amazon_msk_replicator_*" ] } ] }
相同
目標上的複寫主題會保留與來源相同的名稱。將 TargetDataTopicPermissions陳述式取代為下列項目:
{ "Sid": "TargetDataTopicPermissions", "Effect": "Allow", "Action": [ "kafka-cluster:CreateTopic", "kafka-cluster:WriteData", "kafka-cluster:DescribeTopic", "kafka-cluster:DescribeTopicDynamicConfiguration" ], "Resource": [ "arn:aws:kafka:${region}:${account}:topic/${TargetClusterName}/${TargetClusterUUID}/${topicPattern}" ] }
${topicPattern} 將 取代為您為複寫設定的主題名稱或模式 (例如,my-app-*或特定主題名稱)。
注意
兩個 MSK 叢集都需要所有內部主題 (*__amazon_msk_replicator_*、 mskr-offset-syncs.*和 ) 的許可*.checkpoints.internal。無論哪個叢集是非 MSK,使用此政策來涵蓋這兩個叢集。
Kafka ACLs(非 MSK 叢集)
當您的來源或目標是自我管理的 Apache Kafka 叢集時,請使用 CLI kafka-acls 設定下列 ACLs。所有 ACLs 都會使用複寫器驗證的ALLOW許可類型和委託人。除非另有說明,否則 ACLs會使用 PREFIXED 模式類型。
當涉及非 MSK 叢集時,複寫器會在 MSK 叢集上放置大部分的內部主題 (offset-syncs、檢查點、工作者群組狀態)。非 MSK 叢集僅託管活動訊號主題和資料主題。
非 MSK 做為來源
當來源是自我管理叢集時,複寫器會將所有內部主題放置在 MSK 目標上。非 MSK 來源只需要活動訊號主題和讀取資料主題ACLs。
| Resource Type (資源類型) | 模式 | 作業 |
|---|---|---|
叢集 |
|
Create、Describe、IdempotentWrite、DescribeConfigs |
主題 (heartbeat) |
|
建立、讀取、寫入、描述、DescribeConfigs、Alter、AlterConfigs |
主題 (資料) |
每個主題的 PREFIXED 或 LITERAL |
讀取、描述、DescribeConfigs |
非 MSK 做為目標
當目標為自我管理叢集時,複寫器會將所有內部主題放置在 MSK 來源上。非 MSK 目標只需要活動訊號主題和寫入資料主題ACLs。資料主題模式取決於您的topicNameConfiguration設定。
| Resource Type (資源類型) | 模式 | 作業 |
|---|---|---|
叢集 |
|
Create、Describe、IdempotentWrite、DescribeConfigs |
主題 (heartbeat) |
|
建立、讀取、寫入、描述、DescribeConfigs、Alter、AlterConfigs |
主題 (複寫的活動訊號) |
|
建立、讀取、寫入、描述、DescribeConfigs、Alter、AlterConfigs |
主題 (資料) |
|
建立、寫入、描述、DescribeConfigs、Alter、AlterConfigs |
如果您使用IDENTICAL主題命名,請將資料主題資料列取代為以下內容。
| Resource Type (資源類型) | 模式 | 作業 |
|---|---|---|
主題 (資料) |
每個主題的 PREFIXED 或 LITERAL (與來源相同的名稱) |
建立、寫入、描述、DescribeConfigs、Alter、AlterConfigs |