Freigeben über


Add-AzureKeyVaultKey

Erstellt einen Schlüssel in einem Schlüsseltresor oder importiert einen Schlüssel in einen Schlüsseltresor.

Warnung

Das AzureRM PowerShell-Modul ist seit dem 29. Februar 2024 offiziell veraltet. Benutzern wird empfohlen, von AzureRM zum Az PowerShell-Modul zu migrieren, um weiterhin Support und Updates zu erhalten.

Obwohl das AzureRM-Modul weiterhin funktioniert, wird es nicht mehr Standard tained oder unterstützt, wobei eine fortgesetzte Verwendung nach Ermessen und Risiko des Benutzers erfolgt. Weitere Informationen zum Übergang zum Az-Modul finden Sie in unseren Migrationsressourcen.

Syntax

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

Beschreibung

Das Cmdlet "Add-AzureKeyVaultKey " erstellt einen Schlüssel in einem Schlüsseltresor im Azure Key Vault oder importiert einen Schlüssel in einen Schlüsseltresor. Verwenden Sie dieses Cmdlet, um Schlüssel mithilfe einer der folgenden Methoden hinzuzufügen:

  • Erstellen Sie einen Schlüssel in einem Hardwaresicherheitsmodul (HSM) im Key Vault-Dienst.
  • Erstellen Sie einen Schlüssel in der Software im Key Vault-Dienst.
  • Importieren Sie einen Schlüssel aus Ihrem eigenen Hardwaresicherheitsmodul (HSM) in HSMs im Key Vault-Dienst.
  • Importieren Sie einen Schlüssel aus einer PFX-Datei auf Ihrem Computer.
  • Importieren Sie einen Schlüssel aus einer PFX-Datei auf Ihrem Computer in Hardwaresicherheitsmodule (HSMs) im Key Vault-Dienst. Für jeden dieser Vorgänge können Sie Schlüsselattribute bereitstellen oder Standardeinstellungen akzeptieren. Wenn Sie einen Schlüssel erstellen oder importieren, der denselben Namen wie ein vorhandener Schlüssel im Schlüsseltresor aufweist, wird der ursprüngliche Schlüssel mit den Werten aktualisiert, die Sie für den neuen Schlüssel angeben. Sie können auf die vorherigen Werte zugreifen, indem Sie den versionsspezifischen URI für diese Version des Schlüssels verwenden. Weitere Informationen zu wichtigen Versionen und der URI-Struktur finden Sie in der Dokumentation zur Key Vault-REST-API unter "Informationen zu Schlüsseln und Geheimen Schlüsseln ". Hinweis: Um einen Schlüssel aus Ihrem eigenen Hardwaresicherheitsmodul zu importieren, müssen Sie zuerst ein BYOK-Paket (eine Datei mit einer BYOK-Dateinamenerweiterung) mithilfe des Toolsets Azure Key Vault BYOK generieren. Weitere Informationen finden Sie unter Generieren und Übertragen von HSM-geschützten Schlüsseln für Azure Key Vault. Als bewährte Methode sollten Sie Ihren Schlüssel sichern, nachdem er erstellt oder aktualisiert wurde, mithilfe des Cmdlets Backup-AzureKeyVaultKey. Es gibt keine Rückgängig-Funktionalität. Wenn Sie ihren Schlüssel versehentlich löschen oder ihn löschen und dann Ihre Meinung ändern, kann der Schlüssel nicht wiederhergestellt werden, es sei denn, Sie haben eine Sicherung davon, die Sie wiederherstellen können.

Beispiele

Beispiel 1: Erstellen eines Schlüssels

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           :

Mit diesem Befehl wird ein softwaregeschützter Schlüssel namens "ITSoftware" im Schlüsseltresor "Contoso" erstellt.

Beispiel 2: Erstellen eines HSM-geschützten Schlüssels

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           :

Dieser Befehl erstellt einen HSM-geschützten Schlüssel im Schlüsseltresor namens Contoso.

Beispiel 3: Erstellen eines Schlüssels mit nicht standardmäßigen Werten

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

Der erste Befehl speichert die Werte entschlüsseln und überprüfen in der variablen $KeyOperations. Der zweite Befehl erstellt ein DateTime-Objekt , das in UTC definiert ist, mithilfe des Cmdlets "Get-Date ". Dieses Objekt gibt eine Zeit von zwei Jahren in der Zukunft an. Der Befehl speichert dieses Datum in der variablen $Expires. Geben Sie Folgendes ein, um weitere Informationen zu erhalten: Get-Help Get-Date. Der dritte Befehl erstellt ein DateTime-Objekt mithilfe des Cmdlets "Get-Date ". Dieses Objekt gibt die aktuelle UTC-Zeit an. Der Befehl speichert dieses Datum in der variablen $NotBefore. Der letzte Befehl erstellt einen Schlüssel namens ITHsmNonDefault, der ein HSM-geschützter Schlüssel ist. Der Befehl gibt Werte für zulässige Schlüsselvorgänge an, die $KeyOperations gespeichert sind. Der Befehl gibt Zeiten für die Parameter "Expires " und "NotBefore " an, die in den vorherigen Befehlen erstellt wurden, sowie Tags für hohen Schweregrad und IT. Der neue Schlüssel ist deaktiviert. Sie können es mithilfe des Cmdlets Set-AzureKeyVaultKey aktivieren.

