Início rápido: Crie um cofre de chaves do Azure usando o modelo ARM

O Azure Key Vault é um serviço na cloud que fornece um armazenamento seguro para segredos, como chaves, palavras-passe e certificados. Este início rápido foca-se no processo de implementação de um modelo do Azure Resource Manager (modelo ARM) para criar um cofre de chaves.

Um modelo do Azure Resource Manager é um arquivo JSON (JavaScript Object Notation) que define a infraestrutura e a configuração do seu projeto. O modelo usa sintaxe declarativa. Você descreve a implantação pretendida sem escrever a sequência de comandos de programação para criar a implantação.

Se o seu ambiente cumpre os pré-requisitos e se está familiarizado com a utilização de modelos ARM, selecione o botão Implementar no Azure. O modelo será aberto no portal do Azure.

Botão para implantar o modelo do Gerenciador de Recursos no Azure.

Pré-requisitos

Para completar este artigo:

  • Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.

Rever o modelo

O modelo utilizado neste início rápido pertence aos Modelos de Início Rápido do Azure.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.42.1.51946",
      "templateHash": "5424899472990749957"
    }
  },
  "parameters": {
    "keyVaultName": {
      "type": "string",
      "metadata": {
        "description": "Specifies the name of the key vault."
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Specifies the Azure location where the key vault should be created."
      }
    },
    "enabledForDeployment": {
      "type": "bool",
      "defaultValue": false,
      "metadata": {
        "description": "Specifies whether Azure Virtual Machines are permitted to retrieve certificates stored as secrets from the key vault."
      }
    },
    "enabledForDiskEncryption": {
      "type": "bool",
      "defaultValue": false,
      "metadata": {
        "description": "Specifies whether Azure Disk Encryption is permitted to retrieve secrets from the vault and unwrap keys."
      }
    },
    "enabledForTemplateDeployment": {
      "type": "bool",
      "defaultValue": false,
      "metadata": {
        "description": "Specifies whether Azure Resource Manager is permitted to retrieve secrets from the key vault."
      }
    },
    "tenantId": {
      "type": "string",
      "defaultValue": "[subscription().tenantId]",
      "metadata": {
        "description": "Specifies the Azure Active Directory tenant ID that should be used for authenticating requests to the key vault. Get it by using Get-AzSubscription cmdlet."
      }
    },
    "skuName": {
      "type": "string",
      "defaultValue": "standard",
      "allowedValues": [
        "standard",
        "premium"
      ],
      "metadata": {
        "description": "Specifies whether the key vault is a standard vault or a premium vault."
      }
    },
    "secretName": {
      "type": "string",
      "metadata": {
        "description": "Specifies the name of the secret that you want to create."
      }
    },
    "secretValue": {
      "type": "securestring",
      "metadata": {
        "description": "Specifies the value of the secret that you want to create."
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.KeyVault/vaults",
      "apiVersion": "2023-07-01",
      "name": "[parameters('keyVaultName')]",
      "location": "[parameters('location')]",
      "properties": {
        "enabledForDeployment": "[parameters('enabledForDeployment')]",
        "enabledForDiskEncryption": "[parameters('enabledForDiskEncryption')]",
        "enabledForTemplateDeployment": "[parameters('enabledForTemplateDeployment')]",
        "enableRbacAuthorization": true,
        "tenantId": "[parameters('tenantId')]",
        "enableSoftDelete": true,
        "softDeleteRetentionInDays": 90,
        "enablePurgeProtection": true,
        "sku": {
          "name": "[parameters('skuName')]",
          "family": "A"
        },
        "networkAcls": {
          "defaultAction": "Allow",
          "bypass": "AzureServices"
        }
      }
    },
    {
      "type": "Microsoft.KeyVault/vaults/secrets",
      "apiVersion": "2023-07-01",
      "name": "[format('{0}/{1}', parameters('keyVaultName'), parameters('secretName'))]",
      "properties": {
        "value": "[parameters('secretValue')]"
      },
      "dependsOn": [
        "[resourceId('Microsoft.KeyVault/vaults', parameters('keyVaultName'))]"
      ]
    }
  ],
  "outputs": {
    "location": {
      "type": "string",
      "value": "[parameters('location')]"
    },
    "name": {
      "type": "string",
      "value": "[parameters('keyVaultName')]"
    },
    "resourceGroupName": {
      "type": "string",
      "value": "[resourceGroup().name]"
    },
    "resourceId": {
      "type": "string",
      "value": "[resourceId('Microsoft.KeyVault/vaults', parameters('keyVaultName'))]"
    }
  }
}

