Quickstart: set and retrieve a secret from Azure Key Vault using a ARM templateQuickstart: Set and retrieve a secret from Azure Key Vault using an ARM template

Azure Key Vault é um serviço de nuvem que fornece uma loja segura para segredos, tais como chaves, senhas, certificados e outros segredos.Azure Key Vault is a cloud service that provides a secure store for secrets, such as keys, passwords, certificates, and other secrets. Este quickstart foca-se no processo de implantação de um modelo de Gestor de Recursos Azure (modelo ARM) para criar um cofre chave e um segredo.This quickstart focuses on the process of deploying an Azure Resource Manager template (ARM template) to create a key vault and a secret.

Um modelo do ARM é um ficheiro JavaScript Object Notation (JSON) que define a infraestrutura e a configuração do seu projeto.An ARM template is a JavaScript Object Notation (JSON) file that defines the infrastructure and configuration for your project. O modelo utiliza sintaxe declarativa.The template uses declarative syntax. Em sintaxe declarativa o programador descreve a implementação pretendida sem escrever a sequência de comandos de programação para criar a implementação.In declarative syntax, you describe your intended deployment without writing the sequence of programming commands to create the deployment.

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.If your environment meets the prerequisites and you're familiar with using ARM templates, select the Deploy to Azure button. O modelo será aberto no portal do Azure.The template will open in the Azure portal.

Implementar no AzureDeploy to Azure

Pré-requisitosPrerequisites

Para completar este artigo:To complete this article:

  • Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.If you don't have an Azure subscription, create a free account before you begin.

  • O modelo precisa do ID de objeto de utilizador do Azure AD para configurar permissões.Your Azure AD user object ID is needed by the template to configure permissions. O procedimento a seguir obtém o ID do objeto (GUID).The following procedure gets the object ID (GUID).

    1. Executar o seguinte comando Azure PowerShell ou Azure CLI selecione Experimente-o e, em seguida, cole o script no painel de conchas.Run the following Azure PowerShell or Azure CLI command by select Try it, and then paste the script into the shell pane. Para colar o script, clique com o botão direito da casca e, em seguida, selecione Pasta.To paste the script, right-click the shell, and then select Paste.

      echo "Enter your email address that is used to sign in to Azure:" &&
      read upn &&
      az ad user show --id $upn --query "objectId" &&
      echo "Press [ENTER] to continue ..."
      
    2. Escreva a identificação do objeto.Write down the object ID. Precisa na próxima secção deste arranque rápido.You need it in the next section of this quickstart.

Rever o modeloReview the template

O modelo utilizado neste início rápido pertence aos Modelos de Início Rápido do Azure.The template used in this quickstart is from Azure Quickstart Templates.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "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,
      "allowedValues": [
        true,
        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,
      "allowedValues": [
        true,
        false
      ],
      "metadata": {
        "description": "Specifies whether Azure Disk Encryption is permitted to retrieve secrets from the vault and unwrap keys."
      }
    },
    "enabledForTemplateDeployment": {
      "type": "bool",
      "defaultValue": false,
      "allowedValues": [
        true,
        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."
      }
    },
    "objectId": {
      "type": "string",
      "metadata": {
        "description": "Specifies the object ID of a user, service principal or security group in the Azure Active Directory tenant for the vault. The object ID must be unique for the list of access policies. Get it by using Get-AzADUser or Get-AzADServicePrincipal cmdlets."
      }
    },
    "keysPermissions": {
      "type": "array",
      "defaultValue": [
        "list"
      ],
      "metadata": {
        "description": "Specifies the permissions to keys in the vault. Valid values are: all, encrypt, decrypt, wrapKey, unwrapKey, sign, verify, get, list, create, update, import, delete, backup, restore, recover, and purge."
      }
    },
    "secretsPermissions": {
      "type": "array",
      "defaultValue": [
        "list"
      ],
      "metadata": {
        "description": "Specifies the permissions to secrets in the vault. Valid values are: all, get, list, set, delete, backup, restore, recover, and purge."
      }
    },
    "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": "2019-09-01",
      "name": "[parameters('keyVaultName')]",
      "location": "[parameters('location')]",
      "properties": {
        "enabledForDeployment": "[parameters('enabledForDeployment')]",
        "enabledForDiskEncryption": "[parameters('enabledForDiskEncryption')]",
        "enabledForTemplateDeployment": "[parameters('enabledForTemplateDeployment')]",
        "tenantId": "[parameters('tenantId')]",
        "accessPolicies": [
          {
            "objectId": "[parameters('objectId')]",
            "tenantId": "[parameters('tenantId')]",
            "permissions": {
              "keys": "[parameters('keysPermissions')]",
              "secrets": "[parameters('secretsPermissions')]"
            }
          }
        ],
        "sku": {
          "name": "[parameters('skuName')]",
          "family": "A"
        },
        "networkAcls": {
          "defaultAction": "Allow",
          "bypass": "AzureServices"
        }
      }
    },
    {
      "type": "Microsoft.KeyVault/vaults/secrets",
      "apiVersion": "2019-09-01",
      "name": "[concat(parameters('keyVaultName'), '/', parameters('secretName'))]",
      "location": "[parameters('location')]",
      "dependsOn": [
        "[resourceId('Microsoft.KeyVault/vaults', parameters('keyVaultName'))]"
      ],
      "properties": {
        "value": "[parameters('secretValue')]"
      }
    }
  ]
}

