Partager via


Add-AzureKeyVaultKey

Crée une clé dans un coffre de clés ou importe une clé dans un coffre de clés.

Avertissement

Le module AzureRM PowerShell a été officiellement déconseillé depuis le 29 février 2024. Les utilisateurs sont invités à migrer d’AzureRM vers le module Az PowerShell afin de s’assurer d’une prise en charge et des mises à jour continues.

Bien que le module AzureRM puisse toujours fonctionner, il n’est plus conservé ou pris en charge, plaçant toute utilisation continue à la discrétion et au risque de l’utilisateur. Consultez nos ressources sur la migration pour obtenir des conseils sur la transition vers le module Az.

Syntaxe

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

Description

L’applet de commande Add-AzureKeyVaultKey crée une clé dans un coffre de clés dans Azure Key Vault ou importe une clé dans un coffre de clés. Utilisez cette applet de commande pour ajouter des clés à l’aide de l’une des méthodes suivantes :

  • Créez une clé dans un module de sécurité matériel (HSM) dans le service Key Vault.
  • Créez une clé dans le logiciel dans le service Key Vault.
  • Importez une clé à partir de votre propre module de sécurité matériel (HSM) vers des modules HSM dans le service Key Vault.
  • Importez une clé à partir d’un fichier .pfx sur votre ordinateur.
  • Importez une clé à partir d’un fichier .pfx sur votre ordinateur vers des modules de sécurité matériels (HSM) dans le service Key Vault. Pour l’une de ces opérations, vous pouvez fournir des attributs clés ou accepter des paramètres par défaut. Si vous créez ou importez une clé portant le même nom qu’une clé existante dans votre coffre de clés, la clé d’origine est mise à jour avec les valeurs que vous spécifiez pour la nouvelle clé. Vous pouvez accéder aux valeurs précédentes à l’aide de l’URI spécifique à la version de cette version de la clé. Pour en savoir plus sur les versions de clés et la structure d’URI, consultez La documentation sur les clés et les secrets dans la documentation de l’API REST Key Vault. Remarque : Pour importer une clé à partir de votre propre module de sécurité matériel, vous devez d’abord générer un package BYOK (un fichier avec une extension de nom de fichier .byok) à l’aide de l’ensemble d’outils BYOK Azure Key Vault. Pour plus d’informations, consultez Comment générer et transférer des clés protégées par HSM pour Azure Key Vault. En guise de bonne pratique, sauvegardez votre clé après sa création ou sa mise à jour à l’aide de l’applet de commande Backup-AzureKeyVaultKey. Il n’existe aucune fonctionnalité d’annulation de suppression. Par conséquent, si vous supprimez accidentellement votre clé ou supprimez-la, puis changez d’avis, la clé n’est pas récupérable, sauf si vous avez une sauvegarde de celle-ci que vous pouvez restaurer.

Exemples

Exemple 1 : Créer une clé

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           :

Cette commande crée une clé protégée par logiciel nommée ITSoftware dans le coffre de clés nommé Contoso.

Exemple 2 : Créer une clé protégée par 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           :

Cette commande crée une clé protégée par HSM dans le coffre de clés nommé Contoso.

Exemple 3 : Créer une clé avec des valeurs non par défaut

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

La première commande stocke les valeurs déchiffrer et vérifier dans la variable $KeyOperations. La deuxième commande crée un objet DateTime , défini au format UTC, à l’aide de l’applet de commande Get-Date . Cet objet spécifie une période de deux ans à l’avenir. La commande stocke cette date dans la variable $Expires. Pour plus d'informations, voir Get-Help Get-Date. La troisième commande crée un objet DateTime à l’aide de l’applet de commande Get-Date . Cet objet spécifie l’heure UTC actuelle. La commande stocke cette date dans la variable $NotBefore. La commande finale crée une clé nommée ITHsmNonDefault qui est une clé protégée par HSM. La commande spécifie les valeurs des opérations de clé autorisées stockées $KeyOperations. La commande spécifie des heures pour les paramètres Expires et NotBefore créés dans les commandes précédentes, ainsi que les balises pour la gravité élevée et l’informatique. La nouvelle clé est désactivée. Vous pouvez l’activer à l’aide de l’applet de commande Set-AzureKeyVaultKey .

