

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 消费组偏移同步权限
<a name="msk-replicator-perms-consumer-group-sync"></a>

`synchroniseConsumerGroupOffsets`启用后（默认），复制器会转换来自源集群的使用者组偏移量并将其写入目标集群。启用此功能后，使用者可以在故障转移后从正确位置恢复。

有两种同步模式可供选择：`LEGACY`（默认）和`ENHANCED`。在 LEGACY 模式下，当生产者写入源集群时，复制器会同步偏移。在增强模式下，无论生产者在哪里写入，复制器都会同步偏移量。增强模式需要双向复制。两种模式都使用相同的 IAM 权限。

**注意**  
两个集群的复制权限主题已经涵盖了增强模式所依赖的内部主题（`mskr-offset-syncs.*`和`*.checkpoints.internal`）。

以下语句添加了专门用于消费组偏移同步的权限。由于偏移量同步依赖于数据复制，因此某些权限与主题复制策略重叠。

## 服务执行角色 IAM 策略（MSK 集群）
<a name="msk-replicator-perms-consumer-group-sync-iam"></a>

**源集群**  
服务执行角色必须具有描述消费者组及其在源上使用的主题的权限。

```
[
    {
        "Sid": "SourceGroupPermissions",
        "Effect": "Allow",
        "Action": [
            "kafka-cluster:DescribeGroup"
        ],
        "Resource": [
            "arn:aws:kafka:${region}:${account}:group/${SourceClusterName}/${SourceClusterUUID}/${consumerGroupPattern}"
        ]
    },
    {
        "Sid": "SourceUserTopicPermissions",
        "Effect": "Allow",
        "Action": [
            "kafka-cluster:DescribeTopic"
        ],
        "Resource": [
            "arn:aws:kafka:${region}:${account}:topic/${SourceClusterName}/${SourceClusterUUID}/${topicsConsumedByGroup}"
        ]
    }
]
```

**目标集群**  
服务执行角色必须有权描述复制的主题并更改目标上的使用者组，这样才能提交翻译后的偏移量。

```
[
    {
        "Sid": "TargetCheckpointTopicPermissions",
        "Effect": "Allow",
        "Action": [
            "kafka-cluster:DescribeTopic"
        ],
        "Resource": [
            "arn:aws:kafka:${region}:${account}:topic/${TargetClusterName}/${TargetClusterUUID}/${replicatedTopicPattern}"
        ]
    },
    {
        "Sid": "TargetCheckpointGroupPermissions",
        "Effect": "Allow",
        "Action": [
            "kafka-cluster:AlterGroup",
            "kafka-cluster:DescribeGroup"
        ],
        "Resource": [
            "arn:aws:kafka:${region}:${account}:group/${TargetClusterName}/${TargetClusterUUID}/${consumerGroupPattern}"
        ]
    }
]
```

按如下方式替换前面语句中的占位符：
+ `${consumerGroupPattern}`替换为为复制配置的使用者组名称或模式（例如`my-app-group-*`）。
+ `${topicsConsumedByGroup}`替换为消费者组在来源上读取的主题模式。
+ `${replicatedTopicPattern}`替换为目标上相应的复制主题模式（`*.${topicPattern}`用于前缀命名或`${topicPattern}`相同命名）。

## Kafka ACL（非 MSK 集群）
<a name="msk-replicator-perms-consumer-group-sync-acls"></a>

**Non-MSK 作为来源**  
当源是非 MSK 集群时，使用者组偏移同步需要以下 ACL。


| 资源 | Type | 图案类型 | 操作 | 用途 | 
| --- | --- | --- | --- | --- | 
| `${consumerGroupPattern}` | Group | 字面意思或前缀 | 描述 | 读取已提交的偏移量 () OffsetFetch | 
| `${topicsConsumedByGroup}` | Topic | 字面意思或前缀 | 描述 | 偏移翻译的主题元数据 | 

**Non-MSK 作为目标**  
当目标为非 MSK 群集时，使用者组偏移同步需要以下 ACL。


| 资源 | Type | 图案类型 | 操作 | 用途 | 
| --- | --- | --- | --- | --- | 
| `${replicatedTopicPattern}` | Topic | 字面意思或前缀 | 描述 | 日志末端偏移量 (ListOffsets) | 
| `${consumerGroupPattern}` | Group | 字面意思或前缀 | 描述 | FindCoordinator, DescribeGroup | 
| `${consumerGroupPattern}` | Group | 字面意思或前缀 | 读取 | 提交转换后的偏移量 () OffsetCommit | 