AWS Key Management Service
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

AWS KMS API 权限:操作和资源参考

操作和资源表旨在帮助您定义密钥策略IAM 策略中的访问控制。这些列提供以下信息:

  • API 操作(权限)列出每个 AWS KMS API 操作及允许执行该操作的对应操作(权限)。您可以在策略的 Action 元素中指定操作。

  • 策略类型指示权限是否可在密钥策略或 IAM 策略中使用。如果类型为密钥策略,则您可以在密钥策略中明确指定权限。或者,如果密钥策略包含启用 IAM 策略的策略语句,则可以在 IAM 策略中指定权限。如果类型为 IAM 策略,则只能在 IAM 策略中指定权限。

  • 资源列出允许对其执行操作的资源。要在 IAM 策略中指定资源,请在 Resource 元素中键入 Amazon 资源名称 (ARN)。由于密钥策略仅适用于其已附加到的 CMK,因此其 Resource 元素的值始终为 "*"

    每种资源类型均与您用于表示资源的一个 ARN 关联。

    CMK ARN

    当资源是 CMK 时,您使用 CMK ARN 表示它。

    arn:aws:kms:AWS_region:AWS_account_ID:key/CMK_key_ID

    别名 ARN

    当资源是别名时,您使用别名 ARN 表示它。

    arn:aws:kms:AWS_region:AWS_account_ID:alias/alias_name

  • AWS KMS 条件键列出可用于控制对操作的访问的 AWS KMS 条件键。您可以在策略的 Condition 元素中指定条件。有关更多信息,请参阅AWS KMS 条件键。此列还包含 AWS 全局条件键,这些键受 AWS KMS 支持但不受所有 AWS 服务支持。

如果看到表右上角处有扩展箭头 (),则您可以在新窗口中打开该表。要关闭窗口,请选择右下角处的关闭按钮 (X)。

AWS KMS API 操作和权限

API 操作 (权限) 策略类型 资源(适用于 IAM 策略) AWS KMS 条件键

CancelKeyDeletion

kms:CancelKeyDeletion

密钥策略

CMK

kms:CallerAccount

kms:ViaService

ConnectCustomKeyStore

kms:ConnectCustomKeyStore

IAM 策略 * kms:CallerAccount

CreateAlias

kms:CreateAlias

要使用此操作,调用方需要对以下两个资源具有 kms:CreateAlias 权限:

  • 别名(在 IAM 策略中)

  • CMK(在密钥策略中)

IAM 策略(适用于别名)

别名

无(控制对别名的访问时)

密钥策略 (适用于 CMK)

CMK

kms:CallerAccount

kms:ViaService

CreateCustomKeyStore

kms:CreateCustomKeyStore

IAM 策略 * kms:CallerAccount

CreateGrant

kms:CreateGrant

密钥策略

CMK

kms:CallerAccount

kms:EncryptionContext:

kms:EncryptionContextKeys

kms:GrantConstraintType

kms:GranteePrincipal

kms:GrantIsForAWSResource

kms:GrantOperations

kms:RetiringPrincipal

kms:ViaService

CreateKey

kms:CreateKey

IAM 策略

*

kms:BypassPolicyLockoutSafetyCheck

kms:KeyOrigin

Decrypt

kms:Decrypt

密钥策略

CMK

kms:CallerAccount

kms:EncryptionContext:

kms:EncryptionContextKeys

kms:ViaService

DeleteAlias

kms:DeleteAlias

要使用此操作,调用方需要对以下两个资源具有 kms:DeleteAlias 权限:

  • 别名(在 IAM 策略中)

  • CMK(在密钥策略中)

IAM 策略(适用于别名)

别名

无(控制对别名的访问时)

密钥策略 (适用于 CMK)

CMK

kms:CallerAccount

kms:ViaService

DeleteCustomKeyStore

kms:DeleteCustomKeyStore

IAM 策略 * kms:CallerAccount

DeleteImportedKeyMaterial

kms:DeleteImportedKeyMaterial

密钥策略

CMK

kms:CallerAccount

kms:ViaService

DescribeCustomKeyStores

kms:DescribeCustomKeyStores

IAM 策略 * kms:CallerAccount

DescribeKey

kms:DescribeKey

密钥策略

CMK

kms:CallerAccount

kms:ViaService

DisableKey

kms:DisableKey

密钥策略

CMK

kms:CallerAccount

kms:ViaService

DisableKeyRotation

kms:DisableKeyRotation

密钥策略

CMK