Exemple 4 : Importer une clé protégée par 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           :

Cette commande importe la clé nommée I To yok à partir de l’emplacement spécifié par le paramètre KeyFilePath. La clé importée est une clé protégée par HSM. Pour importer une clé à partir de votre propre module de sécurité matériel, vous devez d’abord générer un package BYOK (un fichier avec une extension de nom de fichier .byok) à l’aide de l’ensemble d’outils AZURE Key Vault BYOK. Pour plus d’informations, consultez Comment générer et transférer des clés protégées par HSM pour Azure Key Vault.

Exemple 5 : Importer une clé protégée par logiciel

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           :

La première commande convertit une chaîne en chaîne sécurisée à l’aide de l’applet de commande ConvertTo-SecureString , puis stocke cette chaîne dans la variable $Password. Pour plus d'informations, voir Get-Help ConvertTo-SecureString. La deuxième commande crée un mot de passe logiciel dans le coffre de clés Contoso. La commande spécifie l’emplacement de la clé et le mot de passe stockés dans $Password.

Exemple 6 : Importer une clé et affecter des attributs

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

La première commande convertit une chaîne en chaîne sécurisée à l’aide de l’applet de commande ConvertTo-SecureString , puis stocke cette chaîne dans la variable $Password. La deuxième commande crée un objet DateTime à l’aide de l’applet de commande Get-Date , puis stocke cet objet dans la variable $Expires. La troisième commande crée la variable $tags pour définir des balises pour la gravité élevée et l’informatique. La commande finale importe une clé en tant que clé HSM à partir de l’emplacement spécifié. La commande spécifie l’heure d’expiration stockée dans $Expires et le mot de passe stockés dans $Password, et applique les balises stockées dans $tags.

Paramètres

-Confirm

Vous demande une confirmation avant d’exécuter l’applet de commande.

Type:SwitchParameter
Alias:cf
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-DefaultProfile

Informations d’identification, compte, locataire et abonnement utilisés pour la communication avec Azure

Type:IAzureContextContainer
Alias:AzureRmContext, AzureCredential
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Destination

Spécifie s’il faut ajouter la clé en tant que clé protégée par logiciel ou une clé protégée par HSM dans le service Key Vault. Les valeurs valides sont : HSM et Software. Remarque : Pour utiliser HSM comme destination, vous devez disposer d’un coffre de clés qui prend en charge les modules HSM. Pour plus d’informations sur les niveaux de service et les capacités du coffre de clés Azure, consultez le site web Tarifs Azure Key Vault. Ce paramètre est requis lorsque vous créez une clé. Si vous importez une clé à l’aide du paramètre KeyFilePath , ce paramètre est facultatif :

  • Si vous ne spécifiez pas ce paramètre et que cette applet de commande importe une clé qui a l’extension de nom de fichier .byok, elle importe cette clé en tant que clé protégée par HSM. L’applet de commande ne peut pas importer cette clé en tant que clé protégée par logiciel.
  • Si vous ne spécifiez pas ce paramètre et que cette applet de commande importe une clé qui a une extension de nom de fichier .pfx, elle importe la clé en tant que clé protégée par logiciel.
Type:String
Valeurs acceptées:HSM, Software, HSM, Software
Position:Named
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Disable

Indique que la clé que vous ajoutez est définie sur un état initial de désactivé. Toute tentative d’utilisation de la clé échoue. Utilisez ce paramètre si vous préchargez des clés que vous envisagez d’activer ultérieurement.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Expires

