

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

# 在 IAM 政策陳述式中指定 KMS 金鑰
<a name="cmks-in-iam-policies"></a>

您可以使用 IAM 政策，允許主體使用或管理 KMS 金鑰。在政策陳述式的 `Resource` 元素中指定 KMS 金鑰。
+ 若要在 IAM 政策陳述式中指定 KMS 金鑰，您必須使用其[金鑰 ARN](concepts.md#key-id-key-ARN)。您不能使用[金鑰 ID](concepts.md#key-id-key-id)、[別名名稱](concepts.md#key-id-alias-name)或[別名 ARN](concepts.md#key-id-alias-ARN) 來識別 IAM 政策陳述式中的 KMS 金鑰。

  例如："`Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`"

  若要根據其別名來控制對 KMS 金鑰的存取，請使用 [kms:RequestAlias](conditions-kms.md#conditions-kms-request-alias) 或 [kms:ResourceAliases](conditions-kms.md#conditions-kms-resource-aliases) 條件索引鍵。如需詳細資訊，請參閱[適用於 的 ABAC AWS KMS](abac.md)。

  僅在控制別名操作存取的政策陳述式中使用別名 ARN 作為資源，例如 [CreateAlias](https://docs.aws.amazon.com/kms/latest/APIReference/CreateAlias.html)、[UpdateAlias](https://docs.aws.amazon.com/kms/latest/APIReference/UpdateAlias.html) 或 [DeleteAlias](https://docs.aws.amazon.com/kms/latest/APIReference/DeleteAlias.html)。如需詳細資訊，請參閱[控制對別名的存取](alias-access.md)。
+ 若要在帳戶和區域中指定多個 KMS 金鑰，請在金鑰 ARN 的區域或資源 ID 位置中使用萬用字元 (\*)。

  例如，若要在帳戶的美國西部 (奧勒岡) 區域中指定所有 KMS 金鑰，請使用 "`Resource": "arn:aws:kms:us-west-2:111122223333:key/*`"。若要在帳戶的所有區域中指定所有 KMS 金鑰，請使用 "`Resource": "arn:aws:kms:*:111122223333:key/*`"。
+ 若要代表所有 KMS 金鑰，請單獨使用萬用字元 (`"*"`)。將此格式用於不使用任何特定 KMS 金鑰的操作，也就是 [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html)、[GenerateRandom](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateRandom.html)、[ListAliases](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListAliases.html) 和 [ListKeys](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListKeys.html)。

在撰寫政策陳述式時，[最佳實務](iam-policies-best-practices.md)是僅指定主體需要使用的 KMS 金鑰，而不是為其授予所有 KMS 金鑰的存取權。

例如，下列 IAM 政策陳述式允許主體僅針對政策陳述式 `Resource` 元素中列出的 KMS 金鑰呼叫 [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)、[GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)、[Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) 操作。透過金鑰 ARN 指定 KMS 金鑰 (這是最佳實務) 可確保許可僅限於指定的 KMS 金鑰。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": [
      "kms:DescribeKey",
      "kms:GenerateDataKey",
      "kms:Decrypt"
    ],
    "Resource": [
     "arn:aws:kms:us-west-2:{{111122223333}}:key/1234abcd-12ab-34cd-56ef-1234567890ab",
     "arn:aws:kms:us-west-2:{{111122223333}}:key/01234abcd-12ab-34cd-56ef-1234567890ab"
    ]
  }
}
```

------

若要將 許可套用至特定信任的所有 KMS 金鑰 AWS 帳戶，您可以在區域和金鑰 ID 位置中使用萬用字元 (\*)。例如，下列政策陳述式可讓主體在兩個可信任範例帳戶中的所有 KMS 金鑰上呼叫指定的操作。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": [
      "kms:DescribeKey",
      "kms:GenerateDataKey",
      "kms:GenerateDataKeyPair"
    ],
    "Resource": [
      "arn:aws:kms:*:{{111122223333}}:key/*",
      "arn:aws:kms:*:444455556666:key/*"
    ]
  }
}
```

------

您也可以在 `Resource` 元素中單獨使用萬用字元 (`"*"`)。因為它允許存取帳戶具有使用許可的所有 KMS 金鑰，所以建議主要用於沒有特定 KMS 金鑰的操作，以及 `Deny` 陳述式。您也可以在只允許較不敏感之唯讀操作的政策陳述式中使用它。若要判斷 AWS KMS 操作是否涉及特定 KMS 金鑰，請在 中資料表**的資源**欄中尋找 **KMS 金鑰**值[AWS KMS 許可](kms-api-permissions-reference.md)。

例如，下列政策陳述式使用 `Deny` 效果，以禁止主體在任何 KMS 金鑰上使用指定的操作。它使用 `Resource` 元素中的萬用字元來代表所有 KMS 金鑰。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Deny",
    "Action": [
      "kms:CreateKey",
      "kms:PutKeyPolicy",
      "kms:CreateGrant",
      "kms:ScheduleKeyDeletion"
    ],
    "Resource": "*"
  }
}
```

------

下列政策陳述式僅使用萬用字元來代表所有 KMS 金鑰。但它只允許不太敏感的唯讀操作和不適用於任何特定 KMS 金鑰的操作。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Allow",
    "Action": [
      "kms:CreateKey",
      "kms:ListKeys",
      "kms:ListAliases",
      "kms:ListResourceTags"
    ],
    "Resource": "*"
  }
}
```

------