Compartilhar via


Add-AzureKeyVaultKey

Cria uma chave em um cofre de chaves ou importa uma chave para um cofre de chaves.

Aviso

O módulo PowerShell do AzureRM foi oficialmente preterido a partir de 29 de fevereiro de 2024. Os usuários são aconselhados a migrar do AzureRM para o módulo do Az PowerShell para garantir o suporte e as atualizações contínuas.

Embora o módulo AzureRM ainda possa funcionar, ele não tem suporte ou será mantido, colocando qualquer uso contínuo a critério e risco do usuário. Consulte nossos recursos de migração para obter diretrizes sobre a transição para o módulo Az.

Sintaxe

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

O cmdlet Add-AzureKeyVaultKey cria uma chave em um cofre de chaves no Azure Key Vault ou importa uma chave para um cofre de chaves. Use esse cmdlet para adicionar chaves usando qualquer um dos seguintes métodos:

  • Crie uma chave em um HSM (módulo de segurança de hardware) no serviço Key Vault.
  • Crie uma chave no software no serviço Key Vault.
  • Importe uma chave do seu próprio HSM (módulo de segurança de hardware) para HSMs no serviço Key Vault.
  • Importe uma chave de um arquivo .pfx em seu computador.
  • Importe uma chave de um arquivo .pfx em seu computador para HSMs (módulos de segurança de hardware) no serviço Key Vault. Para qualquer uma dessas operações, você pode fornecer atributos-chave ou aceitar configurações padrão. Se você criar ou importar uma chave que tenha o mesmo nome de uma chave existente no cofre de chaves, a chave original será atualizada com os valores especificados para a nova chave. Você pode acessar os valores anteriores usando o URI específico da versão para essa versão da chave. Para saber mais sobre as versões de chave e a estrutura de URI, consulte Sobre chaves e segredos na documentação da API REST do Key Vault. Observação: para importar uma chave do seu próprio módulo de segurança de hardware, primeiro você deve gerar um pacote BYOK (um arquivo com uma extensão de nome de arquivo .byok) usando o conjunto de ferramentas BYOK do Azure Key Vault. Para obter mais informações, consulte Como gerar e transferir chaves protegidas por HSM para o Azure Key Vault. Como prática recomendada, faça backup de sua chave depois que ela for criada ou atualizada, usando o cmdlet Backup-AzureKeyVaultKey. Não há funcionalidade de recuperação, portanto, se você excluir acidentalmente sua chave ou excluí-la e mudar de ideia, a chave não poderá ser recuperada, a menos que você tenha um backup dela que possa restaurar.

Exemplos

Exemplo 1: Criar uma chave

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           :

Esse comando cria uma chave protegida por software chamada ITSoftware no cofre de chaves chamado Contoso.

Exemplo 2: Criar uma chave protegida por 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           :

Esse comando cria uma chave protegida por HSM no cofre de chaves chamado Contoso.

Exemplo 3: Criar uma chave com valores não padrão

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

O primeiro comando armazena os valores decrypt e verify na variável $KeyOperations. O segundo comando cria um objeto DateTime , definido em UTC, usando o cmdlet Get-Date . Esse objeto especifica um tempo de dois anos no futuro. O comando armazena essa data na variável $Expires. Para obter mais informações, digite Get-Help Get-Date. O terceiro comando cria um objeto DateTime usando o cmdlet Get-Date . Esse objeto especifica a hora UTC atual. O comando armazena essa data na variável $NotBefore. O comando final cria uma chave chamada ITHsmNonDefault que é uma chave protegida por HSM. O comando especifica valores para operações de chave permitidas armazenadas $KeyOperations. O comando especifica horários para os parâmetros Expires e NotBefore criados nos comandos anteriores e tags para alta gravidade e TI. A nova chave está desativada. Você pode habilitá-lo usando o cmdlet Set-AzureKeyVaultKey .

Exemplo 4: Importar uma chave protegida por 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           :

Esse comando importa a chave chamada ITByok do local especificado pelo parâmetro KeyFilePath . A chave importada é uma chave protegida por HSM. Para importar uma chave do seu próprio módulo de segurança de hardware, primeiro você deve gerar um pacote BYOK (um arquivo com uma extensão de nome de arquivo .byok) usando o conjunto de ferramentas BYOK do Azure Key Vault. Para obter mais informações, consulte Como gerar e transferir chaves protegidas por HSM para o Azure Key Vault.

Exemplo 5: Importar uma chave protegida por software

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           :

O primeiro comando converte uma cadeia de caracteres em uma cadeia de caracteres segura usando o cmdlet ConvertTo-SecureString e, em seguida, armazena essa cadeia de caracteres na variável $Password. Para obter mais informações, digite Get-Help ConvertTo-SecureString. O segundo comando cria uma senha de software no cofre de chaves da Contoso. O comando especifica o local da chave e a senha armazenadas no $Password.

Exemplo 6: Importar uma chave e atribuir atributos

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

O primeiro comando converte uma cadeia de caracteres em uma cadeia de caracteres segura usando o cmdlet ConvertTo-SecureString e, em seguida, armazena essa cadeia de caracteres na variável $Password. O segundo comando cria um objeto DateTime usando o cmdlet Get-Date e, em seguida, armazena esse objeto na variável $Expires. O terceiro comando cria a variável $tags para definir tags para alta gravidade e TI. O comando final importa uma chave como uma chave HSM do local especificado. O comando especifica o tempo de expiração armazenado no $Expires e a senha armazenados no $Password e aplica as tags armazenadas no $tags.

Parâmetros

-Confirm

