Gerir o Cofre da Chave em Azure Stack Hub usando PowerShell

Este artigo descreve como criar e gerir um cofre chave em Azure Stack Hub usando PowerShell. Você vai aprender a usar cmdlets Key Vault PowerShell para:

  • Criar um cofre de chaves.
  • Armazenar e gerir chaves e segredos criptográficos.
  • Autorizar utilizadores ou aplicativos a invocar operações no cofre.

Nota

Os cmdlets PowerShell do Cofre chave descritos neste artigo são fornecidos no Azure PowerShell SDK.

Pré-requisitos

Ativar a subscrição do seu inquilino para operações do Key Vault

Antes de poder emitir quaisquer operações contra um cofre chave, deve certificar-se de que a subscrição do seu inquilino está ativada para operações de abóbada. Para verificar se as operações do cofre de chaves estão ativadas, executar o seguinte comando:

Get-AzResourceProvider -ProviderNamespace Microsoft.KeyVault | ft -Autosize

Se a sua subscrição estiver ativada para operações de cofre, a saída mostra que o RegistrationState está registado para todos os tipos de recursos de um cofre de chaves.

Estado de registo do cofre chave em Powershell

Se as operações do cofre não estiverem ativadas, emita o seguinte comando para registar o serviço Key Vault na sua subscrição:

Register-AzResourceProvider -ProviderNamespace Microsoft.KeyVault

Se o registo for bem sucedido, a seguinte saída é devolvida:

Registo de cofre chave em Powershell bem sucedido

Quando invoca os comandos do cofre de chaves, poderá receber um erro, como "A subscrição não está registada para utilizar o espaço de nome 'Microsoft.KeyVault'". Se tiver um erro, confirme que ativou o fornecedor de recursos do Cofre de Chaves seguindo as instruções anteriores.

Criar um cofre de chaves

Antes de criar um cofre chave, crie um grupo de recursos para que todos os recursos relacionados com o cofre-chave existam num grupo de recursos. Utilize o seguinte comando para criar um novo grupo de recursos:

New-AzResourceGroup -Name "VaultRG" -Location local -verbose -Force

Novo grupo de recursos gerado em Powershell

Agora, use o cmdlet seguinte para criar um cofre chave no grupo de recursos que criou anteriormente. Este comando diz três parâmetros obrigatórios: nome do grupo de recursos, nome do cofre e localização geográfica.

Executar o seguinte comando para criar um cofre chave:

New-AzKeyVault -VaultName "Vault01" -ResourceGroupName "VaultRG" -Location local -verbose

Novo cofre-chave gerado em Powershell

A saída deste comando mostra as propriedades do cofre chave que criou. Quando uma aplicação acede a este cofre, deve usar a propriedade Vault URI, que está neste exemplo.

Implantação de Serviços da Federação de Diretórios Ativos (AD FS)

Numa implementação de FS AD, pode receber este aviso: "A política de acesso não está definida. Nenhum utilizador ou aplicação tem permissão de acesso para usar este cofre." Para resolver este problema, desafete uma política de acesso ao cofre utilizando o comando Set-AzKeyVaultAccessPolicy:

# Obtain the security identifier(SID) of the active directory user
$adUser = Get-ADUser -Filter "Name -eq '{Active directory user name}'"
$objectSID = $adUser.SID.Value

# Set the key vault access policy
Set-AzKeyVaultAccessPolicy -VaultName "{key vault name}" -ResourceGroupName "{resource group name}" -ObjectId "{object SID}" -PermissionsToKeys {permissionsToKeys} -PermissionsToSecrets {permissionsToSecrets} -BypassObjectIdValidation

Gerir chaves e segredos

Depois de criar um cofre, use estes passos para criar e gerir chaves e segredos no cofre.

Criar uma chave

Utilize o cmdlet Add-AzureKeyVaultKey para criar ou importar uma chave protegida por software num cofre chave:

Add-AzureKeyVaultKey -VaultName "Vault01" -Name "Key01" -verbose -Destination Software

O -Destination parâmetro é utilizado para especificar que a chave está protegida pelo software. Quando a chave é criada com sucesso, o comando produz os detalhes da chave criada.

Nova chave do cofre gerada em Powershell

Agora pode referenciar a tecla criada utilizando o seu URI. Se criar ou importar uma chave com o mesmo nome que uma chave existente, a chave original é atualizada com os valores especificados na nova chave. Pode aceder à versão anterior utilizando o URI específico da versão da chave. Por exemplo:

  • Use https://vault10.vault.local.azurestack.external:443/keys/key01 para obter sempre a versão atual.
  • Use https://vault010.vault.local.azurestack.external:443/keys/key01/d0b36ee2e3d14e9f967b8b6b1d38938a para obter esta versão específica.

Pegue uma chave

Utilize o cmdlet Get-AzureKeyVaultKey para ler uma chave e os seus detalhes:

Get-AzureKeyVaultKey -VaultName "Vault01" -Name "Key01"

Criar um segredo

Utilize o cmdlet Set-AzureKeyVaultSecret para criar ou atualizar um segredo num cofre. Um segredo é criado se não existirmos já. Uma nova versão do segredo é criada se já existe:

$secretvalue = ConvertTo-SecureString "User@123" -AsPlainText -Force
Set-AzureKeyVaultSecret -VaultName "Vault01" -Name "Secret01" -SecretValue $secretvalue

Criar um segredo em Powershell

Obter um segredo

Use o cmdlet Get-AzureKeyVaultSecret para ler um segredo num cofre de chaves. Este comando pode devolver todas ou versões específicas de um segredo:

Get-AzureKeyVaultSecret -VaultName "Vault01" -Name "Secret01"

Depois de criar as chaves e segredos, pode autorizar aplicações externas a usá-las.

Autorizar uma aplicação a usar uma chave ou segredo

Utilize o cmdlet seguinte para autorizar uma aplicação a aceder a uma chave ou segredo no cofre da chave.

No exemplo seguinte, o nome do cofre é ContosoKeyVault,e a app que pretende autorizar tem um ID de cliente de 8f8c4bbd-485b-45fd-98f7-ec6300b7b4ed. Para autorizar a aplicação, executar o seguinte comando. Também pode especificar o parâmetro PermissõesToKeys para definir permissões para um utilizador, uma aplicação ou um grupo de segurança.

Ao utilizar o cmdlet contra um ambiente AD FS configurado Azure Stack Hub, o parâmetro BypassObjectIdValidation deve ser fornecido

Set-AzKeyVaultAccessPolicy -VaultName 'ContosoKeyVault' -ServicePrincipalName 8f8c4bbd-485b-45fd-98f7-ec6300b7b4ed -PermissionsToKeys decrypt,sign -BypassObjectIdValidation

Se quiser autorizar a mesma aplicação a ler segredos no seu cofre, execute o seguinte cmdlet:

Set-AzKeyVaultAccessPolicy -VaultName 'ContosoKeyVault' -ServicePrincipalName 8f8c4bbd-485b-45fd-98f7-ec6300 -PermissionsToKeys Get -BypassObjectIdValidation

Passos seguintes