

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

# IAM 授權政策動作和資源的語意
<a name="kafka-actions"></a>

**注意**  
對於執行 Apache Kafka 3.8 版或更新版本的叢集，IAM 存取控制支援 WriteTxnMarkers API 來終止交易。對於執行 3.8 之前 Kafka 版本的叢集，IAM 存取控制不支援內部叢集動作，包括 WriteTxnMarkers。對於這些舊版，若要終止交易，請使用 SCRAM 或 mTLS 身分驗證搭配適當的 ACLs，而非 IAM 身分驗證。

本節說明您可以在 IAM 授權政策中使用的動作和資源元素的語義。如需政策範例，請參閱 [建立 IAM 角色的授權政策](create-iam-access-control-policies.md)。

## 授權政策動作
<a name="actions"></a>

下表列出在 Amazon MSK 使用 IAM 存取控制時，可包含在授權政策中的動作。當您在授權政策中加入來自表格*動作*資料欄中的動作時，您還必須加入*必要動作*資料欄中的對應動作。


| Action | Description | 必要的動作 | 必要的資源 | 適用於無伺服器叢集 | 
| --- | --- | --- | --- | --- | 
| kafka-cluster:Connect | 准許與叢集連線並進行身分驗證。 | 無 | 叢集 | 是 | 
| kafka-cluster:DescribeCluster | 准許描述叢集的各方面，相當於 Apache Kafka 的 DESCRIBE CLUSTER ACL。 |  `kafka-cluster:Connect`  | 叢集 | 是 | 
| kafka-cluster:AlterCluster | 准許改變叢集的各方面，相當於 Apache Kafka 的 ALTER CLUSTER ACL。 |  `kafka-cluster:Connect` `kafka-cluster:DescribeCluster`  | 叢集 | 否 | 
| kafka-cluster:DescribeClusterDynamicConfiguration | 准許描述叢集的動態組態，相當於 Apache Kafka 的 DESCRIBE\_CONFIGS CLUSTER ACL。 |  `kafka-cluster:Connect`  | 叢集 | 否 | 
| kafka-cluster:AlterClusterDynamicConfiguration | 准許改變叢集的動態組態，相當於 Apache Kafka 的 ALTER\_CONFIGS CLUSTER ACL。 |  `kafka-cluster:Connect` `kafka-cluster:DescribeClusterDynamicConfiguration`  | 叢集 | 否 | 
| kafka-cluster:WriteDataIdempotently | 准許在叢集上等冪寫入資料，相當於 Apache Kafka 的 IDEMPOTENT\_WRITE CLUSTER ACL。 |  `kafka-cluster:Connect` `kafka-cluster:WriteData`  | 叢集 | 是 | 
| kafka-cluster:CreateTopic | 准許在叢集上建立主題，相當於 Apache Kafka 的 CREATE CLUSTER/TOPIC ACL。 |  `kafka-cluster:Connect`  | 主題 | 是 | 
| kafka-cluster:DescribeTopic | 准許描述叢集上的主題，相當於 Apache Kafka 的 DESCRIBE TOPIC ACL。 |  `kafka-cluster:Connect`  | 主題 | 是 | 
| kafka-cluster:AlterTopic | 准許改變叢集上的主題，相當於 Apache Kafka 的 ALTER TOPIC ACL。 |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopic`  | 主題 | 是 | 
| kafka-cluster:DeleteTopic | 准許刪除叢集上的主題，相當於 Apache Kafka 的 DELETE TOPIC ACL。 |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopic`  | 主題 | 是 | 
| kafka-cluster:DescribeTopicDynamicConfiguration | 准許描述叢集上主題的動態組態，相當於 Apache Kafka 的 DESCRIBE\_CONFIGS TOPIC ACL。 |  `kafka-cluster:Connect`  | 主題 | 是 | 
| kafka-cluster:AlterTopicDynamicConfiguration | 准許改變叢集上主題的動態組態，相當於 Apache Kafka 的 ALTER\_CONFIGS TOPIC ACL。 |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopicDynamicConfiguration`  | 主題 | 是 | 
| kafka-cluster:ReadData | 准許讀取叢集上主題的資料，相當於 Apache Kafka 的 READ TOPIC ACL。 |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopic` `kafka-cluster:AlterGroup`  | 主題 | 是 | 
| kafka-cluster:WriteData | 准許寫入叢集上主題的資料，相當於 Apache Kafka 的 WRITE TOPIC ACL。 |  `kafka-cluster:Connect` `kafka-cluster:DescribeTopic`  | 主題 | 是 | 
| kafka-cluster:DescribeGroup | 准許描述叢集上的群組，相當於 Apache Kafka 的 DESCRIBE GROUP ACL。 |  `kafka-cluster:Connect`  | 群組 | 是 | 
| kafka-cluster:AlterGroup | 准許加入叢集上的群組，相當於 Apache Kafka 的 READ GROUP ACL。 |  `kafka-cluster:Connect` `kafka-cluster:DescribeGroup`  | 群組 | 是 | 
| kafka-cluster:DeleteGroup | 准許刪除叢集上的群組，相當於 Apache Kafka 的 DELETE GROUP ACL。 |  `kafka-cluster:Connect` `kafka-cluster:DescribeGroup`  | 群組 | 是 | 
| kafka-cluster:DescribeTransactionalId | 准許描述叢集上的交易 ID，相當於 Apache Kafka 的 DESCRIBE TRANSACTIONAL\_ID ACL。 |  `kafka-cluster:Connect`  | transactional-id | 是 | 
| kafka-cluster:AlterTransactionalId | 准許改變叢集上的交易 ID，相當於 Apache Kafka 的 WRITE TRANSACTIONAL\_ID ACL。 |  `kafka-cluster:Connect` `kafka-cluster:DescribeTransactionalId` `kafka-cluster:WriteData`  | transactional-id | 是 | 

