Поделиться через


Invoke-AzKeyVaultKeyOperation

Выполняет такие операции, как Encrypt, Decrypt, Wrap или Unwrap, с помощью указанного ключа, хранящегося в хранилище ключей или управляемом hsm.

Синтаксис

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

Описание

Командлет Invoke-AzKeyVaultKeyOperation поддерживает

  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. Расшифровка массива байтов с помощью ключа шифрования

$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" с помощью тестового ключа, хранящегося в test-kv. Это 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-key, хранящегося в test-kv. Он RawResult упаковывается в формат массива байтов.

Пример 6. Распаковка симметричного ключа с помощью указанного ключа

$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
Aliases:EncryptionAlgorithm, WrapAlgorithm
Position:Named
значение по умолчанию:None
Обязательно:True
Accept pipeline input:False
Accept wildcard characters:False

-ByteArrayValue

Значение, которое будет работать в формате массива байтов.

Тип:Byte[]
Position:Named
значение по умолчанию:None
Обязательно:False
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

Запрос подтверждения перед выполнением командлета.

Тип:SwitchParameter
Aliases:cf
Position:Named
значение по умолчанию:None
Обязательно:False
Accept pipeline input:False
Accept wildcard characters:False

-DefaultProfile

Учетные данные, учетная запись, клиент и подписка, используемые для взаимодействия с Azure.

Тип:IAzureContextContainer
Aliases:AzContext, AzureRmContext, AzureCredential
Position:Named
значение по умолчанию:None
Обязательно:False
Accept pipeline input:False
Accept wildcard characters:False

-HsmName

Имя HSM.

Тип:String
Position:0
значение по умолчанию:None
Обязательно:True
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Ключевой объект

Тип:PSKeyVaultKeyIdentityItem
Aliases:Key
Position:0
значение по умолчанию:None
Обязательно:True
Accept pipeline input:True
Accept wildcard characters:False

-Name

Имя ключа.

Тип:String
Aliases:KeyName
Position:1
значение по умолчанию:None
Обязательно:True
Accept pipeline input:False
Accept wildcard characters:False

-Operation

Идентификатор алгоритма

Тип:String
Position:Named
значение по умолчанию:None
Обязательно:True
Accept pipeline input:False
Accept wildcard characters:False

-VaultName

Имя хранилища.

Тип:String
Position:0
значение по умолчанию:None
Обязательно:True
Accept pipeline input:False
Accept wildcard characters:False

-Version

Ключевая версия.

Тип:String
Aliases:KeyVersion
Position:Named
значение по умолчанию:None
Обязательно:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

Показывает, что произойдет при запуске командлета. Командлет не выполняется.

Тип:SwitchParameter
Aliases:wi
Position:Named
значение по умолчанию:None
Обязательно:False
Accept pipeline input:False
Accept wildcard characters:False

Входные данные

PSKeyVaultKeyIdentityItem

Выходные данные

PSKeyOperationResult