Invoke-AzKeyVaultKeyOperation
使用儲存在密鑰保存庫或受控 hsm 中的指定金鑰來執行“Encrypt”、“Decrypt”、“Wrap” 或 “Unwrap” 之類的作業。
語法
Invoke-AzKeyVaultKeyOperation
[-Version <String>]
-Operation <String>
-Algorithm <String>
[-Value <SecureString>]
[-ByteArrayValue <Byte[]>]
[-Name] <String>
[-VaultName] <String>
[-DefaultProfile <IAzureContextContainer>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-AzKeyVaultKeyOperation
[-Version <String>]
-Operation <String>
-Algorithm <String>
[-Value <SecureString>]
[-ByteArrayValue <Byte[]>]
[-HsmName] <String>
[-Name] <String>
[-DefaultProfile <IAzureContextContainer>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-AzKeyVaultKeyOperation
[-Version <String>]
-Operation <String>
-Algorithm <String>
[-Value <SecureString>]
[-ByteArrayValue <Byte[]>]
[-InputObject] <PSKeyVaultKeyIdentityItem>
[-DefaultProfile <IAzureContextContainer>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Invoke-AzKeyVaultKeyOperation Cmdlet 支援
- 使用加密金鑰來加密任意序列的位元組。
- 解密加密數據的單一區塊。
- 使用指定的金鑰包裝對稱金鑰。
- 使用最初用於包裝該金鑰的指定金鑰解除包裝對稱金鑰。
範例
範例 1:使用加密金鑰加密位元組陣列
$byteArray = [Byte[]]@(58, 219)
$encryptedData = Invoke-AzKeyVaultKeyOperation -Operation Encrypt -Algorithm RSA1_5 -VaultName test-kv -Name test-key -ByteArrayValue $byteArray
$encryptedData
KeyId : https://bez-kv.vault.azure.net/keys/bez-key/c96ce0fb18de446c9f4b911b686988af
RawResult : {21, 39, 82, 56…}
Algorithm : RSA1_5
$byteArray
使用儲存在 test-kv 中的 test-key 進行加密。
範例 2:使用加密金鑰解密位元組陣列
$decryptedData = Invoke-AzKeyVaultKeyOperation -Operation Decrypt -Algorithm RSA1_5 -VaultName test-kv -Name test-key -ByteArrayValue $encryptedData.RawResult
$decryptedData
KeyId : https://bez-kv.vault.azure.net/keys/bez-key/c96ce0fb18de446c9f4b911b686988af
RawResult : {58, 219}
Algorithm : RSA1_5
使用 $encryptedData.RawResult
儲存在 test-kv 中的 test-key 解密。 $decryptedData.RawResult
與$byteArray
相同,這是原始數據。
範例 3:使用加密金鑰加密純文字
$encryptedData = Invoke-AzKeyVaultKeyOperation -Operation Encrypt -Algorithm RSA1_5 -VaultName test-kv -Name test-key -Value (ConvertTo-SecureString -String "test" -AsPlainText -Force)
$encryptedData
KeyId : https://test-kv.vault.azure.net/keys/test-key/bd8b77352a2443d4983bd70e9f660bc6
RawResult : {58, 219, 6, 236…}
Algorithm : RSA1_5
使用儲存在 test-kv 中的 test-key 加密字串 “test”。 RawResult
是位元組數位格式的加密結果,其中 [System.Convert]::ToBase64String($encryptedData.RawResult) 等於 $encryptedData.Result。
範例 4:將加密的數據解密為純文字
$decryptedData = Invoke-AzKeyVaultKeyOperation -Operation Decrypt -Algorithm RSA1_5 -VaultName test-kv -Name test-key -ByteArrayValue $encryptedData.RawResult
$decryptedData
KeyId : https://bez-kv.vault.azure.net/keys/bez-key/c96ce0fb18de446c9f4b911b686988af
RawResult : $byteArray
Algorithm : RSA1_5
解密使用儲存在 test-kv 中的 test-key 加密的加密數據。 $decryptedData.Result
是 test
。 RawResult
是位元組數位格式的解密結果,其中 [System.Text.UTF8Encoding]::UTF8。GetString($decryptedData.RawResult) 等於 $decryptedData.Result。
範例 5:使用指定的金鑰包裝對稱金鑰
$wrappedResult = Invoke-AzKeyVaultKeyOperation -Operation Wrap -Algorithm RSA1_5 -VaultName test-kv -Name test-key -Value (ConvertTo-SecureString -String "ovQIlbB0DgWhZA7sgkPxbg9H-Ly-VlNGPSgGrrZvlIo" -AsPlainText -Force)
$wrappedResult | Format-List
KeyId : https://test-kv.vault.azure.net/keys/test-key/375cdf20252043b79c8ca0c57b6c7679
RawResult : {58, 219, 6, 236…}
Algorithm : RSA1_5
使用儲存在test-kv 中名為test-key的密鑰包裝對稱金鑰。 會 Result
包裝Base64字串格式的結果。
範例 6:使用指定的金鑰解除包裝對稱金鑰
Invoke-AzKeyVaultKeyOperation -Operation Unwrap -Algorithm RSA1_5 -VaultName test-kv -Name test-key -Value (ConvertTo-SecureString -String $result.Result -AsPlainText -Force)
KeyId : https://test-kv.vault.azure.net/keys/test-key/375cdf20252043b79c8ca0c57b6c7679
RawResult : {58, 219, 6, 236…}
Algorithm : RSA1_5
使用儲存在test-kv中的指定金鑰 test-key 解除包裝對稱密鑰。 Result
是純字串。
參數
-Algorithm
演算法標識碼
類型: | String |
別名: | EncryptionAlgorithm, WrapAlgorithm |
Position: | Named |
預設值: | None |
必要: | True |
接受管線輸入: | False |
接受萬用字元: | False |
-ByteArrayValue
要以位元組數位格式運作的值。
類型: | Byte[] |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Confirm
執行 Cmdlet 之前先提示您確認。
類型: | SwitchParameter |
別名: | cf |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-DefaultProfile
用於與 Azure 通訊的認證、帳戶、租用戶和訂用帳戶。
類型: | IAzureContextContainer |
別名: | AzContext, AzureRmContext, AzureCredential |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-HsmName
HSM 名稱。
類型: | String |
Position: | 0 |
預設值: | None |
必要: | True |
接受管線輸入: | False |
接受萬用字元: | False |
-InputObject
Key 物件
類型: | PSKeyVaultKeyIdentityItem |
別名: | Key |
Position: | 0 |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |
-Name
索引鍵名稱。
類型: | String |
別名: | KeyName |
Position: | 1 |
預設值: | None |
必要: | True |
接受管線輸入: | False |
接受萬用字元: | False |
-Operation
演算法標識碼
類型: | String |
Position: | Named |
預設值: | None |
必要: | True |
接受管線輸入: | False |
接受萬用字元: | False |
-Value
要操作的值。 此參數會以UTF-8編碼方式轉換成位元組陣列。 如果您的值無法由UTF-8編碼,請使用參數 ByteArrayValue 作為替代方式。
類型: | SecureString |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-VaultName
保存庫名稱。
類型: | String |
Position: | 0 |
預設值: | None |
必要: | True |
接受管線輸入: | False |
接受萬用字元: | False |
-Version
金鑰版本。
類型: | String |
別名: | KeyVersion |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-WhatIf
顯示執行 Cmdlet 後會發生的情況。 未執行 Cmdlet。
類型: | SwitchParameter |
別名: | wi |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |