翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
トピックレプリケーションのアクセス許可
Amazon MSK Replicator を使用して、クラスター間でトピックをレプリケートします。両方のクラスターへの接続、内部レプリケータートピックの管理、ソーストピックからのデータの読み取り、ターゲットクラスターへのレプリケートデータの書き込みを行うアクセス許可をサービス実行ロールに付与します。
ターゲットクラスターのデータトピックのアクセス許可は、topicNameConfiguration設定によって異なります。
PREFIXED_WITH_SOURCE_CLUSTER_ALIAS (デフォルト) — ターゲットのレプリケートされたトピックには、ソースクラスターエイリアスがプレフィックスとして名前が付けられます (例:
source-alias.my-topic)。完全なソースエイリアスは作成時にわからないため、IAM ターゲットデータトピックリソース*.${topicPattern}として を使用します。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_*" ] } ] }
IDENTICAL
ターゲットのレプリケートされたトピックは、ソースと同じ名前を保持します。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}" ] }
を、レプリケーション用に設定したトピック名またはパターン (たとえば、my-app-*または特定のトピック名) ${topicPattern}に置き換えます。
注記
どちらの MSK クラスターにも、すべての内部トピック (*__amazon_msk_replicator_*、mskr-offset-syncs.*、および ) に対するアクセス許可が必要です*.checkpoints.internal。このポリシーを使用して、MSK 以外のクラスターに関係なく、両方のクラスターをカバーします。
Kafka ACLs (非 MSK クラスター)
ソースまたはターゲットがセルフマネージド Apache Kafka クラスターの場合は、 CLI を使用して次の ACLs kafka-acls を設定します。すべての ACLs、レプリケーターが認証するALLOWアクセス許可タイプとプリンシパルを使用します。特に明記されていない限り、ACLsPREFIXEDパターンタイプを使用します。
MSK 以外のクラスターが関与する場合、レプリケーターはほとんどの内部トピック (オフセット同期、チェックポイント、ワーカーグループの状態) を MSK クラスターに配置します。MSK 以外のクラスターは、ハートビートトピックとデータトピックのみをホストします。
ソースとしての非 MSK
ソースがセルフマネージドクラスターの場合、レプリケーターはすべての内部トピックを MSK ターゲットに配置します。MSK 以外のソースは、ハートビートトピックとデータトピックの読み取りにのみ ACLs が必要です。
| リソースタイプ | パターン | オペレーション |
|---|---|---|
クラスター |
|
Create、Describe、IdempotentWrite、DescribeConfigs |
トピック (ハートビート) |
|
作成、読み取り、書き込み、記述、DescribeConfigs、変更、AlterConfigs |
トピック (データ) |
トピックあたりの PREFIXED または LITERAL |
読み取り、記述、DescribeConfigs |
ターゲットとしての非 MSK
ターゲットがセルフマネージドクラスターの場合、レプリケーターはすべての内部トピックを MSK ソースに配置します。MSK 以外のターゲットは、ハートビートトピックとデータトピックの書き込みにのみ ACLs が必要です。データトピックパターンはtopicNameConfiguration、設定によって異なります。
| リソースタイプ | パターン | オペレーション |
|---|---|---|
クラスター |
|
Create、Describe、IdempotentWrite、DescribeConfigs |
トピック (ハートビート) |
|
作成、読み取り、書き込み、記述、DescribeConfigs、変更、AlterConfigs |
トピック (レプリケートされたハートビート) |
|
作成、読み取り、書き込み、記述、DescribeConfigs、変更、AlterConfigs |
トピック (データ) |
|
作成、書き込み、記述、DescribeConfigs、変更、AlterConfigs |
IDENTICAL トピックの命名を使用する場合は、データトピックの行を次のように置き換えます。
| リソースタイプ | パターン | オペレーション |
|---|---|---|
トピック (データ) |
トピックあたりの PREFIXED または LITERAL (ソースと同じ名前) |
作成、書き込み、記述、DescribeConfigs、変更、AlterConfigs |