Beispiel 4: Importieren eines HSM-geschützten Schlüssels

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           :

Dieser Befehl importiert den Schlüssel mit dem Namen "ITByok" aus dem Speicherort, den der KeyFilePath-Parameter angibt. Der importierte Schlüssel ist ein HSM-geschützter Schlüssel. Um einen Schlüssel aus Ihrem eigenen Hardwaresicherheitsmodul zu importieren, müssen Sie zuerst ein BYOK-Paket (eine Datei mit einer BYOK-Dateinamenerweiterung) mithilfe des Toolsets "Azure Key Vault BYOK" generieren. Weitere Informationen finden Sie unter Generieren und Übertragen von HSM-geschützten Schlüsseln für Azure Key Vault.

Beispiel 5: Importieren eines softwaregeschützten Schlüssels

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           :

Der erste Befehl konvertiert eine Zeichenfolge mithilfe des Cmdlets ConvertTo-SecureString in eine sichere Zeichenfolge und speichert diese Zeichenfolge dann in der $Password Variablen. Geben Sie Folgendes ein, um weitere Informationen zu erhalten: Get-Help ConvertTo-SecureString. Der zweite Befehl erstellt ein Softwarekennwort im Contoso-Schlüsseltresor. Der Befehl gibt den Speicherort für den Schlüssel und das in $Password gespeicherte Kennwort an.

Beispiel 6: Importieren eines Schlüssels und Zuweisen von Attributen

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

Der erste Befehl konvertiert eine Zeichenfolge mithilfe des Cmdlets ConvertTo-SecureString in eine sichere Zeichenfolge und speichert diese Zeichenfolge dann in der $Password Variablen. Der zweite Befehl erstellt ein DateTime-Objekt mithilfe des Cmdlets "Get-Date ", und speichert das Objekt dann in der variablen $Expires. Der dritte Befehl erstellt die $tags Variable, um Tags für hohen Schweregrad und IT festzulegen. Der letzte Befehl importiert einen Schlüssel als HSM-Schlüssel aus dem angegebenen Speicherort. Der Befehl gibt die in $Expires gespeicherte Ablaufzeit und das Kennwort an, die in $Password gespeichert sind, und wendet die in $tags gespeicherten Tags an.

Parameter

-Confirm

Hiermit werden Sie vor der Ausführung des Cmdlets zur Bestätigung aufgefordert.

Typ:SwitchParameter
Aliase:cf
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-DefaultProfile

Anmeldeinformationen, Konto, Mandant und Abonnement für die Kommunikation mit Azure

Typ:IAzureContextContainer
Aliase:AzureRmContext, AzureCredential
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Destination

Gibt an, ob der Schlüssel als softwaregeschützter Schlüssel oder hsM-geschützter Schlüssel im Key Vault-Dienst hinzugefügt werden soll. Gültige Werte sind: HSM und Software. Hinweis: Um HSM als Ziel zu verwenden, müssen Sie über einen Schlüsseltresor verfügen, der HSMs unterstützt. Weitere Informationen zu den Dienstebenen und Funktionen für Azure Key Vault finden Sie auf der Website Key Vault – Preise. Dieser Parameter ist erforderlich, wenn Sie einen neuen Schlüssel erstellen. Wenn Sie einen Schlüssel mithilfe des KeyFilePath-Parameters importieren, ist dieser Parameter optional:

  • Wenn Sie diesen Parameter nicht angeben und dieses Cmdlet einen Schlüssel importiert, der die Dateinamenerweiterung ".byok" aufweist, importiert er diesen Schlüssel als HSM-geschützten Schlüssel. Das Cmdlet kann diesen Schlüssel nicht als softwaregeschützter Schlüssel importieren.
  • Wenn Sie diesen Parameter nicht angeben und dieses Cmdlet einen Schlüssel importiert, der über eine PFX-Dateinamenerweiterung verfügt, wird der Schlüssel als softwaregeschützter Schlüssel importiert.
Typ:String
Zulässige Werte:HSM, Software, HSM, Software
Position:Named
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Disable

Gibt an, dass der hinzuzufügende Schlüssel auf einen anfangs deaktivierten Zustand festgelegt ist. Jeder Versuch, den Schlüssel zu verwenden, schlägt fehl. Verwenden Sie diesen Parameter, wenn Sie Schlüssel vorab laden, die Sie später aktivieren möchten.

