Add-AzureKeyVaultKey

Tworzy klucz w magazynie kluczy lub importuje klucz do magazynu kluczy.

Ostrzeżenie

Moduł AzureRM PowerShell został oficjalnie przestarzały od 29 lutego 2024 r. Zaleca się migrowanie użytkowników z modułu AzureRM do modułu Az programu PowerShell w celu zapewnienia ciągłej obsługi i aktualizacji.

Mimo że moduł AzureRM może nadal działać, nie jest już utrzymywany ani obsługiwany, umieszczając wszelkie dalsze zastosowania według uznania i ryzyka użytkownika. Zapoznaj się z naszymi zasobami migracji, aby uzyskać wskazówki dotyczące przejścia do modułu Az.

Składnia

Add-AzureKeyVaultKey
   [-VaultName] <String>
   [-Name] <String>
   -Destination <String>
   [-Disable]
   [-KeyOps <String[]>]
   [-Expires <DateTime>]
   [-NotBefore <DateTime>]
   [-Tag <Hashtable>]
   [-Size <Int32>]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Add-AzureKeyVaultKey
   [-VaultName] <String>
   [-Name] <String>
   -KeyFilePath <String>
   [-KeyFilePassword <SecureString>]
   [-Destination <String>]
   [-Disable]
   [-KeyOps <String[]>]
   [-Expires <DateTime>]
   [-NotBefore <DateTime>]
   [-Tag <Hashtable>]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Add-AzureKeyVaultKey
   [-InputObject] <PSKeyVault>
   [-Name] <String>
   -Destination <String>
   [-Disable]
   [-KeyOps <String[]>]
   [-Expires <DateTime>]
   [-NotBefore <DateTime>]
   [-Tag <Hashtable>]
   [-Size <Int32>]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Add-AzureKeyVaultKey
   [-InputObject] <PSKeyVault>
   [-Name] <String>
   -KeyFilePath <String>
   [-KeyFilePassword <SecureString>]
   [-Destination <String>]
   [-Disable]
   [-KeyOps <String[]>]
   [-Expires <DateTime>]
   [-NotBefore <DateTime>]
   [-Tag <Hashtable>]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Add-AzureKeyVaultKey
   [-ResourceId] <String>
   [-Name] <String>
   -Destination <String>
   [-Disable]
   [-KeyOps <String[]>]
   [-Expires <DateTime>]
   [-NotBefore <DateTime>]
   [-Tag <Hashtable>]
   [-Size <Int32>]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Add-AzureKeyVaultKey
   [-ResourceId] <String>
   [-Name] <String>
   -KeyFilePath <String>
   [-KeyFilePassword <SecureString>]
   [-Destination <String>]
   [-Disable]
   [-KeyOps <String[]>]
   [-Expires <DateTime>]
   [-NotBefore <DateTime>]
   [-Tag <Hashtable>]
   [-DefaultProfile <IAzureContextContainer>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Opis

Polecenie cmdlet Add-AzureKeyVaultKey tworzy klucz w magazynie kluczy w usłudze Azure Key Vault lub importuje klucz do magazynu kluczy. Użyj tego polecenia cmdlet, aby dodać klucze przy użyciu dowolnej z następujących metod:

  • Utwórz klucz w sprzętowym module zabezpieczeń (HSM) w usłudze Key Vault.
  • Utwórz klucz w oprogramowaniu w usłudze Key Vault.
  • Zaimportuj klucz z własnego sprzętowego modułu zabezpieczeń (HSM) do modułów HSM w usłudze Key Vault.
  • Zaimportuj klucz z pliku pfx na komputerze.
  • Zaimportuj klucz z pliku pfx na komputerze do sprzętowych modułów zabezpieczeń (HSM) w usłudze Key Vault. W przypadku dowolnej z tych operacji można podać atrybuty klucza lub zaakceptować ustawienia domyślne. Jeśli tworzysz lub importujesz klucz o takiej samej nazwie jak istniejący klucz w magazynie kluczy, oryginalny klucz zostanie zaktualizowany o wartości określone dla nowego klucza. Dostęp do poprzednich wartości można uzyskać przy użyciu identyfikatora URI specyficznego dla wersji dla tej wersji klucza. Aby dowiedzieć się więcej o kluczowych wersjach i strukturze identyfikatora URI, zobacz Informacje o kluczach i wpisach tajnych w dokumentacji interfejsu API REST usługi Key Vault. Uwaga: Aby zaimportować klucz z własnego sprzętowego modułu zabezpieczeń, należy najpierw wygenerować pakiet BYOK (plik z rozszerzeniem nazwy pliku byok) przy użyciu zestawu narzędzi BYOK usługi Azure Key Vault. Aby uzyskać więcej informacji, zobacz How to Generate and Transfer HSM-Protected Keys for Azure Key Vault (Jak generować i transferować klucze chronione przez moduł HSM dla usługi Azure Key Vault). Najlepszym rozwiązaniem jest utworzenie lub zaktualizowanie klucza przy użyciu polecenia cmdlet Backup-AzureKeyVaultKey. Nie ma funkcji cofania usuwania, więc jeśli przypadkowo usuniesz klucz lub usuniesz go, a następnie zmienisz zdanie, klucz nie będzie możliwy do odzyskania, chyba że masz kopię zapasową, którą można przywrócić.

Przykłady

Przykład 1. Tworzenie klucza

PS C:\> Add-AzureKeyVaultKey -VaultName 'contoso' -Name 'ITSoftware' -Destination 'Software'

Vault Name     : contoso
Name           : ITSoftware
Version        : 67da57e9cadf48a2ad8d366b115843ab
Id             : https://contoso.vault.azure.net:443/keys/ITSoftware/67da57e9cadf48a2ad8d366b115843ab
Enabled        : True
Expires        :
Not Before     :
Created        : 5/21/2018 11:10:58 PM
Updated        : 5/21/2018 11:10:58 PM
Purge Disabled : False
Tags           :

To polecenie tworzy klucz chroniony przez oprogramowanie o nazwie ITSoftware w magazynie kluczy o nazwie Contoso.

Przykład 2. Tworzenie klucza chronionego przez moduł HSM

PS C:\> Add-AzureKeyVaultKey -VaultName 'contoso' -Name 'ITHsm' -Destination 'HSM'

Vault Name     : contoso
Name           : ITHsm
Version        : 67da57e9cadf48a2ad8d366b115843ab
Id             : https://contoso.vault.azure.net:443/keys/ITSoftware/67da57e9cadf48a2ad8d366b115843ab
Enabled        : True
Expires        :
Not Before     :
Created        : 5/21/2018 11:10:58 PM
Updated        : 5/21/2018 11:10:58 PM
Purge Disabled : False
Tags           :

To polecenie tworzy klucz chroniony przez moduł HSM w magazynie kluczy o nazwie Contoso.

Przykład 3. Tworzenie klucza z wartościami innymi niż domyślne

PS C:\> $KeyOperations = 'decrypt', 'verify'
PS C:\> $Expires = (Get-Date).AddYears(2).ToUniversalTime()
PS C:\> $NotBefore = (Get-Date).ToUniversalTime()
PS C:\> $Tags = @{'Severity' = 'high'; 'Accounting' = "true"}
PS C:\> Add-AzureKeyVaultKey -VaultName 'contoso' -Name 'ITHsmNonDefault' -Destination 'HSM' -Expires $Expires -NotBefore $NotBefore -KeyOps $KeyOperations -Disable -Tag $Tags

Vault Name     : contoso
Name           : ITHsmNonDefault
Version        : 929bfc14db84439b823ffd1bedadaf5f
Id             : https://contoso.vault.azure.net:443/keys/ITHsmNonDefault/929bfc14db84439b823ffd1bedadaf5f
Enabled        : False
Expires        : 5/21/2020 11:12:43 PM
Not Before     : 5/21/2018 11:12:50 PM
Created        : 5/21/2018 11:13:17 PM
Updated        : 5/21/2018 11:13:17 PM
Purge Disabled : False
Tags           : Name        Value
                 Severity    high
                 Accounting  true

Pierwsze polecenie przechowuje wartości odszyfrowywania i weryfikowania w zmiennej $KeyOperations. Drugie polecenie tworzy obiekt DateTime zdefiniowany w formacie UTC przy użyciu polecenia cmdlet Get-Date . Ten obiekt określa czas dwóch lat w przyszłości. Polecenie przechowuje datę w zmiennej $Expires. Aby uzyskać więcej informacji, wpisz Get-Help Get-Date. Trzecie polecenie tworzy obiekt DateTime przy użyciu polecenia cmdlet Get-Date . Ten obiekt określa bieżącą godzinę UTC. Polecenie przechowuje datę w zmiennej $NotBefore. Ostatnie polecenie tworzy klucz o nazwie ITHsmNonDefault, który jest kluczem chronionym przez moduł HSM. Polecenie określa wartości dozwolonych operacji klucza przechowywanych $KeyOperations. Polecenie określa czasy dla parametrów Expires i NotBefore utworzonych w poprzednich poleceniach oraz tagów dla wysokiej ważności i IT. Nowy klucz jest wyłączony. Można ją włączyć za pomocą polecenia cmdlet Set-AzureKeyVaultKey .

Przykład 4. Importowanie klucza chronionego przez moduł HSM

PS C:\> Add-AzureKeyVaultKey -VaultName 'contoso' -Name 'ITByok' -KeyFilePath 'C:\Contoso\ITByok.byok' -Destination 'HSM'

Vault Name     : contoso
Name           : ITByok
Version        : 67da57e9cadf48a2ad8d366b115843ab
Id             : https://contoso.vault.azure.net:443/keys/ITByok/67da57e9cadf48a2ad8d366b115843ab
Enabled        : True
Expires        :
Not Before     :
Created        : 5/21/2018 11:10:58 PM
Updated        : 5/21/2018 11:10:58 PM
Purge Disabled : False
Tags           :

To polecenie importuje klucz o nazwie ITByok z lokalizacji, która określa parametr KeyFilePath . Zaimportowany klucz jest kluczem chronionym przez moduł HSM. Aby zaimportować klucz z własnego sprzętowego modułu zabezpieczeń, należy najpierw wygenerować pakiet BYOK (plik z rozszerzeniem nazwy pliku byok) przy użyciu zestawu narzędzi BYOK usługi Azure Key Vault. Aby uzyskać więcej informacji, zobacz How to Generate and Transfer HSM-Protected Keys for Azure Key Vault (Jak generować i transferować klucze chronione przez moduł HSM dla usługi Azure Key Vault).

Przykład 5. Importowanie klucza chronionego przez oprogramowanie

PS C:\> $Password = ConvertTo-SecureString -String 'Password' -AsPlainText -Force
PS C:\> Add-AzureKeyVaultKey -VaultName 'contoso' -Name 'ITPfx' -KeyFilePath 'C:\Contoso\ITPfx.pfx' -KeyFilePassword $Password

Vault Name     : contoso
Name           : ITPfx
Version        : 67da57e9cadf48a2ad8d366b115843ab
Id             : https://contoso.vault.azure.net:443/keys/ITPfx/67da57e9cadf48a2ad8d366b115843ab
Enabled        : True
Expires        :
Not Before     :
Created        : 5/21/2018 11:10:58 PM
Updated        : 5/21/2018 11:10:58 PM
Purge Disabled : False
Tags           :

Pierwsze polecenie konwertuje ciąg na bezpieczny ciąg przy użyciu polecenia cmdlet ConvertTo-SecureString , a następnie przechowuje ten ciąg w zmiennej $Password. Aby uzyskać więcej informacji, wpisz Get-Help ConvertTo-SecureString. Drugie polecenie tworzy hasło oprogramowania w magazynie kluczy firmy Contoso. Polecenie określa lokalizację klucza i hasła przechowywanego w $Password.

Przykład 6. Importowanie klucza i przypisywanie atrybutów

PS C:\> $Password = ConvertTo-SecureString -String 'password' -AsPlainText -Force
PS C:\> $Expires = (Get-Date).AddYears(2).ToUniversalTime()
PS C:\> $Tags = @{ 'Severity' = 'high'; 'Accounting' = "true" }
PS C:\> Add-AzureKeyVaultKey -VaultName 'contoso' -Name 'ITPfxToHSM' -Destination 'HSM' -KeyFilePath 'C:\Contoso\ITPfx.pfx' -KeyFilePassword $Password -Expires $Expires -Tag $Tags

Vault Name     : contoso
Name           : ITPfxToHSM
Version        : 929bfc14db84439b823ffd1bedadaf5f
Id             : https://contoso.vault.azure.net:443/keys/ITPfxToHSM/929bfc14db84439b823ffd1bedadaf5f
Enabled        : True
Expires        : 5/21/2020 11:12:43 PM
Not Before     : 
Created        : 5/21/2018 11:13:17 PM
Updated        : 5/21/2018 11:13:17 PM
Purge Disabled : False
Tags           : Name        Value
                 Severity    high
                 Accounting  true

Pierwsze polecenie konwertuje ciąg na bezpieczny ciąg przy użyciu polecenia cmdlet ConvertTo-SecureString , a następnie przechowuje ten ciąg w zmiennej $Password. Drugie polecenie tworzy obiekt DateTime przy użyciu polecenia cmdlet Get-Date , a następnie przechowuje ten obiekt w zmiennej $Expires. Trzecie polecenie tworzy zmienną $tags, aby ustawić tagi dla wysokiej ważności i IT. Ostatnie polecenie importuje klucz jako klucz HSM z określonej lokalizacji. Polecenie określa czas wygaśnięcia przechowywany w $Expires i hasło przechowywane w $Password i stosuje tagi przechowywane w $tags.

Parametry

-Confirm

Monituje o potwierdzenie przed uruchomieniem polecenia cmdlet.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DefaultProfile

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

Type:IAzureContextContainer
Aliases:AzureRmContext, AzureCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Destination

Określa, czy należy dodać klucz jako klucz chroniony przez oprogramowanie, czy klucz chroniony przez moduł HSM w usłudze Key Vault. Prawidłowe wartości to: HSM i Oprogramowanie. Uwaga: Aby użyć modułu HSM jako miejsca docelowego, musisz mieć magazyn kluczy obsługujący moduły HSM. Aby uzyskać więcej informacji na temat warstw usług i możliwości usługi Azure Key Vault, zobacz witrynę internetową Cennik usługi Azure Key Vault. Ten parametr jest wymagany podczas tworzenia nowego klucza. Jeśli zaimportujesz klucz przy użyciu parametru KeyFilePath , ten parametr jest opcjonalny:

  • Jeśli nie określisz tego parametru, a to polecenie cmdlet importuje klucz z rozszerzeniem nazwy pliku byok, importuje ten klucz jako klucz chroniony przez moduł HSM. Polecenie cmdlet nie może zaimportować tego klucza jako klucza chronionego przez oprogramowanie.
  • Jeśli nie określisz tego parametru, a to polecenie cmdlet importuje klucz, który ma rozszerzenie nazwy pliku pfx, importuje klucz jako klucz chroniony przez oprogramowanie.
Type:String
Accepted values:HSM, Software, HSM, Software
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Disable

Wskazuje, że dodany klucz jest ustawiony na początkowy stan wyłączenia. Próba użycia klucza zakończy się niepowodzeniem. Użyj tego parametru, jeśli wstępnie ładujesz klucze, które zamierzasz włączyć później.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Expires

Określa czas wygaśnięcia jako obiekt DateTime dla klucza, który dodaje to polecenie cmdlet. Ten parametr używa uniwersalnego czasu koordynowanego (UTC). Aby uzyskać obiekt DateTime , użyj polecenia cmdlet Get-Date . Aby uzyskać więcej informacji, wpisz Get-Help Get-Date. Jeśli ten parametr nie zostanie określony, klucz nie wygaśnie.

Type:Nullable<T>[DateTime]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Obiekt magazynu.

Type:PSKeyVault
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-KeyFilePassword

Określa hasło dla zaimportowanego pliku jako obiektu SecureString . Aby uzyskać obiekt SecureString , użyj polecenia cmdlet ConvertTo-SecureString . Aby uzyskać więcej informacji, wpisz Get-Help ConvertTo-SecureString. Należy określić to hasło, aby zaimportować plik z rozszerzeniem nazwy pliku pfx.

Type:SecureString
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-KeyFilePath

Określa ścieżkę pliku lokalnego zawierającego materiał klucza importujący to polecenie cmdlet. Prawidłowe rozszerzenia nazw plików to .byok i pfx.

  • Jeśli plik jest plikiem byok, klucz jest automatycznie chroniony przez moduły HSM po zaimportowaniu i nie można zastąpić tej wartości domyślnej.
  • Jeśli plik jest plikiem pfx, klucz jest automatycznie chroniony przez oprogramowanie po zaimportowaniu. Aby zastąpić tę wartość domyślną, ustaw parametr Docelowy na moduł HSM, aby klucz był chroniony przez moduł HSM. Po określeniu tego parametru parametr docelowy jest opcjonalny.
Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-KeyOps

Określa tablicę operacji, które można wykonać przy użyciu klucza, który dodaje to polecenie cmdlet. Jeśli nie określisz tego parametru, wszystkie operacje można wykonać. Dopuszczalne wartości dla tego parametru to rozdzielona przecinkami lista operacji klucza zdefiniowanych przez specyfikację klucza internetowego JSON (JWK):

  • Szyfrowanie
  • Odszyfrowywanie
  • Zawijanie
  • Unwrap
  • Zaloguj
  • Weryfikacja
Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Name

Określa nazwę klucza, który ma zostać dodany do magazynu kluczy. To polecenie cmdlet konstruuje w pełni kwalifikowaną nazwę domeny (FQDN) klucza na podstawie nazwy określonej przez ten parametr, nazwy magazynu kluczy i bieżącego środowiska. Nazwa musi być ciągiem o długości od 1 do 63 znaków, który zawiera tylko 0–9, a–z, A–Z i — (symbol kreski).

Type:String
Aliases:KeyName
Position:1
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-NotBefore

Określa godzinę jako obiekt DateTime , przed którym nie można użyć klucza. Ten parametr używa czasu UTC. Aby uzyskać obiekt DateTime , użyj polecenia cmdlet Get-Date . Jeśli nie określisz tego parametru, klucz może być używany natychmiast.

Type:Nullable<T>[DateTime]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ResourceId

Identyfikator zasobu magazynu.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Size

Rozmiar klucza RSA w bitach. Jeśli nie zostanie określony, usługa zapewni bezpieczne ustawienie domyślne.

Type:Nullable<T>[Int32]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Tag

Pary klucz-wartość w postaci tabeli skrótów. Na przykład: @{key0="value0"; key1=$null; key2="value2"}

Type:Hashtable
Aliases:Tags
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-VaultName

Określa nazwę magazynu kluczy, do którego to polecenie cmdlet dodaje klucz. To polecenie cmdlet konstruuje nazwę FQDN magazynu kluczy na podstawie nazwy określonej przez ten parametr i bieżącego środowiska.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

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

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Dane wejściowe

PSKeyVault

Parametry: InputObject (ByValue)

String

Dane wyjściowe

PSKeyVaultKey