No modelo, está definido um recurso do Azure:

  • Microsoft.KeyVault/vaults: criar um cofre de chaves do Azure. O modelo permite a autorização RBAC do Azure (enableRbacAuthorization: true), a eliminação recuperável e a proteção contra eliminação permanente.

Mais exemplos de modelos Azure Key Vault podem ser encontrados em Azure Quickstart Templates.

Implementar o modelo

  1. Selecione a imagem seguinte para iniciar sessão no Azure e abrir um modelo. O modelo cria um cofre de chaves.

    Botão para implantar o modelo do Gerenciador de Recursos no Azure.

  2. Selecione ou introduza os seguintes valores. A menos que esteja especificado, usa o valor padrão.

    • Subscrição: selecione uma subscrição do Azure.
    • Grupo de recursos: selecione Criar novo, insira um nome exclusivo para o grupo de recursos e selecione OK.
    • Região: selecione um local. Por exemplo, E.U.A. Central.
    • Nome do Cofre: insira um nome para o cofre de chaves, que deve ser globalmente único dentro do vault.azure.net espaço de nomes.
    • Nome do SKU: selecione padrão ou premium. A predefinição é standard.
  3. Selecione Rever + criar e, em seguida, selecione Criar. Depois de o cofre de chaves ser implementado com sucesso, recebe uma notificação.

Também pode usar o Azure PowerShell, a CLI do Azure ou a API REST para implementar o template. Para aprender outros métodos de implementação, consulte Deploy templates.

Atribuir uma função RBAC do Key Vault

O cofre de chaves criado por este modelo utiliza o Azure RBAC para autorização. Para criar ou ler chaves, segredos ou certificados no plano de dados, tem de se atribuir a si próprio uma função adequada. Por exemplo, para gerir segredos, atribui-te a função Key Vault Secrets Officer:

echo "Enter your key vault name:" &&
read keyVaultName &&
az role assignment create --role "Key Vault Secrets Officer" \
    --assignee-object-id $(az ad signed-in-user show --query id -o tsv) \
    --scope $(az keyvault show --name $keyVaultName --query id -o tsv)

Note

Para outras funções incorporadas, veja funções incorporadas do Azure para operações do plano de dados do Key Vault. As atribuições de funções podem demorar um ou dois minutos a ser propagadas.

Analisar os recursos implementados

Pode usar o portal do Azure para consultar o cofre de chaves, ou usar o seguinte script CLI do Azure ou Azure PowerShell:

echo "Enter your key vault name:" &&
read keyVaultName &&
az keyvault show --name $keyVaultName

Limpeza de recursos

Outros guias de início rápido e tutoriais do Key Vault se baseiam nesse início rápido. Se tencionar prosseguir a trabalhar com instruções rápidas e tutoriais subsequentes, convém manter estes recursos. Quando já não for necessário, elimina o grupo de recursos, que elimina o cofre de chaves e os recursos relacionados.

echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName

Note

Eliminar o grupo de recursos também elimina o cofre de chaves, mas o cofre entra então num estado de eliminação suave e permanece recuperável durante o período de retenção (90 dias por defeito). O nome do cofre permanece reservado globalmente durante esse período e, como a proteção contra purgas está ativada, o cofre não pode ser purgado antecipadamente. Para cofres de chaves padrão, os cofres eliminados temporariamente não incorrem em custos. Para mais informações, consulte Key Vault visão geral de apagamento suave.

Mais modelos do Key Vault Resource Manager

Outros guias de início rápido explicam como adicionar segredos, chaves ou certificados a um cofre de chaves:

Segredos Keys Certificados

Você pode encontrar mais modelos do Key Vault aqui: Referência do Key Vault Resource Manager.

Passos seguintes