Typ:SwitchParameter
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Expires

Gibt die Ablaufzeit als DateTime-Objekt für den Von diesem Cmdlet hinzugefügten Schlüssel an. Dieser Parameter verwendet koordinierte Weltzeit (COORDINATED Universal Time, UTC). Verwenden Sie zum Abrufen eines DateTime-Objekts das Cmdlet "Get-Date ". Geben Sie Folgendes ein, um weitere Informationen zu erhalten: Get-Help Get-Date. Wenn Sie diesen Parameter nicht angeben, läuft der Schlüssel nicht ab.

Typ:Nullable<T>[DateTime]
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-InputObject

Vault-Objekt.

Typ:PSKeyVault
Position:0
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-KeyFilePassword

Gibt ein Kennwort für die importierte Datei als SecureString-Objekt an. Verwenden Sie das Cmdlet ConvertTo-SecureString, um ein SecureString-Objekt abzurufen. Geben Sie Folgendes ein, um weitere Informationen zu erhalten: Get-Help ConvertTo-SecureString. Sie müssen dieses Kennwort angeben, um eine Datei mit der Dateinamenerweiterung PFX zu importieren.

Typ:SecureString
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-KeyFilePath

Gibt den Pfad einer lokalen Datei an, die Schlüsselmaterial enthält, das dieses Cmdlet importiert. Die gültigen Dateinamenerweiterungen sind BYOK und PFX.

  • Wenn es sich bei der Datei um eine BYOK-Datei handelt, wird der Schlüssel nach dem Import automatisch durch HSMs geschützt, und Sie können diese Standardeinstellung nicht außer Kraft setzen.
  • Wenn es sich bei der Datei um eine PFX-Datei handelt, wird der Schlüssel nach dem Import automatisch durch Software geschützt. Um diesen Standardwert außer Kraft zu setzen, legen Sie den Destination-Parameter auf HSM fest, sodass der Schlüssel HSM-geschützt ist. Wenn Sie diesen Parameter angeben, ist der Destination-Parameter optional.
Typ:String
Position:Named
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-KeyOps

Gibt ein Array von Vorgängen an, die mithilfe des von diesem Cmdlet hinzugefügten Schlüssels ausgeführt werden können. Ohne Angabe dieses Parameters können alle Vorgänge ausgeführt werden. Zulässige Werte für diesen Parameter sind eine durch Kommas getrennte Liste mit Schlüsselvorgängen gemäß JWK-Spezifikation (JSON Web Key):

  • Verschlüsseln
  • Entschlüsseln
  • Umschließen
  • Aufheben der Umschließung
  • Signieren
  • Überprüfen
Typ:String[]
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Name

Gibt den Namen des Schlüssels an, der dem Schlüsseltresor hinzugefügt werden soll. Dieses Cmdlet erstellt den vollqualifizierten Do Standard namen (FQDN) eines Schlüssels basierend auf dem Namen, den dieser Parameter angibt, den Namen des Schlüsseltresors und die aktuelle Umgebung. Der Name muss eine Zeichenfolge von 1 bis 63 Zeichen sein, die nur 0-9, a-z, A-Z und - (das Strichsymbol) enthält.

Typ:String
Aliase:KeyName
Position:1
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-NotBefore

Gibt die Uhrzeit als DateTime-Objekt an, vor der der Schlüssel nicht verwendet werden kann. Dieser Parameter verwendet UTC. Verwenden Sie zum Abrufen eines DateTime-Objekts das Cmdlet "Get-Date ". Wenn Sie diesen Parameter nicht angeben, kann der Schlüssel sofort verwendet werden.

Typ:Nullable<T>[DateTime]
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-ResourceId

Vault-Ressourcen-ID.

Typ:String
Position:0
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-Size

RSA-Schlüsselgröße in Bits. Wenn nicht angegeben, stellt der Dienst einen sicheren Standardwert bereit.

Typ:Nullable<T>[Int32]
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Tag

Schlüssel-Wert-Paare in Form einer Hashtabelle. Beispiel: @{key0="value0"; key1=$null; key2="value2"}

Typ:Hashtable
Aliase:Tags
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-VaultName

Gibt den Namen des Schlüsseltresors an, dem dieses Cmdlet den Schlüssel hinzufügt. Dieses Cmdlet erstellt den FQDN eines Schlüsseltresors basierend auf dem Namen, den dieser Parameter angibt, und Die aktuelle Umgebung.

Typ:String
Position:0
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-WhatIf

Zeigt, was geschieht, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.

Typ:SwitchParameter
Aliase:wi
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

Eingaben

PSKeyVault

Parameter: InputObject (ByValue)

String

Ausgaben

PSKeyVaultKey