隨機產生一個資料密鑰,通過您指定的主要金鑰(CMK)和公開金鑰加密後,返回CMK加密資料密鑰的密文和公開金鑰加密資料密鑰的密文。
介面說明
注意事項
-
RAM 使用者或 RAM 角色調用該 OpenAPI 需要被授與權限策略詳情,請參見存取控制。
-
本介面可以通過共用網關或專屬網關調用。詳細介紹,請參見阿里雲 SDK。
共用網關:通過公網、VPC 網域名稱訪問 KMS,該方式需要開啟公網開關。具體操作,請參見通過公網訪問 KMS 執行個體中的密鑰。
專屬網關:通過 KMS 私網地址(
<YOUR_KMS_INSTANCE_ID>.cryptoservice.kms.aliyuncs.com)訪問 KMS。
詳細說明
建議您使用以下方式將資料密鑰匯入到密碼模組中,用於資料加密和資料解密:
1.調用 GenerateAndExportDataKey 介面,獲得 KMS 祕密金鑰加密和指定公開金鑰加密的資料密鑰。
2.將 KMS 祕密金鑰加密資料密鑰得到的密文儲存在 KMS,或者雲資料庫等儲存服務中,用於密鑰的備份和恢複。
3.將公開金鑰加密資料密鑰的密文,匯入到公開金鑰對應私密金鑰所在的密碼模組,實現 KMS 到密碼模組的密鑰分發,使用資料金鑰組相應的資料進行加解密運算。
在請求中指定的 KMS 密鑰,僅會被用作資料密鑰的加密,和資料密鑰的產生沒有關係。KMS 也不會記錄或儲存隨機產生的資料密鑰,您需要負責記錄資料密鑰或資料密鑰的密文。
調試
您可以在OpenAPI Explorer中直接運行該介面,免去您計算簽名的困擾。運行成功後,OpenAPI Explorer可以自動產生SDK程式碼範例。
調試
授權資訊
請求參數
|
名稱 |
類型 |
必填 |
描述 |
樣本值 |
| KeyId |
string |
是 |
密鑰的 ID,也可以指定為密鑰別名或密鑰資源名稱(ARN)。關於別名的詳細介紹,請參見管理密鑰別名。 說明
訪問其他阿里雲帳號下的密鑰時,必須輸入密鑰 ARN。密鑰 ARN 的格式為 |
1234abcd-12ab-34cd-56ef-12345678**** |
| KeySpec |
string |
否 |
指定產生的資料密鑰的長度,取值:
說明
建議使用 KeySpec 或者 NumberOfBytes 來指定資料密鑰長度。如果兩者都不指定,KMS 產生 256 位的資料密鑰;如果兩者都被指定,KMS 會忽略 KeySpec 參數。 |
AES_256 |
| NumberOfBytes |
integer |
否 |
指定產生的資料密鑰的長度。 取值:1~1024。 單位:位元組。 |
32 |
| EncryptionContext |
object |
否 |
key/value 對的 JSON 字串,如果指定了該參數,則在解密或者使用其他密鑰轉加密時需要提供同樣的參數,詳情請參見 EncryptionContext 說明。 |
{"Example":"Example"} |
| PublicKeyBlob |
string |
是 |
Base 64 編碼的公開金鑰。 |
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAndKfC2ReLL2+y8a0+ZBBeAft/uBYo86GZiYJuflqgUzKxpyuvlo3uQkBv6b+nx+0tz8g8v7GhpPWMSW5L9mNHYsvYFsa7jTxsYdt17yj6GlUHPuMIs8hr5qbwl38IHU1iIa7nYWwE2fb3ePOvLDACRJVgGpU0yxioW80d2QD+9aU4jF5dlAahcfgsNzo2CXzCUc1+xbmNuq7Rp+H9VJB9dyYOwqnW3RhOLBo21FzpORapf0UiRlrHRpk1V6ez+aE1dofaYh/9bh0m6ioxj7j5hpZbWccuEZTMBKd+cbuBkRhJzc6Tti6qwZbDiu4fUwbZS0Tqpuo1UadiyxMW******** |
| WrappingKeySpec |
string |
是 |
PublicKeyBlob 密鑰的類型。密鑰類型詳情,請參見非對稱金鑰簡介。
|
RSA_2048 |
| WrappingAlgorithm |
string |
是 |
使用 PublicKeyBlob 所指定的公開金鑰,加密(Wrap)資料密鑰時的密碼編譯演算法。演算法詳情,請參見 AsymmetricDecrypt 。
|
RSAES_OAEP_SHA_256 |
| DryRun |
string |
否 |
是否開啟 DryRun 模式。
DryRun 模式用於測試 API 呼叫,驗證您是否具有相應資源的許可權,以及請求參數是否配置正確。DryRun 模式開啟後,KMS 會始終返回失敗並提示失敗原因。失敗原因包含如下:
|
false |
返回參數
|
名稱 |
類型 |
描述 |
樣本值 |
|
object |
|||
| KeyVersionId |
string |
用於加密明文的密鑰版本標識符。是指定 KMS 密鑰的主要版本。 |
2ab1a983-7072-4bbc-a582-584b5bd8**** |
| KeyId |
string |
金鑰識別碼。如果請求中的 KeyId 參數使用的是密鑰別名、密鑰 ARN,在響應中也會返回金鑰識別碼。 |
599fa825-17de-417e-9554-bb032cc6**** |
| CiphertextBlob |
string |
資料密鑰被指定 KMS 密鑰的主要版本加密後的密文。 |
ODZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmS7FmDBBQ0BkKsQrtRnidtPwirmDcS0ZuJCU41xxAAWk4Z8qsADfbV0b+i6kQmlvj79dJdGOvtX69Uycs901qOjop4bTS**** |
| RequestId |
string |
本次調用請求的 ID,是由阿里雲為該請求產生的唯一識別碼,可用於排查和定位問題。 |
7021b6ec-4be7-4d3c-8a68-1e85d4d515a0 |
| ExportedDataKey |
string |
公開金鑰加密保護匯出的資料密鑰。 |
BQKP+1zK6+ZEMxTP5qaVzcsgXtWplYBKm0NXdSnB5FzliFxE1bSiu4dnEIlca2JpeH7yz1/S6fed630H+hIH6DoM25fTLNcKj+mFB0Xnh9m2+HN59Mn4qyTfcUeadnfCXSWcGBouhXFwcdd2rJ3n337bzTf4jm659gZu3L0i6PLuxM9p7mqdwO0cKJPfGVfhnfMz+f4alMg79WB/NNyE2lyX7/qxvV49ObNrrJbKSFiz8Djocaf0IESNLMbfYI5bXjWkJlX92DQbKhibtQW8ZOJ//ZC6t0AWcUoKL6QDm/dg5koQalcleRinpB+QadFm894sLbVZ9+N4GVs******* |
樣本
正常返回樣本
JSON格式
{
"KeyVersionId": "2ab1a983-7072-4bbc-a582-584b5bd8****",
"KeyId": "599fa825-17de-417e-9554-bb032cc6****",
"CiphertextBlob": "ODZhOWVmZDktM2QxNi00ODk0LWJkNGYtMWZjNDNmM2YyYWJmS7FmDBBQ0BkKsQrtRnidtPwirmDcS0ZuJCU41xxAAWk4Z8qsADfbV0b+i6kQmlvj79dJdGOvtX69Uycs901qOjop4bTS****",
"RequestId": "7021b6ec-4be7-4d3c-8a68-1e85d4d515a0",
"ExportedDataKey": "BQKP+1zK6+ZEMxTP5qaVzcsgXtWplYBKm0NXdSnB5FzliFxE1bSiu4dnEIlca2JpeH7yz1/S6fed630H+hIH6DoM25fTLNcKj+mFB0Xnh9m2+HN59Mn4qyTfcUeadnfCXSWcGBouhXFwcdd2rJ3n337bzTf4jm659gZu3L0i6PLuxM9p7mqdwO0cKJPfGVfhnfMz+f4alMg79WB/NNyE2lyX7/qxvV49ObNrrJbKSFiz8Djocaf0IESNLMbfYI5bXjWkJlX92DQbKhibtQW8ZOJ//ZC6t0AWcUoKL6QDm/dg5koQalcleRinpB+QadFm894sLbVZ9+N4GVs*******"
}
錯誤碼
|
HTTP status code |
錯誤碼 |
錯誤資訊 |
描述 |
|---|---|---|---|
| 400 | InvalidParameter | The specified parameter is not valid. | 參數非法。 |
| 500 | InternalFailure | InternalFailure | |
| 404 | Forbidden.KeyNotFound | The specified Key is not found. | 指定的密鑰不存在。 |
| 404 | InvalidAccessKeyId.NotFound | The Access Key ID provided does not exist in our records. |
訪問錯誤中心查看更多錯誤碼。
變更歷史
更多資訊,參考變更詳情。