Dois recursos Azure são definidos no modelo:Two Azure resources are defined in the template:

Mais amostras de modelo de azure key vault podem ser encontradas em modelos Azure Quickstart.More Azure Key Vault template samples can be found in Azure Quickstart Templates.

Implementar o modeloDeploy the template

  1. Selecione a imagem seguinte para iniciar sessão no Azure e abrir um modelo.Select the following image to sign in to Azure and open a template. O modelo cria um cofre chave e um segredo.The template creates a key vault and a secret.

    Implementar no AzureDeploy to Azure

  2. Selecione ou introduza os seguintes valores.Select or enter the following values.

    Modelo ARM, integração do Cofre chave, portal de implantação

    A menos que seja especificado, use o valor padrão para criar o cofre chave e um segredo.Unless it's specified, use the default value to create the key vault and a secret.

    • Subscrição: selecione uma subscrição do Azure.Subscription: select an Azure subscription.
    • Grupo de recursos: selecione Criar novo, insira um nome único para o grupo de recursos e, em seguida, clique em OK.Resource group: select Create new, enter a unique name for the resource group, and then click OK.
    • Localização: selecione uma localização.Location: select a location. Por exemplo, E.U.A. Central.For example, Central US.
    • Key Vault Name: insira um nome para o cofre de chaves, que deve ser globalmente único dentro do espaço de nome .vault.azure.net.Key Vault Name: enter a name for the key vault, which must be globally unique within the .vault.azure.net namespace. Precisa do nome na secção seguinte quando validar a implementação.You need the name in the next section when you validate the deployment.
    • Id do inquilino: a função do modelo recupera automaticamente o ID do seu inquilino.Tenant Id: the template function automatically retrieves your tenant ID. Não altere o valor predefinido.Don't change the default value.
    • ID do utilizador de anúncios: introduza o seu ID do objeto de utilizador Azure que recuperou dos Pré-requisitos.Ad User Id: enter your Azure AD user object ID that you retrieved from Prerequisites.
    • Nome Secreto: insira um nome para o segredo que guarda no cofre da chave.Secret Name: enter a name for the secret that you store in the key vault. Por exemplo, palavra-passe.For example, adminpassword.
    • Valor Secreto: insira o valor secreto.Secret Value: enter the secret value. Se armazenar uma palavra-passe, recomenda-se a utilização da palavra-passe gerada que criou nos Pré-requisitos.If you store a password, it's recommended to use the generated password you created in Prerequisites.
    • Aceito os termos e condições acima apresentados: selecione.I agree to the terms and conditions state above: Select.
  3. Selecione Comprar.Select Purchase. Depois de o cofre da chave ter sido implantado com sucesso, recebe uma notificação:After the key vault has been deployed successfully, you get a notification:

    Modelo ARM, integração do Cofre chave, implementar notificação do portal

O portal do Azure é utilizado para implementar o modelo.The Azure portal is used to deploy the template. Além do portal Azure, também pode utilizar o Azure PowerShell, Azure CLI e REST API.In addition to the Azure portal, you can also use the Azure PowerShell, Azure CLI, and REST API. Para aprender outros métodos de implementação, consulte os modelos de implementação.To learn other deployment methods, see Deploy templates.

Revisão dos recursos implantadosReview deployed resources

Pode utilizar o portal Azure para verificar o cofre de chaves e o segredo, ou utilizar o seguinte script Azure CLI ou Azure PowerShell para listar o segredo criado.You can either use the Azure portal to check the key vault and the secret, or use the following Azure CLI or Azure PowerShell script to list the secret created.

echo "Enter your key vault name:" &&
read keyVaultName &&
az keyvault secret list --vault-name $keyVaultName &&
echo "Press [ENTER] to continue ..."

A saída é semelhante a:The output looks similar to:

Limpar os recursosClean up resources

Outros inícios rápidos e tutoriais do Key Vault têm por base este início rápido.Other Key Vault quickstarts and tutorials build upon this quickstart. Se quiser continuar a trabalhar com os inícios rápidos e tutoriais subsequentes, pode manter estes recursos.If you plan to continue on to work with subsequent quickstarts and tutorials, you may wish to leave these resources in place. Quando já não for necessário, elimine o grupo de recursos, que elimina o Key Vault e todos os recursos relacionados.When no longer needed, delete the resource group, which deletes the Key Vault and related resources. Para eliminar o grupo de recursos utilizando a Azure CLI ou a Azure PowerShell:To delete the resource group by using Azure CLI or Azure PowerShell:

echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."

Passos seguintesNext steps

Neste arranque rápido, criou um cofre chave e um segredo usando um modelo ARM, e validou a implementação.In this quickstart, you created a key vault and a secret using an ARM template, and validated the deployment. Para saber mais sobre Key Vault e Azure Resource Manager, continue para os artigos abaixo.To learn more about Key Vault and Azure Resource Manager, continue on to the articles below.