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
Parametry: InputObject (ByValue)