Solicita sua confirmação antes de executar o cmdlet.

Tipo:SwitchParameter
Aliases:cf
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-DefaultProfile

As credenciais, a conta, o locatário e a assinatura usadas para comunicação com o Azure

Tipo:IAzureContextContainer
Aliases:AzureRmContext, AzureCredential
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Destination

Especifica se a chave deve ser adicionada como uma chave protegida por software ou uma chave protegida por HSM no serviço Key Vault. Os valores válidos são: HSM e Software. Observação: Para usar o HSM como destino, você deve ter um cofre de chaves que dê suporte a HSMs. Para obter mais informações sobre os recursos e as camadas de serviço para o Cofre da Chave do Azure, consulte o site Preços do Cofre da Chave do Azure . Esse parâmetro é necessário quando você cria uma nova chave. Se você importar uma chave usando o parâmetro KeyFilePath , esse parâmetro será opcional:

  • Se você não especificar esse parâmetro e esse cmdlet importar uma chave que tenha a extensão de nome de arquivo .byok, ele importará essa chave como uma chave protegida por HSM. O cmdlet não pode importar essa chave como chave protegida por software.
  • Se você não especificar esse parâmetro e esse cmdlet importar uma chave que tenha uma extensão de nome de arquivo .pfx, ele importará a chave como uma chave protegida por software.
Tipo:String
Valores aceitos:HSM, Software, HSM, Software
Cargo:Named
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Disable

Indica que a chave que você está adicionando está definida para um estado inicial de desabilitado. Qualquer tentativa de usar a chave falhará. Use esse parâmetro se você estiver pré-carregando chaves que pretende habilitar posteriormente.

Tipo:SwitchParameter
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Expires

Especifica o tempo de expiração, como um objeto DateTime , para a chave que esse cmdlet adiciona. Esse parâmetro usa o UTC (Tempo Universal Coordenado). Para obter um objeto DateTime , use o cmdlet Get-Date . Para obter mais informações, digite Get-Help Get-Date. Se você não especificar esse parâmetro, a chave não expirará.

Tipo:Nullable<T>[DateTime]
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-InputObject

Objeto do Vault.

Tipo:PSKeyVault
Cargo:0
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:True
Aceitar caracteres curinga:False

-KeyFilePassword

Especifica uma senha para o arquivo importado como um objeto SecureString . Para obter um objeto SecureString , use o cmdlet ConvertTo-SecureString . Para obter mais informações, digite Get-Help ConvertTo-SecureString. Você deve especificar essa senha para importar um arquivo com uma extensão de nome de arquivo .pfx.

Tipo:SecureString
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-KeyFilePath

Especifica o caminho de um arquivo local que contém material de chave que esse cmdlet importa. As extensões de nome de arquivo válidas são .byok e .pfx.

  • Se o arquivo for um arquivo .byok, a chave será protegida automaticamente pelos HSMs após a importação e você não poderá substituir esse padrão.
  • Se o arquivo for um arquivo .pfx, a chave será protegida automaticamente pelo software após a importação. Para substituir esse padrão, defina o parâmetro Destination como HSM para que a chave seja protegida por HSM. Quando você especifica esse parâmetro, o parâmetro Destination é opcional.
Tipo:String
Cargo:Named
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-KeyOps

Especifica uma matriz de operações que podem ser executadas usando a chave que esse cmdlet adiciona. Se você não especificar esse parâmetro, todas as operações poderão ser executadas. Os valores aceitáveis para esse parâmetro são uma lista separada por vírgula de operações de chave, conforme definido pela especificação de JWK (Chave Web JSON):

  • Encrypt
  • Descriptografar
  • Encapsular
  • Desencapsular
  • Assinar
  • Verificar
Tipo:String[]
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Name

Especifica o nome da chave a ser adicionada ao cofre de chaves. Esse cmdlet constrói o FQDN (nome de domínio totalmente qualificado) de uma chave com base no nome especificado por esse parâmetro, no nome do cofre de chaves e no ambiente atual. O nome deve ser uma cadeia de caracteres de 1 a 63 caracteres que contenha apenas 0-9, a-z, A-Z e - (o símbolo de traço).

Tipo:String
Aliases:KeyName
Cargo:1
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-NotBefore

Especifica a hora, como um objeto DateTime , antes do qual a chave não pode ser usada. Este parâmetro usa UTC. Para obter um objeto DateTime , use o cmdlet Get-Date . Se você não especificar esse parâmetro, a chave poderá ser usada imediatamente.

Tipo:Nullable<T>[DateTime]
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-ResourceId

ID do recurso do cofre.

Tipo:String
Cargo:0
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:True
Aceitar caracteres curinga:False

-Size

Tamanho da chave RSA, em bits. Se não for especificado, o serviço fornecerá um padrão seguro.

Tipo:Nullable<T>[Int32]
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-Tag

Pares de chave-valor na forma de uma tabela de hash. Por exemplo: @{key0="value0"; chave1=$null; chave2="valor2"}

Tipo:Hashtable
Aliases:Tags
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-VaultName

Especifica o nome do cofre de chaves ao qual esse cmdlet adiciona a chave. Esse cmdlet constrói o FQDN de um cofre de chaves com base no nome especificado por esse parâmetro e no ambiente atual.

Tipo:String
Cargo:0
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

-WhatIf

Mostra o que aconteceria se o cmdlet fosse executado. O cmdlet não é executado.

Tipo:SwitchParameter
Aliases:wi
Cargo:Named
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

Entradas

PSKeyVault

Parâmetros: InputObject (ByValue)

String

Saídas

PSKeyVaultKey