Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Azure Key Vault es un servicio en la nube que proporciona un almacén seguro para secretos, como claves, contraseñas, certificados y otros secretos. Este inicio rápido se centra en el proceso de implementación de una plantilla de Azure Resource Manager (plantilla de ARM) para crear un almacén de claves y un secreto.
Una plantilla Azure Resource Manager es un archivo de notación de objetos JavaScript (JSON) que define la infraestructura y la configuración del proyecto. La plantilla usa sintaxis declarativa. Describes tu implementación deseada sin escribir la secuencia de comandos de programación para crearla.
Si el entorno cumple los requisitos previos y está familiarizado con el uso de plantillas de ARM, seleccione el botón Deploy para Azure. La plantilla se abrirá en el portal de Azure.
Prerrequisitos
Para completar este artículo:
- Si no tiene una suscripción de Azure, cree una cuenta free antes de comenzar.
Revisión de la plantilla
La plantilla que se usa en este inicio rápido procede de Azure Plantillas de inicio rápido.
{
"$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": "10998800669048245550"
}
},
"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."
}
},
"secretsObject": {
"type": "secureObject",
"metadata": {
"description": "Specifies all secrets {\"secretName\":\"\",\"secretValue\":\"\"} wrapped in a secure object."
}
}
},
"resources": [
{
"type": "Microsoft.KeyVault/vaults",
"apiVersion": "2023-07-01",
"name": "[parameters('keyVaultName')]",
"location": "[parameters('location')]",
"properties": {
"enabledForDeployment": "[parameters('enabledForDeployment')]",
"enabledForTemplateDeployment": "[parameters('enabledForTemplateDeployment')]",
"enabledForDiskEncryption": "[parameters('enabledForDiskEncryption')]",
"enableRbacAuthorization": true,
"tenantId": "[parameters('tenantId')]",
"enableSoftDelete": true,
"softDeleteRetentionInDays": 90,
"enablePurgeProtection": true,
"sku": {
"name": "[parameters('skuName')]",
"family": "A"
},
"networkAcls": {
"defaultAction": "Allow",
"bypass": "AzureServices"
}
}
},
{
"copy": {
"name": "secrets",
"count": "[length(parameters('secretsObject').secrets)]"
},
"type": "Microsoft.KeyVault/vaults/secrets",
"apiVersion": "2023-07-01",
"name": "[format('{0}/{1}', parameters('keyVaultName'), parameters('secretsObject').secrets[copyIndex()].secretName)]",
"properties": {
"value": "[parameters('secretsObject').secrets[copyIndex()].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'))]"
}
}
}
En la plantilla se definen dos Azure recursos:
-
Microsoft.KeyVault/vaults: cree un almacén de claves de Azure con la autorización de Azure RBAC habilitada (
enableRbacAuthorization: true), la eliminación temporal habilitada y la protección contra purga habilitada. -
Microsoft.KeyVault/vaults/secrets: crear uno o varios secretos de Key Vault, iterando sobre el array
secretsObject.secretspasado a la plantilla.
Dado que la bóveda usa Azure RBAC para la autorización del plano de datos, se concede acceso a los secretos asignando un rol de Azure (en lugar de configurar directivas de acceso).
Puede encontrar más ejemplos de plantillas Azure Key Vault en Azure Plantillas de inicio rápido.
Implementación de la plantilla
Seleccione la siguiente imagen para iniciar sesión en Azure y abrir una plantilla. La plantilla crea un almacén de claves y un secreto.
Seleccione o escriba los siguientes valores. A menos que se especifique, use el valor predeterminado.
Subscription: seleccione una suscripción de Azure.
Grupo de recursos: seleccione Crear nuevo, escriba un nombre único para el grupo de recursos y, a continuación, seleccione Aceptar.
Región: seleccione una ubicación. Por ejemplo, Centro de EE. UU.
Key Vault Name: escriba un nombre para el key vault, que debe ser globalmente único dentro del espacio de nombres
vault.azure.net. Necesitará este nombre en la sección siguiente al validar la implementación.Nombre de SKU: seleccione Estándar o Premium. El valor predeterminado es estándar.
Objeto Secrets: proporcione los secretos para crearlos como un objeto JSON con una
secretsmatriz. Por ejemplo:{ "secrets": [ { "secretName": "adminpassword", "secretValue": "<your-secret-value>" } ] }Dado que secrets Object es un
secureObjectparámetro, su valor no se registra ni se devuelve después de la implementación.
Seleccione Revisar y crear y, luego, Crear. Una vez que se hayan desplegado correctamente el almacén de claves y el secreto, recibirás una notificación.
También puede usar Azure PowerShell, el CLI de Azure o la API REST para implementar la plantilla. Para obtener información sobre otros métodos de implementación, consulte Implementación de plantillas.
Asignar un rol de RBAC para Key Vault
El almacén de claves creado por esta plantilla usa Azure RBAC para la autorización. Para acceder a los secretos a través del plano de datos (por ejemplo, mediante el CLI de Azure o Azure PowerShell), debe asignarse un rol adecuado.
Obtenga el identificador de objeto del usuario de Microsoft Entra:
az ad signed-in-user show --query id -o tsvAsígnese el rol Key Vault Secrets Officer en el almacén de claves:
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)Nota:
Las asignaciones de roles pueden tardar un minuto o dos en propagarse.
Revisión de los recursos implementados
Puede usar el portal de Azure para comprobar el almacén de claves y el secreto, o bien usar el siguiente script de CLI de Azure o Azure PowerShell para enumerar el secreto creado.
echo "Enter your key vault name:" &&
read keyVaultName &&
az keyvault secret list --vault-name $keyVaultName &&
echo "Press [ENTER] to continue ..."
Limpieza de recursos
Otros tutoriales y guías de inicio rápido de Key Vault se basan en esta guía de inicio rápido. Si tiene pensado seguir trabajando en otros inicios rápido y tutoriales, considere la posibilidad de dejar estos recursos activos. Cuando ya no sea necesario, elimine el grupo de recursos, que elimina el Key Vault y los recursos relacionados. Para eliminar el grupo de recursos mediante CLI de Azure o Azure PowerShell:
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."
Nota:
Al eliminar el grupo de recursos también se elimina el almacén de claves, pero el almacén, a continuación, entra en un estado eliminado temporalmente y permanece recuperable durante el período de retención (90 días de forma predeterminada). El nombre del almacén permanece reservado globalmente durante ese período y, dado que la protección contra purgas está habilitada, el almacén no se puede eliminar definitivamente de forma anticipada. En el caso de los almacenes de claves estándar, los almacenes eliminados temporalmente no incurren en cargos. Para obtener más información, consulte Información general de la eliminación temporal de Key Vault.
Pasos siguientes
En este inicio rápido, ha creado un almacén de claves y un secreto mediante una plantilla de Resource Manager y ha validado la implementación. Para obtener más información sobre Key Vault y Azure Resource Manager, continúe con los artículos siguientes.
- Lea un Información general de Azure Key Vault
- Obtenga más información sobre Azure Resource Manager
- Revise la visión general de seguridad de Key Vault