Add-AzureKeyVaultKey

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

Ważne

Ponieważ moduły Az programu PowerShell mają teraz wszystkie możliwości modułów programu PowerShell azureRM i nie tylko, wycofamy moduły programu AzureRM PowerShell w dniu 29 lutego 2024 r.

Aby uniknąć przerw w działaniu usługi, zaktualizuj skrypty , które używają modułów azureRM PowerShell do korzystania z modułów az programu PowerShell do 29 lutego 2024 r. Aby automatycznie zaktualizować skrypty, postępuj zgodnie z przewodnikiem Szybki start.

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żesz podać kluczowe atrybuty 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 About Keys and Secrets (Informacje o kluczach i wpisach tajnych) w dokumentacji interfejsu API REST 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 HSM-Protected dla usługi Azure Key Vault). Najlepszym rozwiązaniem jest utworzenie kopii zapasowej klucza po jego utworzeniu lub zaktualizowaniu 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 jego 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 polecenie Get-Help Get-Date. Trzecie polecenie tworzy obiekt DateTime przy użyciu polecenia cmdlet Get-Date . Ten obiekt określa bieżący czas UTC. Polecenie przechowuje datę w zmiennej $NotBefore. Końcowe polecenie tworzy klucz o nazwie ITHsmNonDefault, który jest kluczem chronionym przez moduł HSM. Polecenie określa wartości dozwolonych operacji kluczy przechowywanych $KeyOperations. Polecenie określa czasy dla parametrów Expires i NotBefore utworzonych w poprzednich poleceniach oraz tagi 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órą 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 USŁUGI Azure Key Vault BYOK. Aby uzyskać więcej informacji, zobacz How to Generate and Transfer HSM-Protected Keys for Azure Key Vault (Jak generować i transferować klucze HSM-Protected 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 polecenie 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
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
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 software. Uwaga: Aby używać 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ą Azure Key Vault Cennik. Ten parametr jest wymagany podczas tworzenia nowego klucza. Jeśli zaimportujesz klucz przy użyciu parametru KeyFilePath , ten parametr jest opcjonalny:

  • Jeśli ten parametr nie zostanie określony, a to polecenie cmdlet zaimportuje 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
Accept pipeline input:False
Accept wildcard characters:False

-Disable

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

Type:SwitchParameter
Position:Named
Default value:None
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 polecenie Get-Help Get-Date. Jeśli nie określisz tego parametru, klucz nie wygaśnie.

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

-InputObject

Obiekt magazynu.

Type:PSKeyVault
Position:0
Default value:None
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 polecenie 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
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 Destination na HSM, aby klucz był chroniony przez moduł HSM. Po określeniu tego parametru parametr docelowy jest opcjonalny.
Type:String
Position:Named
Default value:None
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, można wykonać wszystkie operacje. Dopuszczalne wartości dla tego parametru to rozdzielona przecinkami lista operacji klucza zgodnie ze specyfikacją klucza internetowego JSON (JWK):

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

-Name

Określa nazwę klucza, który ma zostać dodany do magazynu kluczy. To polecenie cmdlet tworzy w pełni kwalifikowaną nazwę domeny (FQDN) klucza na podstawie nazwy, która określa ten parametr, nazwę magazynu kluczy i bieżące środowisko. 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
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żna użyć natychmiast.

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

-ResourceId

Identyfikator zasobu magazynu.

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

-Size

Rozmiar klucza RSA w bitach. Jeśli nie zostanie określony, usługa zapewni bezpieczną wartość domyślną.

Type:Nullable<T>[Int32]
Position:Named
Default value:None
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
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 tworzy nazwę FQDN magazynu kluczy na podstawie nazwy, która określa ten parametr i bieżące środowisko.

Type:String
Position:0
Default value:None
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
Accept pipeline input:False
Accept wildcard characters:False

Dane wejściowe

PSKeyVault

Parametry: InputObject (ByValue)

String

Dane wyjściowe

PSKeyVaultKey