Udostępnij za pośrednictwem


Invoke-AzKeyVaultKeyOperation

Wykonuje operację, na przykład "Encrypt", "Decrypt", "Wrap" lub "Unwrap" przy użyciu określonego klucza przechowywanego w magazynie kluczy lub zarządzanym module hsm.

Składnia

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>]

Opis

Polecenie cmdlet Invoke-AzKeyVaultKeyOperation obsługuje

  1. Szyfrowanie dowolnej sekwencji bajtów przy użyciu klucza szyfrowania.
  2. Odszyfrowywanie pojedynczego bloku zaszyfrowanych danych.
  3. Zawijanie klucza symetrycznego przy użyciu określonego klucza.
  4. Rozpakuj klucz symetryczny przy użyciu określonego klucza, który został początkowo użyty do opakowywania tego klucza.

Przykłady

Przykład 1. Szyfrowanie tablicy bajtów przy użyciu klucza szyfrowania

$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

Szyfruje $byteArray przy użyciu klucza testowego przechowywanego w narzędziu test-kv.

Przykład 2. Odszyfrowywanie tablicy bajtów przy użyciu klucza szyfrowania

$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

Odszyfrowuje $encryptedData.RawResult przy użyciu klucza testowego przechowywanego w narzędziu test-kv. Element jest taki sam jak w $decryptedData.RawResult przypadku $byteArrayelementu , który jest oryginalnymi danymi.

Przykład 3. Szyfrowanie zwykłego tekstu przy użyciu klucza szyfrowania

$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

Szyfruje ciąg "test" przy użyciu klucza testowego przechowywanego w narzędziu test-kv. Jest RawResult to zaszyfrowany wynik w formacie tablicy bajtów, gdzie [System.Convert]::ToBase64String($encryptedData.RawResult) równa się $encryptedData.Result.

Przykład 4. Odszyfrowywanie zaszyfrowanych danych w postaci zwykłego tekstu

$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

Odszyfrowuje zaszyfrowane dane szyfrowane przy użyciu klucza testowego przechowywanego w narzędziu test-kv. Wartość $decryptedData.Result to test. Jest RawResult to wynik odszyfrowany w formacie tablicy bajtów, gdzie [System.Text.UTF8Encoding]::UTF8. GetString($decryptedData.RawResult) równa się $decryptedData.Result.

Przykład 5. Opakowuje klucz symetryczny przy użyciu określonego klucza

$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

Opakowuje klucz symetryczny przy użyciu klucza o nazwie test-key przechowywanego w narzędziu test-kv. Wynik Result jest opakowany w formacie ciągu Base64.

Przykład 6. Odpakowywanie klucza symetrycznego przy użyciu określonego klucza

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

Odpakowuje klucz symetryczny przy użyciu określonego klucza test-key przechowywanego w pliku test-kv. Jest Result to zwykły ciąg.

Parametry

-Algorithm

Identyfikator algorytmu

Typ:String
Aliasy:EncryptionAlgorithm, WrapAlgorithm
Position:Named
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-ByteArrayValue

Wartość, która ma być obsługiwana w formacie tablicy bajtowej.

Typ:Byte[]
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Confirm

Monituje o potwierdzenie przed uruchomieniem polecenia cmdlet.

Typ:SwitchParameter
Aliasy:cf
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-DefaultProfile

Poświadczenia, konto, dzierżawa i subskrypcja używane do komunikacji z platformą Azure.

Typ:IAzureContextContainer
Aliasy:AzContext, AzureRmContext, AzureCredential
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-HsmName

Nazwa modułu HSM.

Typ:String
Position:0
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-InputObject

Obiekt klucza

Typ:PSKeyVaultKeyIdentityItem
Aliasy:Key
Position:0
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-Name

Nazwa klucza.

Typ:String
Aliasy:KeyName
Position:1
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Operation

Identyfikator algorytmu

Typ:String
Position:Named
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Value

Wartość, która ma być obsługiwana. Ten parametr zostanie przekonwertowany na tablicę bajtów w sposób kodowania UTF-8. Jeśli nie można kodować wartości za pomocą protokołu UTF-8, użyj parametru ByteArrayValue jako alternatywy.

Typ:SecureString
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-VaultName

Nazwa magazynu.

Typ:String
Position:0
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Version

Wersja klucza.

Typ:String
Aliasy:KeyVersion
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-WhatIf

Pokazuje, co się stanie po uruchomieniu polecenia cmdlet. Polecenie cmdlet nie zostało uruchomione.

Typ:SwitchParameter
Aliasy:wi
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

Dane wejściowe

PSKeyVaultKeyIdentityItem

Dane wyjściowe

PSKeyOperationResult