Compartir a través de


Invoke-AzKeyVaultKeyOperation

Realiza una operación como "Encrypt", "Decrypt", "Wrap" o "Unwrap" mediante una clave especificada almacenada en un almacén de claves o hsm administrado.

Syntax

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

El cmdlet Invoke-AzKeyVaultKeyOperation admite

  1. Cifrar una secuencia arbitraria de bytes mediante una clave de cifrado.
  2. Descifrado de un único bloque de datos cifrados.
  3. Ajuste de una clave simétrica mediante una clave especificada.
  4. Desencapsular una clave simétrica mediante la clave especificada que se usó inicialmente para encapsular esa clave.

Ejemplos

Ejemplo 1: Cifra la matriz de bytes mediante una clave de cifrado

$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 Cifra el uso de la clave de prueba almacenada en test-kv.

Ejemplo 2: Descifra la matriz de bytes mediante una clave de cifrado

$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

Descifra $encryptedData.RawResult mediante la clave de prueba almacenada en test-kv. $decryptedData.RawResult es el mismo con $byteArray, que es datos originales.

Ejemplo 3: Cifra el texto sin formato mediante una clave de cifrado

$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

Cifra la cadena "test" mediante la clave de prueba almacenada en test-kv. RawResult es el resultado cifrado en formato de matriz de bytes, donde [System.Convert]::ToBase64String($encryptedData.RawResult) es igual a $encryptedData.Result.

Ejemplo 4: Descifrar datos cifrados en texto sin formato

$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

Descifra los datos cifrados que se cifran mediante la clave de prueba almacenada en test-kv. El valor de $decryptedData.Result es test. RawResult es el resultado descifrado en formato de matriz de bytes, donde [System.Text.UTF8Encoding]::UTF8. GetString($decryptedData.RawResult) es igual a $decryptedData.Result.

Ejemplo 5: Encapsula una clave simétrica mediante una clave especificada

$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

Ajusta una clave simétrica mediante la clave denominada clave de prueba almacenada en test-kv. El Result resultado se ajusta en formato de cadena Base64.

Ejemplo 6: Desencapsula una clave simétrica mediante una clave especificada

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

Desencapsula una clave simétrica mediante una clave de prueba de clave especificada almacenada en test-kv. Result es una cadena sin formato.

Parámetros

-Algorithm

Identificador de algoritmo

Tipo:String
Aliases:EncryptionAlgorithm, WrapAlgorithm
Position:Named
valor predeterminado:None
Requerido:True
Accept pipeline input:False
Accept wildcard characters:False

-ByteArrayValue

Valor que se va a operar en formato de matriz de bytes.

Tipo:Byte[]
Position:Named
valor predeterminado:None
Requerido:False
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

Le solicita su confirmación antes de ejecutar el cmdlet.

Tipo:SwitchParameter
Aliases:cf
Position:Named
valor predeterminado:None
Requerido:False
Accept pipeline input:False
Accept wildcard characters:False

-DefaultProfile

Credenciales, cuenta, inquilino y suscripción usados para la comunicación con Azure.

Tipo:IAzureContextContainer
Aliases:AzContext, AzureRmContext, AzureCredential
Position:Named
valor predeterminado:None
Requerido:False
Accept pipeline input:False
Accept wildcard characters:False

-HsmName

Nombre de HSM.

Tipo:String
Position:0
valor predeterminado:None
Requerido:True
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Objeto de clave

Tipo:PSKeyVaultKeyIdentityItem
Aliases:Key
Position:0
valor predeterminado:None
Requerido:True
Accept pipeline input:True
Accept wildcard characters:False

-Name

Nombre de clave.

Tipo:String
Aliases:KeyName
Position:1
valor predeterminado:None
Requerido:True
Accept pipeline input:False
Accept wildcard characters:False

-Operation

Identificador de algoritmo

Tipo:String
Position:Named
valor predeterminado:None
Requerido:True
Accept pipeline input:False
Accept wildcard characters:False

-Value

Valor que se va a operar. Este parámetro se convertirá en matriz de bytes de forma de codificación UTF-8. Si UTF-8 no puede codificar el valor, use el parámetro ByteArrayValue como alternativa.

Tipo:SecureString
Position:Named
valor predeterminado:None
Requerido:False
Accept pipeline input:False
Accept wildcard characters:False

-VaultName

Nombre del almacén.

Tipo:String
Position:0
valor predeterminado:None
Requerido:True
Accept pipeline input:False
Accept wildcard characters:False

-Version

Versión de la clave.

Tipo:String
Aliases:KeyVersion
Position:Named
valor predeterminado:None
Requerido:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

Muestra lo que sucedería si se ejecutara el cmdlet. El cmdlet no se ejecuta.

Tipo:SwitchParameter
Aliases:wi
Position:Named
valor predeterminado:None
Requerido:False
Accept pipeline input:False
Accept wildcard characters:False

Entradas

PSKeyVaultKeyIdentityItem

Salidas

PSKeyOperationResult