kms:CallerAccount

kms:ViaService

DisconnectCustomKeyStore

kms:DisconnectCustomKeyStore

IAM 策略 * kms:CallerAccount

EnableKey

kms:EnableKey

密钥策略

CMK

kms:CallerAccount

kms:ViaService

EnableKeyRotation

kms:EnableKeyRotation

密钥策略

CMK

kms:CallerAccount

kms:ViaService

Encrypt

kms:Encrypt

密钥策略

CMK

kms:CallerAccount

kms:EncryptionContext:

kms:EncryptionContextKeys

kms:ViaService

GenerateDataKey

kms:GenerateDataKey

密钥策略

CMK

kms:CallerAccount

kms:EncryptionContext:

kms:EncryptionContextKeys

kms:ViaService

GenerateDataKeyWithoutPlaintext

kms:GenerateDataKeyWithoutPlaintext

密钥策略

CMK

kms:CallerAccount

kms:EncryptionContext:

kms:EncryptionContextKeys

kms:ViaService

GenerateRandom

kms:GenerateRandom

IAM 策略

*

GetKeyPolicy

kms:GetKeyPolicy

密钥策略

CMK

kms:CallerAccount

kms:ViaService

GetKeyRotationStatus

kms:GetKeyRotationStatus

密钥策略

CMK

kms:CallerAccount

kms:ViaService

GetParametersForImport

kms:GetParametersForImport

密钥策略

CMK

kms:CallerAccount

kms:ViaService

kms:WrappingAlgorithm

kms:WrappingKeySpec

ImportKeyMaterial

kms:ImportKeyMaterial

密钥策略

CMK

kms:CallerAccount

kms:ExpirationModel

kms:ValidTo

kms:ViaService

ListAliases

kms:ListAliases

IAM 策略

*

ListGrants

kms:ListGrants

密钥策略

CMK

kms:CallerAccount

kms:ViaService

ListKeyPolicies

kms:ListKeyPolicies

密钥策略

CMK

kms:CallerAccount

kms:ViaService

ListKeys

kms:ListKeys

IAM 策略

*

ListResourceTags

kms:ListResourceTags

密钥策略

CMK

kms:CallerAccount

kms:ViaService

ListRetirableGrants

kms:ListRetirableGrants

IAM 策略

*

PutKeyPolicy

kms:PutKeyPolicy

密钥策略

CMK

kms:BypassPolicyLockoutSafetyCheck

kms:CallerAccount

kms:ViaService

ReEncrypt

kms:ReEncryptFrom

kms:ReEncryptTo

要使用此操作,调用方需要对以下两个 CMK 具有权限:

  • CMK 上的 kms:ReEncryptFrom,用于解密

  • CMK 上的 kms:ReEncryptTo,用于加密

密钥策略

CMK

kms:CallerAccount

kms:EncryptionContext:

kms:EncryptionContextKeys

kms:ReEncryptOnSameKey

kms:ViaService

RetireGrant

停用授权的权限在授权中指定。您无法在一个策略中控制对该操作的访问。有关更多信息,请参阅 AWS Key Management Service API Reference 中的 RetireGrant

不适用

不适用

不适用

RevokeGrant

kms:RevokeGrant

密钥策略

CMK

kms:CallerAccount

kms:ViaService

ScheduleKeyDeletion

kms:ScheduleKeyDeletion

密钥策略

CMK

kms:CallerAccount

kms:ViaService

TagResource

kms:TagResource

密钥策略

CMK

kms:CallerAccount

kms:ViaService

aws:RequestTagAWS全局条件键

aws:TagKeys(AWS 全局条件键)

UntagResource

kms:UntagResource

密钥策略

CMK

kms:CallerAccount

kms:ViaService

aws:RequestTagAWS全局条件键

aws:TagKeys(AWS 全局条件键)

UpdateAlias

kms:UpdateAlias

要使用此操作,调用方需要对以下三个资源具有 kms:UpdateAlias 权限:

  • 别名

  • 该别名当前指向的 CMK

  • UpdateAlias 请求中指定的 CMK

IAM 策略(适用于别名)

别名

无(控制对别名的访问时)

密钥策略(适用于 CMK)

CMK

kms:CallerAccount

kms:ViaService

UpdateCustomKeyStore

kms:UpdateCustomKeyStore

IAM 策略 * kms:CallerAccount

UpdateKeyDescription

kms:UpdateKeyDescription

密钥策略

CMK

kms:CallerAccount

kms:ViaService