删除具有导入密钥材料的 KMS 密钥
导入的密钥材料允许您在生成的加密密钥下保护您的 Amazon 资源。以下概述说明了如何将密钥材料导入 Amazon KMS。要了解该过程中每个步骤的更多详细信息,请参阅相应主题。
-
创建不具有密钥材料的 KMS 密钥 - 源必须是
EXTERNAL。EXTERNAL的密钥源表明该密钥专为导入的密钥材料而设计,并且阻止 Amazon KMS 为 KMS 密钥生成密钥材料。在后面的步骤中,您会将自己的密钥材料导入此 KMS 密钥中。您导入的密钥材料必须与关联的 Amazon KMS 密钥的密钥规范兼容。有关兼容性的更多信息,请参阅导入密钥材料的要求。
-
下载包装公有密钥和导入令牌 – 在完成步骤 1 后,请下载公有密钥和导入令牌。这些项目可以在密钥材料导入 Amazon KMS 的过程中保护您的密钥材料。
在此步骤中,您将选择 RSA 包装密钥的类型(“密钥规范”)以及用于加密向 Amazon KMS 传输的传输中数据的包装算法。每次导入或重新导入相同的密钥材料时,您可以选择不同的包装密钥规范和包装密钥算法。
-
加密密钥材料 – 使用在步骤 2 中下载的包装公有密钥加密您在自己的系统上创建的密钥材料。
-
导入密钥材料 – 上传您在步骤 3 中创建的已加密的密钥材料以及您在步骤 2 中下载的导入令牌。
在此阶段,您可以设置可选的过期时间。当导入的密钥材料过期后,Amazon KMS 会将其删除,并且 KMS 密钥将变为不可用。要继续使用该 KMS 密钥,您必须重新导入相同的密钥材料。
导入操作成功完成后,KMS 密钥的密钥状态将从
PendingImport变为Enabled。现在,您可以在加密操作中使用 KMS 密钥。
Amazon KMS 在您创建 KMS 密钥、下载包装公有密钥和导入令牌和导入密钥材料时将一个条目记录在您的 Amazon CloudTrail 日志。当您删除导入的密钥材料或 Amazon KMS 删除过期的密钥材料时,Amazon KMS 也会记录条目。
导入密钥材料的权限
要使用导入的密钥材料创建和管理 KMS 密钥,用户需要在此过程中执行操作的权限。在您创建 KMS 密钥时,您可以在密钥策略中提供 kms:GetParametersForImport、kms:ImportKeyMaterial 和 kms:DeleteImportedKeyMaterial 权限。在 Amazon KMS 控制台中,当您使用外部密钥材料来源创建密钥时,会自动为密钥管理员添加这些权限。
若要使用导入的密钥材料创建 KMS 密钥,委托人需要以下权限。
-
kms:CreateKey(IAM policy)
-
要将此权限限制为具有导入密钥材料的 KMS 密钥,请使用值为
EXTERNAL的 kms:KeyOrigin 策略条件。{ "Sid": "CreateKMSKeysWithoutKeyMaterial", "Effect": "Allow", "Resource": "*", "Action": "kms:CreateKey", "Condition": { "StringEquals": { "kms:KeyOrigin": "EXTERNAL" } } }
-
-
kms:GetParametersForImport(密钥策略或 IAM policy)
-
若要将此权限限制到使用特定包装算法和包装密钥规范的请求,请使用 kms:WrappingAlgorithm 和 kms:WrappingKeySpec 策略条件。
-
-
kms:ImportKeyMaterial(密钥策略或 IAM policy)
-
要允许或禁止过期的密钥材料并控制过期日期,请使用 kms:ExpirationModel 和 kms:ValidTo 策略条件。
-
要重新导入导入的密钥材质,委托人需要 kms:GetParametersForImport 和 kms:ImportKeyMaterial 权限。
要删除导入的关键材料,委托人需要 kms:DeleteImportedKeyMaterial 权限。
例如,要授予示例使用导入的密钥材料管理 KMS 密钥所有方面的 KMSAdminRole 权限,请在 KMS 密钥的密钥策略中加入如下所示的密钥策略声明。
{ "Sid": "Manage KMS keys with imported key material", "Effect": "Allow", "Resource": "*", "Principal": { "AWS": "arn:aws:iam::111122223333:role/KMSAdminRole" }, "Action": [ "kms:GetParametersForImport", "kms:ImportKeyMaterial", "kms:DeleteImportedKeyMaterial" ] }
导入密钥材料的要求
您导入的密钥材料必须与相关 KMS 密钥的密钥规范兼容。对于非对称密钥对,仅导入密钥对的私有密钥。Amazon KMS 从私有密钥派生公有密钥。
对于具有导入密钥材料的 KMS 密钥,Amazon KMS 支持以下密钥规范。
-
对称加密密钥
-
密钥规范:
-
SYMMETRIC_DEFAULT。
-
-
要求:
-
256 位(32 字节)的二进制数据。
-
在中国区域,必须是 128 位(16 字节)的二进制数据。
-
-
-
HMAC 密钥
-
密钥规范:
-
HMAC_224
-
HMAC_256
-
HMAC_384
-
HMAC_512
-
-
要求:
-
HMAC 密钥材料必须符合 RFC 2104
。 -
密钥长度必须至少为密钥规范指定的长度。最大密钥长度为 1024 位。
-
如果密钥材料的长度超过 1024 位,则可以对密钥材料进行哈希处理,然后导入哈希输出。哈希算法必须与您要创建的 HMAC KMS 密钥的密钥规范相匹配。
-
-
示例:
-
要将 2048 位的密钥材料导入 HMAC_256 密钥,请先计算 2048 位密钥材料的 SHA-256 哈希值,然后将生成的 256 位哈希输出导入 KMS 密钥。
-
-
有效的密钥长度:
-
HMAC_224:224–1024 位
-
HMAC_256:256–1024 位
-
HMAC_384:384–1024 位
-
HMAC_512:512–1024 位
-
-
-
RSA 非对称私有密钥
-
椭圆曲线非对称私有密钥
-
密钥规范:
-
ECC_NIST_P256 (secp256r1)
-
ECC_NIST_P384 (secp384r1)
-
ECC_NIST_P521 (secp521r1)
-
ECC_SECG_P256K1 (secp256k1)
-
-
要求:
-
-
ML-DSA 密钥
-
密钥规范:
-
ML_DSA_44
-
ML_DSA_65
-
ML_DSA_87
-
重要
不支持导入 ML-DSA 密钥。
-
-
SM2 非对称私有密钥(仅限中国区域)
-
要求:
-
您导入的 SM2 非对称私有密钥必须是符合 GM/T 0003 的密钥对的一部分。
-
曲线:SM2。
-
参数:仅限命名曲线(拒绝带有显式参数的 SM2 密钥)。
-
公共点坐标:可以是压缩坐标、未压缩坐标或投影坐标。
-
非对称密钥材料必须为 BER 编码或 DER 编码,采用符合 RFC 5208
的公有密钥密码术标准(PKCS)#8 格式。
-
-