创建一个主密钥。
接口说明
-
RAM 用户或 RAM 角色调用该 OpenAPI 需要被授予的权限策略详情,请参见访问控制。
-
阿里云 KMS 支持常见的对称密钥规格和非对称密钥规格。具体内容,请参见密钥管理类型和密钥规格。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

授权信息
请求参数
名称 |
类型 |
必填 |
描述 |
示例值 |
Description |
string |
否 |
密钥的描述。 |
key description example |
KeyUsage |
string |
否 |
密钥的用途。取值:
默认值:如果密钥支持签名验签,默认值为 SIGN/VERIFY,否则默认值为 ENCRYPT/DECRYPT。 |
ENCRYPT/DECRYPT |
Origin |
string |
否 |
密钥材料来源。取值:
说明
|
Aliyun_KMS |
ProtectionLevel |
string |
否 |
您无需输入本参数,KMS 会为您的密钥设置合适的保护级别。 密钥的保护级别,取值:
说明
|
SOFTWARE |
EnableAutomaticRotation |
boolean |
否 |
是否开启密钥自动轮转。取值:
仅当密钥所属的密钥管理类型支持自动轮转时,该参数值有效。具体内容,请参见密钥轮转。 |
true |
RotationInterval |
string |
否 |
自动轮转的时间周期。格式为 integer[unit],其中 integer 表示时间长度,unit 表示时间单位。合法的 unit 单位为:d(天)、h(小时)、m(分钟)、s(秒)。7d 或者 604800s 均表示 7 天的周期。
说明
当 EnableAutomaticRotation 参数为 true 时,必须设置此参数。 |
365d |
KeySpec |
string |
否 |
密钥规格,不同密钥管理类型的取值不同。关于密钥规格、遵循的标准、密钥算法的详细介绍,请参见密钥管理类型和密钥规格。 说明
不输入参数值时,密钥规格默认为 Aliyun_AES_256。 |
Aliyun_AES_256 |
DKMSInstanceId |
string |
否 |
KMS 实例的实例 ID。 说明
当您需要为 KMS 实例创建密钥时,必须指定本参数。当您需要创建默认密钥(主密钥)时,不需要指定本参数。 |
kst-bjj62d8f5e0sgtx8h**** |
Tags |
string |
否 |
为密钥绑定标签。每个标签由一个键值对(Key:Value)组成,包含标签键(Key)、标签值(Value)。 最多输入 20 个标签。输入多个标签时,格式为 每个标签键(Key)和每个标签值(Value)最多支持 128 个字符,可以包含英文大小写字母、数字、正斜线(/)、反斜线(\)、下划线(_)、短划线(-)、半角句号(.)、加号(+)、等于号(=)、半角冒号(:)、字符 at(@)。 说明
标签键不能以 aliyun 和 acs:开头。 |
[{"TagKey":"disk-encryption","TagValue":"true"}] |
Policy |
string |
否 |
密钥策略的具体内容,JSON 格式。最大长度为 32768 个字节。 关于密钥策略的详细介绍,请参见密钥策略概述。不输入该参数时,使用默认凭据策略。 密钥策略内容包含:
密钥策略格式为:
Statement 详细介绍:
说明
授权给其他阿里云账号下的 RAM 用户、RAM 角色后,您仍需在访问控制 RAM 侧,使用该 RAM 用户、RAM 角色的阿里云账号为其授权使用该密钥,RAM 用户、RAM 角色才能使用该密钥。集体操作,请参见密钥管理服务自定义权限策略参考、为 RAM 用户授权、为 RAM 角色授权。 |
{"Statement":[{"Action":["kms:*"],"Effect":"Allow","Principal":{"RAM":["acs:ram::119285303511****:*"]},"Resource":["*"],"Sid":"kms default key policy"},{"Action":["kms:List*","kms:Describe*","kms:Create*","kms:Enable*","kms:Disable*","kms:Get*","kms:Set*","kms:Update*","kms:Delete*","kms:Cancel*","kms:TagResource","kms:UntagResource","kms:ImportKeyMaterial","kms:ScheduleKeyDeletion"],"Effect":"Allow","Principal":{"RAM":["acs:ram::119285303511****:user/for_test_policy"]},"Resource":["*"]}],"Version":"1"} |
KeyStorageMechanism |
string |
否 |
密钥存储位置,仅当 DKMSInstanceId 输入的是 KMS 硬件密钥管理实例时生效。取值:
|
HsmInternal |
关于公共请求参数的详情,请参见公共参数。
返回参数
名称 |
类型 |
描述 |
示例值 |
object |
|||
RequestId |
string |
本次调用请求的 ID,是由阿里云为该请求生成的唯一标识符,可用于排查和定位问题。 |
381D5D33-BB8F-395F-8EE4-AE3BB4B523C4 |
KeyMetadata |
object |
密钥的元数据。 |
|
KeyId |
string |
密钥的全局唯一标识符。 |
key-hzz62f1cb66fa42qo**** |
NextRotationDate |
string |
密钥下一次轮转的时间。 仅当 AutomaticRotation 参数值为 Enabled 或 Suspended 时,才返回该值。 |
2024-03-25T10:00:00Z |
KeyState |
string |
密钥的状态。 |
Enabled |
RotationInterval |
string |
密钥自动轮转的周期。单位为秒,格式为整数值后加上字符 s。例如:7 天的轮转周期为 604800s。 仅当 AutomaticRotation 参数值为 Enabled 或 Suspended 时,才返回该值。 |
31536000s |
Arn |
string |
密钥的 ARN。 |
acs:kms:cn-qingdao:154035569884****:key/key-hzz62f1cb66fa42qo**** |
Creator |
string |
密钥的创建者。 |
154035569884**** |
LastRotationDate |
string |
最近一次轮转的时间(UTC)。 |
2023-03-25T10:00:00Z |
DeleteDate |
string |
密钥的预计删除时间。 更多信息,请参见 ScheduleKeyDeletion 。 仅当 KeyState 值为 PendingDeletion 时,才返回该参数。 |
2025-03-25T10:00:00Z |
PrimaryKeyVersion |
string |
密钥的当前主版本标识符。 |
7ce1d081-06cb-42e6-aab6-5c5de030**** |
Description |
string |
密钥的描述。 |
key description example |
KeySpec |
string |
密钥的规格。 |
Aliyun_AES_256 |
Origin |
string |
密钥材料来源。 |
Aliyun_KMS |
MaterialExpireTime |
string |
密钥材料的过期时间(UTC)。 |
2025-03-25T10:00:00Z |
AutomaticRotation |
string |
是否开启了密钥自动轮转,取值:
|
Enabled |
ProtectionLevel |
string |
密钥的保护级别。 |
SOFTWARE |
KeyUsage |
string |
密钥的用途。 |
ENCRYPT/DECRYPT |
CreationDate |
string |
密钥创建的日期和时间(UTC)。 |
2024-03-25T10:00:00Z |
DKMSInstanceId |
string |
KMS 实例的实例 ID。 |
kst-bjj62d8f5e0sgtx8h**** |
示例
正常返回示例
JSON
格式
{
"RequestId": "381D5D33-BB8F-395F-8EE4-AE3BB4B523C4",
"KeyMetadata": {
"KeyId": "key-hzz62f1cb66fa42qo****",
"NextRotationDate": "2024-03-25T10:00:00Z",
"KeyState": "Enabled",
"RotationInterval": "31536000s",
"Arn": "acs:kms:cn-qingdao:154035569884****:key/key-hzz62f1cb66fa42qo****",
"Creator": "154035569884****",
"LastRotationDate": "2023-03-25T10:00:00Z",
"DeleteDate": "2025-03-25T10:00:00Z",
"PrimaryKeyVersion": "7ce1d081-06cb-42e6-aab6-5c5de030****",
"Description": "key description example",
"KeySpec": "Aliyun_AES_256",
"Origin": "Aliyun_KMS",
"MaterialExpireTime": "2025-03-25T10:00:00Z",
"AutomaticRotation": "Enabled",
"ProtectionLevel": "SOFTWARE",
"KeyUsage": "ENCRYPT/DECRYPT",
"CreationDate": "2024-03-25T10:00:00Z",
"DKMSInstanceId": "kst-bjj62d8f5e0sgtx8h****"
}
}
错误码
HTTP status code |
错误码 |
错误信息 |
描述 |
---|---|---|---|
400 | Rejected.LimitExceeded | The request was rejected because user create resource limit was exceeded | 创建的资源达到上限,请求被拒绝。 |
400 | InvalidParameter | The specified parameter is not valid. | 参数非法。 |
400 | UnsupportedOperation | This action is not supported. | 不支持的操作 |
400 | Forbidden.NoPermission | This operation is forbidden by permission system. | 该操作无权限 |
400 | Rejected.ShareQuotaExceedLimit | Instance Share Quota Exceed Limit. | 实例份额配额超过限制。 |
500 | InternalFailure | Internal Failure | 内部错误 |
403 | Forbidden.DKMSInstanceNotFound | The specified DKMS Instance is not found. | 您指定的专属kms实例未找到。 |
503 | SerivceUnvailableTemporary | Service Unvailable Temporary | 服务临时不可用。 |
访问错误中心查看更多错误码。
变更历史
更多信息,参考变更详情。