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

O Azure Key Vault é um serviço de nuvem que fornece um repositório seguro para segredos, como chaves, senhas e certificados. Este guia de início rápido se concentra no processo de implantação de um modelo do Azure Resource Manager (modelo ARM) para criar um cofre de chaves.

Um modelo Azure Resource Manager é um arquivo JSON (JavaScript Object Notation) que define a infraestrutura e a configuração do 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 seu ambiente atender aos pré-requisitos e você estiver familiarizado com o uso de modelos ARM, selecione o botão Implantar no Azure. O modelo será aberto no portal do Azure.

Botão para implantar o modelo do Resource Manager no Azure.

Pré-requisitos

Para concluir este artigo:

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

Examinar o modelo

O modelo usado neste início rápido é proveniente dos 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'))]"
    }
  }
}

Um recurso do Azure é definido no modelo:

  • Microsoft.KeyVault/vaults: crie um cofre de chaves do Azure. O modelo permite a autorização RBAC do Azure (enableRbacAuthorization: true), a exclusão temporária e a proteção contra a limpeza definitiva.

Mais exemplos de modelo do Azure Key Vault podem ser encontrados nos Modelos de Início Rápido do Azure.

Implantar o modelo

  1. Selecione a imagem a seguir para entrar no Azure e abrir um modelo. O modelo cria um cofre de chaves.

    Botão para implantar o modelo do Resource Manager no Azure.

  2. Selecione ou insira os seguintes valores. A menos que seja especificado, use o valor padrão.

    • Subscription: selecione uma assinatura 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, Centro dos EUA.
    • Nome do cofre: insira um nome para o cofre de chaves, que deve ser globalmente exclusivo dentro do vault.azure.net namespace.
    • Nome do SKU: selecione padrão ou premium. O padrão é standard.
  3. Selecione Examinar + criar e, em seguida, selecione Criar. Depois que o cofre de chaves for implantado com êxito, você receberá uma notificação.

Você também pode usar Azure PowerShell, o CLI do Azure ou a API REST para implantar o modelo. Para saber outros métodos de implantação, consulte Deploy templates.

Atribuir uma função RBAC ao cofre de chaves

O cofre de chaves criado por esse modelo usa Azure RBAC para autorização. Para criar ou ler chaves, segredos ou certificados por meio do plano de dados, você precisa atribuir a si mesmo uma função apropriada. Por exemplo, para gerenciar segredos, atribua a si mesmo 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 internas, consulte Funções internas do Azure para operações do plano de dados do Key Vault. As atribuições de função podem levar um ou dois minutos para serem propagadas.

Examinar os recursos implantados

Você pode usar o portal Azure para verificar o cofre de chaves ou usar o seguinte script de CLI do Azure ou Azure PowerShell:

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

Limpar os recursos

Outros guias de início rápido e tutoriais do Key Vault se baseiam neste início rápido. Se você planeja continuar a trabalhar com os tutoriais e inícios rápidos subsequentes, deixe esses recursos onde estão. Quando não for mais necessário, exclua o grupo de recursos, que exclui o cofre de chaves e os recursos relacionados.

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

Note

Excluir o grupo de recursos também exclui o cofre de chaves, mas o cofre entra em estado de exclusão temporária e permanece recuperável durante o período de retenção (por padrão, 90 dias). O nome do cofre permanece reservado globalmente durante esse período e, como a proteção contra a limpeza está habilitada, não é possível fazer a limpeza do cofre antes do prazo. Para os cofres de chaves padrão, cofres d exclusão temporária não incorrem em encargos. Para obter mais informações, consulte Visão geral da exclusão temporária do cofre de chaves.

Mais modelos do Key Vault Resource Manager

Outros guias de início rápido mostram como preencher um cofre de chaves com segredos, chaves ou certificados:

Segredos Keys Certificados

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

Próximas Etapas