本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWS Key Management Service 的操作、资源和条件键
AWS 密钥管理服务(服务前缀:kms
)提供以下特定于服务的资源、操作和条件上下文密钥,供在IAM权限策略中使用。
参考:
-
了解如何配置该服务。
-
查看此服务可用的API操作列表。
-
了解如何使用IAM权限策略保护此服务及其资源。
AWS Key Management Service 定义的操作
您可以在IAM策略声明的Action
元素中指定以下操作。可以使用策略授予在 AWS中执行操作的权限。当您在策略中使用操作时,通常会允许或拒绝访问具有相同名称的API操作或CLI命令。但在某些情况下,单一动作可控制对多项操作的访问。还有某些操作需要多种不同的动作。
操作表的资源类型列指示每项操作是否支持资源级权限。如果该列没有任何值,您必须在策略语句的 Resource
元素中指定策略应用的所有资源(“*”)。如果该列包含资源类型,则可以在带有该操作ARN的语句中指定该类型的资源类型。如果操作具有一个或多个必需资源,则调用方必须具有使用这些资源来使用该操作的权限。必需资源在表中以星号 (*) 表示。如果您使用IAM策略中的Resource
元素限制资源访问权限,则必须为每种必需的资源类型包含ARN或模式。某些操作支持多种资源类型。如果资源类型是可选的(未指示为必需),则可以选择使用一种可选资源类型。
操作表的条件键列包括可以在策略语句的 Condition
元素中指定的键。有关与服务资源关联的条件键的更多信息,请参阅资源类型表的条件键列。
注意
资源条件键在资源类型表中列出。您可以在操作表的资源类型(* 为必需)列中找到应用于某项操作的资源类型的链接。资源类型表中的资源类型包括条件密钥列,这是应用于操作表中操作的资源条件键。
有关下表中各列的详细信息,请参阅操作表。
操作 | 描述 | 访问级别 | 资源类型(* 为必需) | 条件键 | 相关操作 |
---|---|---|---|---|---|
CancelKeyDeletion | 控制取消按计划删除 AWS KMS密钥的权限 | 写入 | |||
ConnectCustomKeyStore | 控制将自定义密钥存储与其关联的 AWS Cloud HSM 集群或外部密钥管理器连接或重新连接的权限 AWS | 写入 | |||
CreateAlias | 控制为 AWS KMS密钥创建别名的权限。别名是可选的友好名称,您可以将其与KMS密钥相关联 | 写入 | |||
CreateCustomKeyStore | 控制创建由 AWS Cloud HSM 集群或外部密钥管理器支持的自定义密钥存储库的权限 AWS | 写入 |
cloudhsm:DescribeClusters iam:CreateServiceLinkedRole |
||
CreateGrant | 控制向 AWS KMS密钥添加授权的权限。您可以使用授权来添加权限,而无需更改密钥策略或IAM策略 | 权限管理 | |||
CreateKey | 控制创建可用于保护数据 AWS KMS密钥和其他敏感信息的密钥的权限 | 写入 |
iam:CreateServiceLinkedRole kms:PutKeyPolicy kms:TagResource |
||
Decrypt | 控制对使用密钥加密的密文进行解密的权限 AWS KMS | 写入 | |||
kms:EncryptionContext:${EncryptionContextKey} |
|||||
DeleteAlias | 控制权限以删除别名。别名是可选的友好名称,您可以将其与 AWS KMS密钥相关联 | 写入 | |||
DeleteCustomKeyStore | 控制权限以删除自定义密钥存储 | 写入 | |||
DeleteImportedKeyMaterial | 控制删除您导入 AWS KMS密钥的加密材料的权限。此操作会使此密钥变得无法使用 | 写入 | |||
DeriveSharedSecret | 控制使用指定 AWS KMS密钥派生共享密钥的权限 | 写入 | |||
DescribeCustomKeyStores | 控制权限以查看有关账户和区域中的自定义密钥存储的详细信息 | 读取 | |||
DescribeKey | 控制查看 AWS KMS密钥详细信息的权限 | 读取 | |||
DisableKey | 控制禁用 AWS KMS密钥的权限,从而防止密钥用于加密操作 | 写入 | |||
DisableKeyRotation | 控制禁用客户托管 AWS KMS密钥自动轮换的权限 | 写入 | |||
DisconnectCustomKeyStore | 控制将自定义密钥存储与其关联的 AWS Cloud HSM 集群或外部密钥管理器断开连接的权限 AWS | 写入 | |||
EnableKey | 控制将 AWS KMS密钥状态更改为已启用的权限。这允许在加密操作中使用KMS密钥 | 写入 | |||
EnableKeyRotation | 控制允许自动轮换密钥中的加密材料的 AWS KMS权限 | 写入 | |||
Encrypt | 控制使用指定 AWS KMS密钥加密数据和数据密钥的权限 | 写入 | |||
GenerateDataKey | 控制使用 AWS KMS密钥生成数据密钥的权限。您可以使用数据密钥对外部的数据进行加密 AWS KMS | 写入 | |||
kms:EncryptionContext:${EncryptionContextKey} |
|||||
GenerateDataKeyPair | 控制使用 AWS KMS密钥生成数据密钥对的权限 | 写入 | |||
GenerateDataKeyPairWithoutPlaintext | 控制使用密钥生成数据 AWS KMS密钥对的权限。与 GenerateDataKeyPair 操作不同,此操作返回的不是纯文本副本的加密私钥 | 写入 | |||
GenerateDataKeyWithoutPlaintext | 控制使用 AWS KMS密钥生成数据密钥的权限。与 GenerateDataKey 操作不同,此操作返回的加密数据密钥没有纯文本版本的数据密钥 | 写入 | |||
GenerateMac | 控制使用 AWS KMS密钥生成消息身份验证码的权限 | 写入 | |||
GenerateRandom | 控制从中获取加密安全的随机字节字符串的权限 AWS KMS | 写入 | |||
GetKeyPolicy | 控制查看指定 AWS KMS密钥的密钥策略的权限 | 读取 | |||
GetKeyRotationStatus | 控制查看密钥轮换状态的 AWS KMS权限 | 读取 | |||
GetParametersForImport | 控制权限以获取将加密材料导入到客户托管密钥所需的数据,包括公有密钥和导入令牌 | 读取 | |||
GetPublicKey | 控制下载非对称 AWS KMS密钥的公钥的权限 | 读取 | |||
ImportKeyMaterial | 控制将加密材料导入密钥的 AWS KMS权限 | 写入 | |||
ListAliases | 控制权限以查看在账户中定义的别名。别名是可选的友好名称,您可以将其与 AWS KMS密钥相关联 | 列出 | |||
ListGrants | 控制查看 AWS KMS密钥所有授权的权限 | 列出 | |||
ListKeyPolicies | 控制查看密钥密钥策略名称的 AWS KMS权限 | 列出 | |||
ListKeyRotations | 控制查看按键已完成的按键轮换列表的 AWS KMS权限 | 列出 | |||
ListKeys | 控制查看账户中所有 AWS KMS密钥的密钥 ID 和 Amazon 资源名称 (ARN) 的权限 | 列出 | |||
ListResourceTags | 控制查看附加到 AWS KMS密钥的所有标签的权限 | 列出 | |||
ListRetirableGrants | 控制权限以查看其中指定的委托人为停用委托人的授权。其他委托人可能能够停用此授权,而且此委托人可能能够停用其他授权 | 列出 | |||
PutKeyPolicy | 控制替换指定 AWS KMS密钥的密钥策略的权限 | 权限管理 | |||
ReEncryptFrom | 控制解密数据的权限,这是解密和重新加密其中的数据的过程的一部分 AWS KMS | 写入 | |||
ReEncryptTo | 控制加密数据的权限,这是解密和重新加密其中的数据的过程的一部分 AWS KMS | 写入 | |||
ReplicateKey | 控制复制多区域主键的权限 | Write |
iam:CreateServiceLinkedRole kms:CreateKey kms:PutKeyPolicy kms:TagResource |
||
RetireGrant | 控制权限以停用授权。该 RetireGrant 操作通常由授权用户在完成授权允许他们执行的任务后调用 | 权限管理 | |||
RevokeGrant | 控制权限以撤销授权,这会对所有依赖于此授权的操作拒绝权限 | 权限管理 | |||
RotateKeyOnDemand | 控制调用按需轮换密钥中加密材料的 AWS KMS权限 | 写入 | |||
ScheduleKeyDeletion | 控制计划删除 AWS KMS密钥的权限 | 写入 | |||
Sign | 控制权限以便为消息生成数字签名 | Write | |||
SynchronizeMultiRegionKey[仅权限] | 控制对同步多区域密APIs钥的内部访问权限 | 写入 | |||
TagResource | 控制创建或更新附加到 AWS KMS密钥的标签的权限 | 标记 | |||
UntagResource | 控制删除附加到 AWS KMS密钥的标签的权限 | 标记 | |||
UpdateAlias | 控制将别名与其他 AWS KMS密钥关联的权限。别名是一个可选的友好名称,您可以将其与KMS密钥相关联 | 写入 | |||
UpdateCustomKeyStore | 控制权限以更改自定义密钥存储的属性 | 写入 | |||
UpdateKeyDescription | 控制删除或更改 AWS KMS密钥描述的权限 | 写入 | |||
UpdatePrimaryRegion | 控制更新多区域主键的主区域的权限 | 写入 | |||
Verify | 控制使用指定 AWS KMS密钥验证数字签名的权限 | 写入 | |||
VerifyMac | 控制使用 AWS KMS密钥验证消息身份验证码的权限 | 写入 | |||
AWS Key Management Service 定义的资源类型
以下资源类型由此服务定义,可以在IAM权限策略声明的Resource
元素中使用。操作表中的每个操作指定了可以使用该操作指定的资源类型。您也可以在策略中包含条件键,从而定义资源类型。这些键显示在资源类型表的最后一列。有关下表中各列的详细信息,请参阅资源类型表。
AWS Key Management Service 的条件键
AWS 密钥管理服务定义了可以在IAM策略Condition
元素中使用的以下条件密钥。您可以使用这些键进一步细化应用策略语句的条件。有关下表中各列的详细信息,请参阅条件键表。
要查看适用于所有服务的全局条件键,请参阅可用的全局条件键。
条件键 | 描述 | 类型 |
---|---|---|
aws:RequestTag/${TagKey} | 根据请求中标签的键和值筛选对指定 AWS KMS操作的访问权限 | String |
aws:ResourceTag/${TagKey} | 根据分配给 AWS KMS密钥的标签筛选对指定 AWS KMS操作的访问权限 | String |
aws:TagKeys | 根据请求中的标签键筛选对指定 AWS KMS操作的访问权限 | ArrayOfString |
kms:BypassPolicyLockoutSafetyCheck | 根据请求中 BypassPolicyLockoutSafetyCheck 参数的值筛选对 CreateKey 和 PutKeyPolicy 操作的访问权限 | 布尔型 |
kms:CallerAccount | 根据调用者的 AWS 账户 ID 筛选对指定 AWS KMS操作的访问权限。您可以使用此条件密钥在一份策略声明中允许或拒绝所有IAM用户和角色的访问权限 AWS 账户 | String |
kms:CustomerMasterKeySpec | kms:CustomerMasterKeySpec 条件键已被弃用。改为使用 kms:KeySpec 条件键 | String |
kms:CustomerMasterKeyUsage | kms:CustomerMasterKeyUsage 条件键已被弃用。改为使用 kms:KeyUsage 条件键 | String |
kms:DataKeyPairSpec | 根据请求中 KeyPairSpec 参数的值筛选访问权限 GenerateDataKeyPair 和 GenerateDataKeyPairWithoutPlaintext 操作 | String |
kms:EncryptionAlgorithm | 根据请求中的加密算法的值筛选对加密操作的访问权限 | String |
kms:EncryptionContext:${EncryptionContextKey} | 根据加密操作中的加密上下文筛选对称密 AWS KMS钥的访问权限。此条件可评估每个键值加密上下文对中的键和值 | String |
kms:EncryptionContextKeys | 根据加密操作中的加密上下文筛选对称密 AWS KMS钥的访问权限。此条件键仅评估每个键值加密上下文对中的键 | ArrayOfString |
kms:ExpirationModel | 根据请求中 ExpirationModel 参数的值筛选对 ImportKeyMaterial 操作的访问权限 | String |
kms:GrantConstraintType | 根据请求中的授权限制筛选对 CreateGrant 操作的访问权限 | String |
kms:GrantIsForAWSResource | 当请求来自指定 AWS 服务时,筛选对 CreateGrant 操作的访问权限 | 布尔型 |
kms:GrantOperations | 根据授权中的 CreateGrant 操作筛选对操作的访问权限 | ArrayOfString |
kms:GranteePrincipal | 根据拨款中的受赠人委托人筛选对 CreateGrant 操作的访问权限 | String |
kms:KeyAgreementAlgorithm | 根据请求中 KeyAgreementAlgorithm 参数的值筛选对 DeriveSharedSecret 操作的访问权限 | String |
kms:KeyOrigin | 根据API操作创建或使用的 AWS KMS密钥的 Origin 属性筛选对操作的访问权限。使用它来限定对KMS密钥授权的 CreateKey 操作或任何操作的授权 | String |
kms:KeySpec | 根据API操作创建或使用的 AWS KMS密钥的 KeySpec 属性筛选对操作的访问权限。使用它来限定对KMS密钥资源授权的 CreateKey 操作或任何操作的授权 | String |
kms:KeyUsage | 根据API操作创建或使用的 AWS KMS密钥的 KeyUsage 属性筛选对操作的访问权限。使用它来限定对KMS密钥资源授权的 CreateKey 操作或任何操作的授权 | String |
kms:MacAlgorithm | 根据请求中的 MacAlgorithm 参数筛选对 GenerateMac 和 VerifyMac 操作的访问权限 | String |
kms:MessageType | 根据请求中 MessageType 参数的值筛选对 “签名和验证” 操作的访问权限 | String |
kms:MultiRegion | 根据API操作创建或使用的 AWS KMS密钥的 MultiRegion 属性筛选对操作的访问权限。使用它来限定对KMS密钥资源授权的 CreateKey 操作或任何操作的授权 | 布尔型 |
kms:MultiRegionKeyType | 根据API操作创建或使用的 AWS KMS密钥的 MultiRegionKeyType 属性筛选对操作的访问权限。使用它来限定对KMS密钥资源授权的 CreateKey 操作或任何操作的授权 | String |
kms:PrimaryRegion | 根据请求中 PrimaryRegion 参数的值筛选对 UpdatePrimaryRegion 操作的访问权限 | String |
kms:ReEncryptOnSameKey | 当 ReEncrypt 操作使用的密钥与 Encrypt 操作相同的 AWS KMS密钥时,会筛选对该操作的访问权限 | 布尔型 |
kms:RecipientAttestation:ImageSha384 | 根据请求中认证文档中的图像哈希筛选对 Decrypt DeriveSharedSecret GenerateDataKey GenerateDataKeyPair、、、和 GenerateRandom 操作的访问权限 | String |
kms:RecipientAttestation:PCR | 根据请求中认证文档中的平台配置寄存 GenerateDataKey器 (PCRs) 筛选对 Decrypt 和 GenerateRandom 操作的访问权限 | String |
kms:ReplicaRegion | 根据请求中 ReplicaRegion 参数的值筛选对 ReplicateKey 操作的访问权限 | String |
kms:RequestAlias | GetPublicKey 根据请求中的别名筛选对加密操作 DescribeKey、和的访问权限 | String |
kms:ResourceAliases | 根据与密钥关联的别名筛选对指定 AWS KMS操作的 AWS KMS访问权限 | ArrayOfString |
kms:RetiringPrincipal | 根据补助金中即将退休的本金筛选对 CreateGrant 操作的访问权限 | String |
kms:RotationPeriodInDays | 根据请求中 RotationPeriodInDays 参数的值筛选对 EnableKeyRotation 操作的访问权限 | 数值 |
kms:ScheduleKeyDeletionPendingWindowInDays | 根据请求中 PendingWindowInDays 参数的值筛选对 ScheduleKeyDeletion 操作的访问权限 | 数值 |
kms:SigningAlgorithm | 根据请求中的签名算法筛选对 Sign 和 Verify 操作的访问权限 | String |
kms:ValidTo | 根据请求中 ValidTo 参数的值筛选对 ImportKeyMaterial 操作的访问权限。您可以使用此条件键以允许用户仅当在指定的日期到期时才能导入密钥材料 | Date |
kms:ViaService | 当委托人代表委托人提出的请求来自指定 AWS 服务时,筛选访问权限 | String |
kms:WrappingAlgorithm | 根据请求中 WrappingAlgorithm 参数的值筛选对 GetParametersForImport 操作的访问权限 | String |
kms:WrappingKeySpec | 根据请求中 WrappingKeySpec 参数的值筛选对 GetParametersForImport 操作的访问权限 | String |