

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

# トピックレプリケーションのアクセス許可
<a name="msk-replicator-perms-topic-replication"></a>

Amazon MSK Replicator を使用して、クラスター間でトピックをレプリケートします。両方のクラスターへの接続、内部レプリケータートピックの管理、ソーストピックからのデータの読み取り、ターゲットクラスターへのレプリケートデータの書き込みを行うアクセス許可をサービス実行ロールに付与します。

ターゲットクラスターのデータトピックのアクセス許可は、`topicNameConfiguration`設定によって異なります。
+ **PREFIXED\_WITH\_SOURCE\_CLUSTER\_ALIAS** (デフォルト) — ターゲットのレプリケートされたトピックには、ソースクラスターエイリアスがプレフィックスとして名前が付けられます (例: `source-alias.my-topic`)。完全なソースエイリアスは作成時にわからないため、IAM ターゲットデータトピックリソース`*.${topicPattern}`として を使用します。MSK 以外のクラスターの Kafka ACLs の場合、MSK クラスター名の最初の 28 文字を PREFIXED パターンとして使用します。
+ **IDENTICAL** — ターゲットのレプリケートされたトピックは、ソースと同じ名前を保持します。ターゲットデータトピックリソースは、ソースと同じパターンを使用します。

## サービス実行ロール IAM ポリシー (MSK クラスター)
<a name="msk-replicator-perms-topic-replication-iam"></a>

サービス実行ロールに次のポリシーをアタッチします。プレースホルダー値をクラスター名、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 クラスター)
<a name="msk-replicator-perms-topic-replication-acls"></a>

ソースまたはターゲットがセルフマネージド Apache Kafka クラスターの場合は、 CLI を使用して次の ACLs `kafka-acls` を設定します。すべての ACLs、レプリケーターが認証する`ALLOW`アクセス許可タイプとプリンシパルを使用します。特に明記されていない限り、ACLs`PREFIXED`パターンタイプを使用します。

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 | 