全部產品
Search
文件中心

Key Management Service:CreateKey - 建立一個主要金鑰

更新時間:Aug 21, 2025

建立一個主要金鑰。

介面說明

  • RAM 使用者或 RAM 角色調用該 OpenAPI 需要被授與權限策略詳情,請參見存取控制

  • 阿里雲 KMS 支援常見的對稱金鑰規格和非對稱金鑰規格。具體內容,請參見密鑰管理類型和密鑰規格

調試

您可以在OpenAPI Explorer中直接運行該介面,免去您計算簽名的困擾。運行成功後,OpenAPI Explorer可以自動產生SDK程式碼範例。

調試

授權資訊

當前API暫無授權資訊透出。

請求參數

名稱

類型

必填

描述

樣本值

Description

string

密鑰的描述。
長度為 0~8192 個字元。

key description example

KeyUsage

string

密鑰的用途。取值:

  • ENCRYPT/DECRYPT:資料加密和解密。

  • SIGN/VERIFY:產生和驗證數位簽章。

預設值:如果密鑰支援簽名驗簽,預設值為 SIGN/VERIFY,否則預設值為 ENCRYPT/DECRYPT。

ENCRYPT/DECRYPT

Origin

string

密鑰材料來源。取值:

  • Aliyun_KMS(預設值):密鑰材料由阿里雲 KMS 產生。

  • EXTERNAL:密鑰材料由您自行匯入。

說明
  • 請注意區分大小寫。

Aliyun_KMS

ProtectionLevel

string

您無需輸入本參數,KMS 會為您的密鑰設定合適的保護層級。

密鑰的保護層級,取值:

  • SOFTWARE

  • HSM

說明
  • 如果指定了 DKMSInstanceId:本參數輸入後不生效。當執行個體為 KMS 軟體密鑰管理執行個體時,密鑰保護層級為 SOFTWARE;當執行個體為 KMS 硬體密鑰管理執行個體時,密鑰保護層級為 HSM。

  • 如果未指定 DKMSInstanceId:建議您不輸入,由 KMS 設定。當 KMS 在該地區有託管密碼機時,本參數將設定 HSM,否則為 SOFTWARE。更多資訊,請參見託管密碼機概述

SOFTWARE

EnableAutomaticRotation

boolean

是否開啟密鑰自動輪轉。取值:

  • true:開啟

  • false(預設值):不開啟

僅當密鑰所屬的密鑰管理類型支援自動輪轉時,該參數值有效。具體內容,請參見密鑰輪轉

true

RotationInterval

string

自動輪轉的時間周期。格式為 integer[unit],其中 integer 表示時間長度,unit 表示時間單位。合法的 unit 單位為:d(天)、h(小時)、m(分鐘)、s(秒)。7d 或者 604800s 均表示 7 天的周期。

  • 當密鑰為預設密鑰時,取值為 365 天。

  • 當密鑰為軟體密鑰時,取值為 7~365 天。

  • 當密鑰為硬體密鑰時,不支援自動輪轉。

說明

當 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 個標籤。輸入多個標籤時,格式為[{"TagKey":"key1","TagValue":"value1"},{"TagKey":"key2","TagValue":"value2"},...]

每個標籤鍵(Key)和每個標籤值(Value)最多支援 128 個字元,可以包含英文大小寫字母、數字、正斜線(/)、反斜線(\)、底線(_)、短劃線(-)、半形句號(.)、加號(+)、等號(=)、半形冒號(:)、字元 at(@)。

說明

標籤鍵不能以 aliyun 和 acs:開頭。

[{"TagKey":"disk-encryption","TagValue":"true"}]

Policy

string

密鑰策略的具體內容,JSON 格式。最大長度為 32768 個位元組。 關於密鑰策略的詳細介紹,請參見密鑰策略概述。不輸入該參數時,使用預設憑據策略。

密鑰策略內容包含:

  • Version:密鑰策略的版本,目前版本僅支援設定為 1。

  • Statement:密鑰策略的語句,每個密鑰策略包含一個或多個語句。

密鑰策略格式為:

{
  "Version": "1",
  "Statement": [
    {
      "Sid": "Enable RAM User Permissions",
      "Effect": "Allow",
      "Principal": {
        "RAM": ["acs:ram::112890462****:root"]
      },
      "Action": [
        "kms:*"
      ],
      "Resource": [
        "*"
      ],
      "Condition": {
        "condition operator": {
          "condition key": "condition value"
        }
      }
    }
  ]
}

Statement 詳細介紹:

  • Sid:可選,表示自訂的語句標識符。內容長度小於等於 128 字元,支援的字元為:大寫英文字母(A-Z)、小寫英文字母(a-z)、數字(0-9),特殊字元( _/+=.@-)。

  • Effect:必選,表示是允許還是拒絕該策略語句中的許可權。取值為:Allow 或 Deny。

  • Principal:必選,表示權限原則的授權主體,支援設定為當前阿里雲帳號(即密鑰所屬的阿里雲帳號),當前阿里雲帳號下的 RAM 使用者、RAM 角色,其他阿里雲帳號下的 RAM 使用者、RAM 角色。

  • Action:必選,表示要允許或拒絕的 API 操作,內容必須以"kms:"開頭。操作許可權列表的範圍,請參見密鑰策略概述。如果您設定了列表外的操作,設定後也不會生效。

  • Resource:必選,取值只能是*,表示本 KMS 密鑰。

  • Condition:可選,表示授權生效的限制條件。通過使用條件可以評估 API 請求的上下文,以確定策略語句是否適用。格式為"Condition": {"condition operator": {"condition key": "condition value"}}。詳細介紹,請參見密鑰策略概述

說明

授權給其他阿里雲帳號下的 RAM 使用者、RAM 角色後,您仍需在存取控制 RAM 側,使用該 RAM 使用者、RAM 角色的阿里雲帳號為其授權使用該密鑰,RAM 使用者、RAM 角色才能使用該密鑰。集體操作,請參見Key Management Service自訂權限原則參考為 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(預設):金鑰儲存區在密碼機中,不支援輪轉。

  • HsmEncryptedDatabase:金鑰儲存區在資料庫中。
    • 對稱金鑰:支援輪轉。

    • 非對稱金鑰:不支援輪轉。

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

密鑰的狀態。
更多資訊,請參見使用者主要金鑰的狀態對 API 呼叫的影響

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:自動輪轉處於開啟狀態。

  • Disabled:自動輪轉處於未開啟狀態。

  • Suspended:自動輪轉被暫停執行。

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 服務臨時不可用。

訪問錯誤中心查看更多錯誤碼。

變更歷史

更多資訊,參考變更詳情