AWS Identity and Access Management
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

AWS Key Management Service 的操作、资源和条件键

AWS Key Management Service(服务前缀:kms)提供以下服务特定的资源、操作和条件上下文键以在 IAM 权限策略中使用。

参考:

AWS Key Management Service 定义的操作

您可以在 Action 策略语句的 IAM 元素中指定以下操作。可以使用策略授予在 AWS 中执行操作的权限。您在策略中使用一项操作时,通常使用相同的名称允许或拒绝对 API 操作或 CLI 命令的访问。但在某些情况下,单一动作可控制对多项操作的访问。还有某些操作需要多种不同的动作。

资源列指示每个操作是否支持资源级权限。如果该列没有任何值,您必须在策略语句的 Resource 元素中指定所有资源(“*”)。如果该列包含一种资源类型,则可以在含有该操作的语句中指定该类型的 ARN。必需资源在表中以星号 (*) 表示。如果在使用该操作的语句中指定资源级权限 ARN,则它必须属于该类型。某些操作支持多种资源类型。如果资源类型是可选的(未指示为必需),则可以选择使用一种类型而不使用其他类型。

有关下表中各列的详细信息,请参阅 操作表

操作 描述 访问级别 资源类型(* 为必需) 条件键 相关操作
CancelKeyDeletion 授予权限以取消对客户主密钥的计划删除。 写入

key*

kms:CallerAccount

kms:ViaService

ConnectCustomKeyStore 授予权限以将自定义密钥存储连接或重新连接到关联的 AWS CloudHSM 集群。 写入
CreateAlias 授予权限以便为客户主密钥 (CMK) 创建别名。别名是可选的友好名称,您可以将其与客户主密钥相关联。 写入

alias*

key*

kms:CallerAccount

kms:ViaService

CreateCustomKeyStore 授予权限以创建自定义密钥存储,它与您拥有和管理的 AWS CloudHSM 集群相关联。 写入

cloudhsm:DescribeClusters

CreateGrant 授予权限以便向客户主密钥添加授权。您可以使用授权添加权限,而不更改密钥策略或 IAM 策略。 权限管理

key*

kms:CallerAccount

kms:GrantConstraintType

kms:GrantIsForAWSResource

kms:ViaService

CreateKey 授予权限以创建客户主密钥,该密钥可用于保护数据密钥和其他敏感信息。 写入

kms:BypassPolicyLockoutSafetyCheck

kms:KeyOrigin

Decrypt 授予权限以解密通过客户主密钥加密的密文。 写入

key*

kms:CallerAccount

kms:EncryptionContextKeys

kms:ViaService

DeleteAlias 授予权限以删除别名。别名是可选的友好名称,您可以将其与客户主密钥相关联。 写入

alias*

key*

kms:CallerAccount

kms:ViaService

DeleteCustomKeyStore 授予权限以删除自定义密钥存储。 写入
DeleteImportedKeyMaterial 授予权限以删除您导入到客户主密钥的加密材料。此操作会使此密钥变得无法使用。 写入

key*

kms:CallerAccount

kms:ViaService

DescribeCustomKeyStores 授予权限以查看有关账户和区域中的自定义密钥存储的详细信息。 Read
DescribeKey 授予权限以查看有关客户主密钥的详细信息。 Read

key*

kms:CallerAccount

kms:ViaService

DisableKey 授予权限以禁用客户主密钥,这会阻止其用于加密操作中。 写入

key*

kms:CallerAccount

kms:ViaService

DisableKeyRotation 授予权限以禁用自动轮换客户托管的客户主密钥。 写入

key*

kms:CallerAccount

kms:ViaService

DisconnectCustomKeyStore 授予权限以将自定义密钥存储与关联的 AWS CloudHSM 集群断开连接。 写入
EnableKey 授予权限以将客户主密钥 (CMK) 的状态更改为已启用。这允许将 CMK 用于加密操作中。 写入

key*

kms:CallerAccount

kms:ViaService