Spécifie l’heure d’expiration , en tant qu’objet DateTime , pour la clé que cette applet de commande ajoute. Ce paramètre utilise le temps universel coordonné (UTC). Pour obtenir un objet DateTime , utilisez l’applet de commande Get-Date . Pour plus d'informations, voir Get-Help Get-Date. Si vous ne spécifiez pas ce paramètre, la clé n’expire pas.

Type:Nullable<T>[DateTime]
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-InputObject

Objet Vault.

Type:PSKeyVault
Position:0
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-KeyFilePassword

Spécifie un mot de passe pour le fichier importé en tant qu’objet SecureString . Pour obtenir un objet SecureString , utilisez l’applet de commande ConvertTo-SecureString . Pour plus d'informations, voir Get-Help ConvertTo-SecureString. Vous devez spécifier ce mot de passe pour importer un fichier avec une extension de nom de fichier .pfx.

Type:SecureString
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-KeyFilePath

Spécifie le chemin d’accès d’un fichier local qui contient des éléments clés importés par cette applet de commande. Les extensions de nom de fichier valides sont .byok et .pfx.

  • Si le fichier est un fichier .byok, la clé est automatiquement protégée par les modules HSM après l’importation et vous ne pouvez pas remplacer cette valeur par défaut.
  • Si le fichier est un fichier .pfx, la clé est automatiquement protégée par le logiciel après l’importation. Pour remplacer cette valeur par défaut, définissez le paramètre de destination sur HSM afin que la clé soit protégée par HSM. Lorsque vous spécifiez ce paramètre, le paramètre de destination est facultatif.
Type:String
Position:Named
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-KeyOps

Spécifie un tableau d’opérations qui peuvent être effectuées à l’aide de la clé que cette applet de commande ajoute. Si vous ne spécifiez pas ce paramètre, toutes les opérations peuvent être effectuées. Les valeurs acceptables pour ce paramètre figurent dans une liste séparée par des virgules des opérations clés définies par la spécification de la clé web JSON (JWK) :

  • Encrypt (Chiffrer)
  • Déchiffrer
  • Encapsuler
  • Désencapsuler
  • Signer
  • Vérification
Type:String[]
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Name

Spécifie le nom de la clé à ajouter au coffre de clés. Cette applet de commande construit le nom de domaine complet (FQDN) d’une clé en fonction du nom spécifié par ce paramètre, du nom du coffre de clés et de votre environnement actuel. Le nom doit être une chaîne de 1 à 63 caractères de longueur qui ne contient que 0-9, a-z, A-Z et - (le symbole de tiret).

Type:String
Alias:KeyName
Position:1
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-NotBefore

Spécifie l’heure, en tant qu’objet DateTime , avant laquelle la clé ne peut pas être utilisée. Ce paramètre utilise UTC. Pour obtenir un objet DateTime , utilisez l’applet de commande Get-Date . Si vous ne spécifiez pas ce paramètre, la clé peut être utilisée immédiatement.

Type:Nullable<T>[DateTime]
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-ResourceId

ID de ressource du coffre.

Type:String
Position:0
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-Size

Taille de clé RSA, en bits. S’il n’est pas spécifié, le service fournit une valeur par défaut sécurisée.

Type:Nullable<T>[Int32]
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Tag

Paires clé-valeur sous la forme d’une table de hachage. Par exemple : @{key0="value0 » ; key1=$null ; key2="value2"}

Type:Hashtable
Alias:Tags
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-VaultName

Spécifie le nom du coffre de clés auquel cette applet de commande ajoute la clé. Cette applet de commande construit le nom de domaine complet d’un coffre de clés en fonction du nom spécifié par ce paramètre et de votre environnement actuel.

Type:String
Position:0
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-WhatIf

Montre ce qui se passe en cas d’exécution de l’applet de commande. L’applet de commande n’est pas exécutée.

Type:SwitchParameter
Alias:wi
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

Entrées

PSKeyVault

Paramètres : InputObject (ByValue)

String

Sorties

PSKeyVaultKey