你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Invoke-AzKeyVaultKeyOperation

使用存储在密钥保管库或托管 hsm 中的指定密钥执行“Encrypt”、“Decrypt”、“Wrap”或“Unwrap”等作。

语法

ByVaultName (默认值)

Invoke-AzKeyVaultKeyOperation
    [-Name] <String>
    [-VaultName] <String>
    -Operation <String>
    -Algorithm <String>
    -ByteArrayValue <Byte[]>
    [-Version <String>]
    [-DefaultProfile <IAzureContextContainer>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

ByHsmName

Invoke-AzKeyVaultKeyOperation
    [-HsmName] <String>
    [-Name] <String>
    -Operation <String>
    -Algorithm <String>
    -ByteArrayValue <Byte[]>
    [-Version <String>]
    [-DefaultProfile <IAzureContextContainer>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

ByKeyInputObject

Invoke-AzKeyVaultKeyOperation
    [-InputObject] <PSKeyVaultKeyIdentityItem>
    -Operation <String>
    -Algorithm <String>
    -ByteArrayValue <Byte[]>
    [-Version <String>]
    [-DefaultProfile <IAzureContextContainer>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

说明

Invoke-AzKeyVaultKeyOperation cmdlet 支持

  1. 使用加密密钥加密任意字节序列。
  2. 解密单个加密数据块。
  3. 使用指定的密钥包装对称密钥。
  4. 使用最初用于包装该密钥的指定密钥解包对称密钥。

示例

示例 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 中存储的测试密钥进行加密。

示例 2:使用加密密钥解密字节数组

$encryptedData = [pscustomobject]@{ RawResult = [byte[]]@(58,219) }
$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 中的测试密钥进行解密。 与 $decryptedData.RawResult 原始数据相同 $byteArray

示例 3:使用加密密钥加密纯文本

$plainText = "test"
$byteArray = [system.Text.Encoding]::UTF8.GetBytes($plainText)
$encryptedData = Invoke-AzKeyVaultKeyOperation -Operation Encrypt -Algorithm RSA1_5 -VaultName test-kv -Name test-key -ByteArrayValue $byteArray
$encryptedData
KeyId     : https://test-kv.vault.azure.net/keys/test-key/bd8b77352a2443d4983bd70e9f660bc6
RawResult : {58, 219, 6, 236…}
Algorithm : RSA1_5

使用 test-kv 中存储的测试密钥加密字符串“test”。 RawResult是字节数组格式的加密结果。

示例 4:将加密数据解密为纯文本

$decryptedData = Invoke-AzKeyVaultKeyOperation -Operation Decrypt -Algorithm RSA1_5 -VaultName test-kv -Name test-key -ByteArrayValue $encryptedData.RawResult
$plainText = [system.Text.Encoding]::UTF8.GetString($decryptedData.RawResult)
$plainText
test

解密使用 test-kv 中存储的测试密钥加密的加密数据。 这是 RawResult 字节数组格式的解密结果。

示例 5:使用指定的密钥包装对称密钥

$key = "ovQIlbB0DgWhZA7sgkPxbg9H-Ly-VlNGPSgGrrZvlIo"
$byteArray = [system.Text.Encoding]::UTF8.GetBytes($key)
$wrappedResult = Invoke-AzKeyVaultKeyOperation -Operation Wrap -Algorithm RSA1_5 -VaultName test-kv -Name test-key -ByteArrayValue $byteArray
$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 的密钥包装对称密钥。 包装 RawResult 的字节数组格式。

示例 6:使用指定的密钥解包对称密钥

$wrappedResult = [pscustomobject]@{ RawResult = [byte[]]@(58,219) }
$unwrappedResult = Invoke-AzKeyVaultKeyOperation -Operation Unwrap -Algorithm RSA1_5 -VaultName test-kv -Name test-key -ByteArrayValue $wrappedResult.RawResult
$key = [system.Text.Encoding]::UTF8.GetString($unwrappedResult.RawResult)
$key
ovQIlbB0DgWhZA7sgkPxbg9H-Ly-VlNGPSgGrrZvlIo

使用存储在 test-kv 中的指定密钥测试密钥解包对称密钥。 以 RawResult 字节数组格式解包结果。

参数

-Algorithm

算法标识符

参数属性

类型:String
默认值:None
支持通配符:False
不显示:False
别名:EncryptionAlgorithm, WrapAlgorithm

参数集

(All)
Position:Named
必需:True
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-ByteArrayValue

要以字节数组格式作的值。

参数属性

类型:

Byte[]

默认值:None
支持通配符:False
不显示:False

参数集

(All)
Position:Named
必需:True
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-Confirm

在运行 cmdlet 之前,提示你进行确认。

参数属性

类型:SwitchParameter
默认值:None
支持通配符:False
不显示:False
别名:Cf

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-DefaultProfile

用于与Azure通信的凭据、帐户、租户和订阅。

参数属性

类型:IAzureContextContainer
默认值:None
支持通配符:False
不显示:False
别名:AzContext, AzureRmContext, AzureCredential

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-HsmName

HSM 名称。

参数属性

类型:String
默认值:None
支持通配符:False
不显示:False

参数集

ByHsmName
Position:0
必需:True
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-InputObject

Key 对象

参数属性

类型:PSKeyVaultKeyIdentityItem
默认值:None
支持通配符:False
不显示:False
别名:Key

参数集

ByKeyInputObject
Position:0
必需:True
来自管道的值:True
来自管道的值(按属性名称):False
来自剩余参数的值:False

-Name

密钥名称。

参数属性

类型:String
默认值:None
支持通配符:False
不显示:False
别名:键名

参数集

ByVaultName
Position:1
必需:True
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False
ByHsmName
Position:1
必需:True
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-Operation

算法标识符

参数属性

类型:String
默认值:None
支持通配符:False
不显示:False

参数集

(All)
Position:Named
必需:True
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-VaultName

保管库名称。

参数属性

类型:String
默认值:None
支持通配符:False
不显示:False

参数集

ByVaultName
Position:0
必需:True
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-Version

密钥版本。

参数属性

类型:String
默认值:None
支持通配符:False
不显示:False
别名:KeyVersion

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

-WhatIf

显示 cmdlet 运行时会发生什么情况。 命令脚本未运行。

参数属性

类型:SwitchParameter
默认值:None
支持通配符:False
不显示:False
别名:无线

参数集

(All)
Position:Named
必需:False
来自管道的值:False
来自管道的值(按属性名称):False
来自剩余参数的值:False

CommonParameters

此 cmdlet 支持通用参数:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 有关详细信息,请参阅 about_CommonParameters

输入

PSKeyVaultKeyIdentityItem

输出

PSKeyOperationResult