View a markdown version of this page

トピックレプリケーションのアクセス許可 - Amazon Managed Streaming for Apache Kafka

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

トピックレプリケーションのアクセス許可

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 が必要です。

リソースタイプ パターン オペレーション

クラスター

kafka-cluster (リテラル)

Create、Describe、IdempotentWrite、DescribeConfigs

トピック (ハートビート)

__amazon_msk_replicator_ (修正済み)

作成、読み取り、書き込み、記述、DescribeConfigs、変更、AlterConfigs

トピック (データ)

トピックあたりの PREFIXED または LITERAL

読み取り、記述、DescribeConfigs

ターゲットとしての非 MSK

ターゲットがセルフマネージドクラスターの場合、レプリケーターはすべての内部トピックを MSK ソースに配置します。MSK 以外のターゲットは、ハートビートトピックとデータトピックの書き込みにのみ ACLs が必要です。データトピックパターンはtopicNameConfiguration、設定によって異なります。

リソースタイプ パターン オペレーション

クラスター

kafka-cluster (リテラル)

Create、Describe、IdempotentWrite、DescribeConfigs

トピック (ハートビート)

__amazon_msk_replicator_ (修正済み)

作成、読み取り、書き込み、記述、DescribeConfigs、変更、AlterConfigs

トピック (レプリケートされたハートビート)

${first28CharsOfSourceClusterName} (修正済み)

作成、読み取り、書き込み、記述、DescribeConfigs、変更、AlterConfigs

トピック (データ)

${first28CharsOfSourceClusterName} (修正済み)

作成、書き込み、記述、DescribeConfigs、変更、AlterConfigs

IDENTICAL トピックの命名を使用する場合は、データトピックの行を次のように置き換えます。

リソースタイプ パターン オペレーション

トピック (データ)

トピックあたりの PREFIXED または LITERAL (ソースと同じ名前)

作成、書き込み、記述、DescribeConfigs、変更、AlterConfigs