

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 取用者群組位移同步許可
<a name="msk-replicator-perms-consumer-group-sync"></a>

啟用 `synchroniseConsumerGroupOffsets` （預設值） 時，複寫器會從來源叢集轉譯取用者群組位移，並將其寫入目標叢集。啟用此功能後，消費者可以在容錯移轉後從正確的位置繼續。

有兩種同步模式可用： `LEGACY`（預設） 和 `ENHANCED`。在 LEGACY 模式中，當生產者寫入來源叢集時，複寫器會同步位移。在 ENHANCED 模式中，複寫器會同步偏移，無論生產者寫入的位置為何。ENHANCED 模式需要雙向複寫。兩種模式都使用相同的 IAM 許可。

**注意**  
ENHANCED 模式依賴 (`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}`用於 PREFIXED 命名，或`${topicPattern}`用於 IDENTICAL 命名）。

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

**非 MSK 作為來源**  
當來源是非 MSK 叢集時，取用者群組偏移同步需要下列 ACLs。


| 資源 | Type | 模式類型 | 作業 | 用途 | 
| --- | --- | --- | --- | --- | 
| `${consumerGroupPattern}` | Group | LITERAL 或 PREFIXED | 描述 | 讀取遞交位移 (OffsetFetch) | 
| `${topicsConsumedByGroup}` | 主題 | LITERAL 或 PREFIXED | 描述 | 偏移平移的主題中繼資料 | 

**非 MSK 做為目標**  
當目標為非 MSK 叢集時，取用者群組偏移同步需要下列 ACLs。


| 資源 | Type | 模式類型 | 作業 | 用途 | 
| --- | --- | --- | --- | --- | 
| `${replicatedTopicPattern}` | 主題 | LITERAL 或 PREFIXED | 描述 | 日誌結束位移 (ListOffsets) | 
| `${consumerGroupPattern}` | Group | LITERAL 或 PREFIXED | 描述 | FindCoordinator、DescribeGroup | 
| `${consumerGroupPattern}` | Group | LITERAL 或 PREFIXED | 讀取 | 遞交翻譯位移 (OffsetCommit) | 