您可以在動作中的冒號後面使用星號 (\*) 萬用字元任意次數。範例如下。
+ `kafka-cluster:*Topic` 代表 `kafka-cluster:CreateTopic`、`kafka-cluster:DescribeTopic`、`kafka-cluster:AlterTopic`、和 `kafka-cluster:DeleteTopic`。它不包括 `kafka-cluster:DescribeTopicDynamicConfiguration` 或 `kafka-cluster:AlterTopicDynamicConfiguration`。
+ `kafka-cluster:*` 代表所有許可。

## 授權政策資源
<a name="msk-iam-resources"></a>

下表顯示將 IAM 存取控制用於 Amazon MSK 時，可在授權政策中使用的四種資源類型。您可以從 取得叢集 Amazon Resource Name (ARN)， AWS 管理主控台 或使用 [DescribeCluster](https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn.html#DescribeCluster) API 或 [describe-cluster](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kafka/describe-cluster.html) AWS CLI 命令。然後，您可以使用叢集 ARN 來建構主題、群組和交易 ID ARN。若要在授權政策中指定資源，請使用該資源的 ARN。


| 資源 | ARN 格式 | 
| --- | --- | 
| 叢集 | arn:aws:kafka:{{region}}:{{account-id}}:cluster/{{cluster-name}}/{{cluster-uuid}} | 
| 主題 | arn:aws:kafka:{{region}}:{{account-id}}:topic/{{cluster-name}}/{{cluster-uuid}}/{{topic-name}} | 
| Group | arn:aws:kafka:{{region}}:{{account-id}}:group/{{cluster-name}}/{{cluster-uuid}}/{{group-name}} | 
| 交易 ID | arn:aws:kafka:{{region}}:{{account-id}}:transactional-id/{{cluster-name}}/{{cluster-uuid}}/{{transactional-id}} | 

您可以在 ARN 中的 `:cluster/`、`:topic/`、`:group/`、`:transactional-id/` 後隨時使用星號 (\*) 萬用字元任意次數。以下是使用星號 (\*) 萬用字元表示多種資源的範例：
+ `arn:aws:kafka:us-east-1:0123456789012:topic/MyTestCluster/*`：任何名為 MyTestCluster 的叢集中的所有主題，不論叢集的 UUID 為何。
+ `arn:aws:kafka:us-east-1:0123456789012:topic/MyTestCluster/abcd1234-0123-abcd-5678-1234abcd-1/*_test`：名稱以 "\_test" 結尾的所有主題，所屬叢集名稱是 MyTestCluster，叢集 UUID 是 abcd1234-0123-abcd-5678-1234abcd-1。
+ `arn:aws:kafka:us-east-1:0123456789012:transactional-id/MyTestCluster/*/5555abcd-1111-abcd-1234-abcd1234-1`：您帳戶中名為 MyTestCluster 的叢集的所有化身中交易 ID 為 5555abcd-1111-ABCD-1234-ABCD1234-1 的所有交易。這表示，如果您建立名為 MyTestCluster 的叢集並將其刪除，然後以相同的名稱建立另一個叢集，您可以使用此資源 ARN 來代表這兩個叢集上的相同交易 ID。但是，您無法存取已刪除的叢集。