EnableKeyRotation 授予权限,以启用自动轮换客户主密钥中的加密材料。 写入

key*

kms:CallerAccount

kms:ViaService

Encrypt 授予权限以使用指定的客户主密钥来加密数据和数据密钥。 写入

key*

kms:CallerAccount

kms:EncryptionContextKeys

kms:ViaService

GenerateDataKey 授予权限以使用客户主密钥来生成数据密钥。您可以使用数据密钥在 AWS KMS 的外部加密数据。 写入

key*

kms:CallerAccount

kms:EncryptionContextKeys

kms:ViaService

GenerateDataKeyWithoutPlaintext 授予权限以使用客户主密钥来生成数据密钥。与 GenerateDataKey 操作不同,此操作会返回加密的数据密钥,而没有数据密钥的明文版本。 写入

key*

kms:CallerAccount

kms:EncryptionContextKeys

kms:ViaService

GenerateRandom 授予权限以从 AWS KMS 获取加密的安全随机字节字符串。 写入
GetKeyPolicy 授予权限以查看指定的客户主密钥的密钥策略。 Read

key*

kms:CallerAccount

kms:ViaService

GetKeyRotationStatus 授予权限以确定是否对客户主密钥启用了自动密钥轮换。 Read

key*

kms:CallerAccount

kms:ViaService

GetParametersForImport 授予权限以获取将加密材料导入到客户管理的密钥所需的数据,包括公有密钥和导入令牌。 Read

key*

kms:CallerAccount

kms:ViaService

kms:WrappingAlgorithm

kms:WrappingKeySpec

ImportKeyMaterial 授予权限以将加密材料导入到客户主密钥。 写入

key*

kms:CallerAccount

kms:ExpirationModel

kms:ValidTo

kms:ViaService

ListAliases 授予权限以查看在账户中定义的别名。别名是可选的友好名称,您可以将其与客户主密钥相关联。 List
ListGrants 授予权限以查看客户主密钥的所有授权。 List

key*

kms:CallerAccount

kms:GrantIsForAWSResource

kms:ViaService

ListKeyPolicies 授予权限以查看客户主密钥的密钥策略的名称。 List

key*

kms:CallerAccount

kms:ViaService

ListKeys 授予权限以查看账户中所有客户主密钥的密钥 ID 和 Amazon 资源名称 (ARN)。 List
ListResourceTags 授予权限以查看附加到某一客户主密钥的所有标签。 Read

key*

kms:CallerAccount

kms:ViaService

ListRetirableGrants 授予权限以查看其中指定的委托人是停用委托人的授权。其他委托人可能能够停用此授权,而且此委托人可能能够停用其他授权。 List

key*

PutKeyPolicy 授予权限以替换指定的客户主密钥的密钥策略。 权限管理

key*

kms:BypassPolicyLockoutSafetyCheck

kms:CallerAccount

kms:ViaService

ReEncryptFrom 授予权限以解密数据,作为对 AWS KMS 内的数据进行解密和重新加密的流程的一部分。 写入

key*

kms:CallerAccount

kms:EncryptionContextKeys

kms:ReEncryptOnSameKey

kms:ViaService

ReEncryptTo 授予权限以加密数据,作为对 AWS KMS 内的数据进行解密和重新加密的流程的一部分。 写入

key*

kms:CallerAccount

kms:EncryptionContextKeys

kms:ReEncryptOnSameKey

kms:ViaService

RetireGrant 授予权限以停用授权。RetireGrant 操作通常由授权用户在完成授权允许他们执行的任务后调用。 权限管理

key*

RevokeGrant 授予权限以撤销授权,这会对所有依赖于此授权的操作拒绝权限。 权限管理

key*

kms:CallerAccount

kms:GrantIsForAWSResource

kms:ViaService

ScheduleKeyDeletion 授予权限以计划删除客户主密钥。 写入

key*

kms:CallerAccount

kms:ViaService

TagResource 授予权限以创建或更新附加到客户主密钥的标签。 标记

key*

kms:CallerAccount

kms:ViaService

UntagResource 授予权限以删除附加到某一客户主密钥的标签。 标记

key*

kms:CallerAccount

kms:ViaService

UpdateAlias 授予权限以将别名与不同的客户主密钥关联。别名是可选的友好名称,您可以将其与客户主密钥相关联。 写入

alias*

key*

kms:CallerAccount

kms:ViaService

UpdateCustomKeyStore 授予权限以更改自定义密钥存储的属性。 写入
UpdateKeyDescription 授予权限以删除或更改客户主密钥的描述。 写入

key*

kms:CallerAccount

kms:ViaService

AWS Key Management Service 定义的资源

以下资源类型是由该服务定义的,可以在 IAM 权限策略语句的 Resource 元素中使用这些资源类型。操作表中的每个操作指定了可以使用该操作指定的资源类型。您也可以在策略中包含条件键,从而定义资源类型。这些键显示在表的最后一列。有关下表中各列的详细信息,请参阅 资源类型表

资源类型 ARN 条件键
alias arn:${Partition}:kms:${Region}:${Account}:alias/${Alias}
key arn:${Partition}:kms:${Region}:${Account}:key/${KeyId}

AWS Key Management Service 的条件键

AWS Key Management Service 定义以下可以在 IAM 策略的 Condition 元素中使用的条件键。您可以使用这些键进一步细化应用策略语句的条件。有关下表中各列的详细信息,请参阅 条件键表

要查看适用于所有服务的全局条件键,请参阅 IAM 策略参考 中的可用的全局条件键

条件键 描述 类型
kms:BypassPolicyLockoutSafetyCheck 根据请求中 BypassPolicyLockoutSafetyCheck 参数的值控制对 CreateKey 和 PutKeyPolicy 操作的访问权限。 布尔值
kms:CallerAccount 根据调用者的 AWS 账户 ID 控制对指定 AWS KMS 操作的访问权限。您可以在单个策略语句中使用该条件键以允许或拒绝访问 AWS 账户中的所有 IAM 用户和角色。 字符串
kms:EncryptionContextKeys 根据加密上下文中指定的密钥是否存在来控制访问。加密上下文是加密操作中的一个可选元素。 字符串
kms:ExpirationModel 根据请求中 ExpirationModel 参数的值控制对 ImportKeyMaterial 操作的访问。 字符串
kms:GrantConstraintType 根据请求中的授权限制来控制对 CreateGrant 操作的访问。 字符串
kms:GrantIsForAWSResource 当请求来自指定的 AWS 服务时,控制对 CreateGrant 操作的访问。 布尔值
kms:GrantOperations 根据授权中的操作来控制对 CreateGrant 操作的访问。 字符串
kms:GranteePrincipal 根据授权中的被授权委托人来控制对 CreateGrant 操作的访问。 字符串
kms:KeyOrigin 根据请求中 Origin 参数的值控制对 CreateKey 操作的访问。Origin 参数确定 AWS KMS 是在 KMS 中为密钥生成加密材料,在与您的自定义密钥存储关联的 AWS CloudHSM 集群中生成加密材料,还是导入加密材料 字符串
kms:ReEncryptOnSameKey 当 ReEncrypt 操作使用用于加密操作的同一个客户主密钥时,控制对该操作的访问。 布尔值
kms:RetiringPrincipal 根据授权中的停用委托人来控制对 CreateGrant 操作的访问。 字符串
kms:ValidTo 根据请求中 ValidTo 参数的值控制对 ImportKeyMaterial 操作的访问。您可以使用此条件键以允许用户仅当在指定的日期到期时才能导入密钥材料。 数值
kms:ViaService 当代表委托人发出的请求来自指定的 AWS 服务时,控制访问权限。 字符串
kms:WrappingAlgorithm 根据请求中 WrappingAlgorithm 参数的值控制对 GetParametersForImport 操作的访问权限。 字符串
kms:WrappingKeySpec 根据请求中 WrappingKeySpec 参数的值控制对 GetParametersForImport 操作的访问权限。 字符串