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 y certificado. 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 una clave.
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. Usted describe la implementación deseada sin escribir la secuencia de comandos de programación necesaria para crearla.
Si su entorno cumple los requisitos previos y está familiarizado/a con el uso de plantillas de ARM, seleccione el botón Implementar en Azure. La plantilla se abrirá en el portal de Azure.
Prerrequisitos
Para completar este artículo:
- Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
- El usuario necesitaría tener asignado un rol integrado de Azure, siendo colaborador el rol recomendado. Más información aquí.
Revisión de la plantilla
La plantilla usada en este inicio rápido forma parte de las plantillas de inicio rápido de 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": "9113739717796369919"
}
},
"parameters": {
"vaultName": {
"type": "string",
"metadata": {
"description": "The name of the key vault to be created."
}
},
"keyName": {
"type": "string",
"metadata": {
"description": "The name of the key to be created."
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "The location of the resources."
}
},
"skuName": {
"type": "string",
"defaultValue": "standard",
"allowedValues": [
"standard",
"premium"
],
"metadata": {
"description": "The SKU of the vault to be created."
}
},
"keyType": {
"type": "string",
"defaultValue": "RSA",
"allowedValues": [
"EC",
"EC-HSM",
"RSA",
"RSA-HSM"
],
"metadata": {
"description": "The JsonWebKeyType of the key to be created."
}
},
"keyOps": {
"type": "array",
"defaultValue": [],
"metadata": {
"description": "The permitted JSON web key operations of the key to be created."
}
},
"keySize": {
"type": "int",
"defaultValue": 2048,
"metadata": {
"description": "The size in bits of the key to be created."
}
},
"curveName": {
"type": "string",
"defaultValue": "",
"allowedValues": [
"",
"P-256",
"P-256K",
"P-384",
"P-521"
],
"metadata": {
"description": "The JsonWebKeyCurveName of the key to be created."
}
}
},
"resources": [
{
"type": "Microsoft.KeyVault/vaults",
"apiVersion": "2023-07-01",
"name": "[parameters('vaultName')]",
"location": "[parameters('location')]",
"properties": {
"enableRbacAuthorization": true,
"enableSoftDelete": true,
"softDeleteRetentionInDays": 90,
"enablePurgeProtection": true,
"enabledForDeployment": false,
"enabledForDiskEncryption": false,
"enabledForTemplateDeployment": false,
"tenantId": "[subscription().tenantId]",
"sku": {
"name": "[parameters('skuName')]",
"family": "A"
},
"networkAcls": {
"defaultAction": "Allow",
"bypass": "AzureServices"
}
}
},
{
"type": "Microsoft.KeyVault/vaults/keys",
"apiVersion": "2023-07-01",
"name": "[format('{0}/{1}', parameters('vaultName'), parameters('keyName'))]",
"properties": {
"kty": "[parameters('keyType')]",
"keyOps": "[parameters('keyOps')]",
"keySize": "[parameters('keySize')]",
"curveName": "[parameters('curveName')]"
},
"dependsOn": [
"[resourceId('Microsoft.KeyVault/vaults', parameters('vaultName'))]"
]
}
],
"outputs": {
"proxyKey": {
"type": "object",
"value": "[reference(resourceId('Microsoft.KeyVault/vaults/keys', parameters('vaultName'), parameters('keyName')), '2023-07-01')]"
},
"location": {
"type": "string",
"value": "[parameters('location')]"
},
"name": {
"type": "string",
"value": "[parameters('vaultName')]"
},
"resourceGroupName": {
"type": "string",
"value": "[resourceGroup().name]"
},
"resourceId": {
"type": "string",
"value": "[resourceId('Microsoft.KeyVault/vaults', parameters('vaultName'))]"
}
}
}
En la plantilla se definen dos recursos:
- Microsoft. KeyVault/vaults: cree un almacén de claves de Azure.
- Microsoft. KeyVault/vaults/keys: cree una clave del almacén de claves.
La plantilla crea el almacén de claves con la autorización de Azure RBAC habilitada. Esto significa que el almacén de claves usa el control de acceso basado en roles de Azure (Azure RBAC) para la autorización en el plano de datos, en lugar de las directivas de acceso.
Puede encontrar más ejemplos de plantillas de Azure Key Vault en Plantillas de inicio rápido de Azure.
Parámetros de plantilla
| Parámetro | Descripción |
|---|---|
| vaultName | Nombre del nuevo almacén de claves. Debe ser único globalmente dentro del vault.azure.net espacio de nombres. |
| keyName | Nombre de la clave que se va a crear en el almacén. |
| ubicación | Región de Azure para los recursos. El valor predeterminado es la ubicación del grupo de recursos. |
| skuName | SKU del almacén.
standard (valor predeterminado) o premium. |
| keyType | Tipo de clave que se va a crear. Uno de RSA, RSA-HSM, EC, EC-HSM. El valor predeterminado es RSA. Consulte JsonWebKeyType. |
| keySize | Tamaño en bits de la clave (solo RSA). El valor predeterminado es 2048. |
| curveName | Nombre de la curva elíptica (solo para claves de EC). Uno de P-256, P-256K, P-384, P-521. Consulte JsonWebKeyCurveName. |
| keyOps | Operaciones de clave web JSON permitidas para la clave (por ejemplo, ["sign","verify","encrypt","decrypt","wrapKey","unwrapKey"]). Matriz vacía (valor predeterminado) permite todas las operaciones. |
Implementación de la plantilla
Seleccione la imagen siguiente para iniciar sesión en Azure y abrir una plantilla. La plantilla crea un almacén de claves y una clave.
Seleccione o escriba los siguientes valores. A menos que se especifique, use el valor predeterminado.
- Suscripción: 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.
-
Nombre del almacén: escriba un nombre para el almacén de claves, que debe ser globalmente único dentro del
vault.azure.netespacio de nombres. - Nombre de clave: escriba un nombre para la clave que se almacena en el almacén de claves.
- Nombre de SKU: seleccione Estándar o Premium. El valor predeterminado es estándar.
- Tipo de clave: seleccione un tipo de clave. El valor predeterminado es RSA.
- Tamaño de clave: escriba un tamaño de clave (claves RSA). El valor predeterminado es 2048.
- Nombre de la curva: para las claves EC, seleccione una curva. Deje en blanco las claves RSA.
Seleccione Revisar y crear y, luego, Crear. Una vez que el almacén de claves y la clave se hayan desplegado correctamente, se recibe 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 las claves 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 Crypto Officer a sí mismo en el almacén de claves:
echo "Enter your key vault name:" && read keyVaultName && az role assignment create --role "Key Vault Crypto 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 Azure Portal para comprobar el almacén de claves y la clave. Como alternativa, use la siguiente CLI de Azure o el script de Azure PowerShell para enumerar la clave creada.
echo "Enter your key vault name:" &&
read keyVaultName &&
az keyvault key list --vault-name $keyVaultName &&
echo "Press [ENTER] to continue ..."
La creación de una clave mediante una plantilla de ARM es diferente de la creación de una clave a través del plano de datos
Creación de una clave mediante ARM
Solo es posible crear claves nuevas . No es posible actualizar las claves existentes ni crear nuevas versiones de las claves existentes. Si la clave ya existe, la clave existente se recupera del almacenamiento y se usa (no se producirá ninguna operación de escritura).
Para poder usar esta API, el autor de la llamada debe tener la acción "Microsoft.KeyVault/vaults/keys/write" (Control de acceso basado en rol de Azure RBAC). El rol integrado "Colaborador de Key Vault" es suficiente, ya que autoriza todas las acciones de RBAC de Azure que coinciden con el patrón "Microsoft.KeyVault/*".
API existente (creación de una clave a través del plano de datos)
- Es posible crear nuevas claves, actualizar las claves existentes y crear nuevas versiones de las claves existentes.
- El autor de la llamada debe estar autorizado para usar esta API. Si el almacén está habilitado para Azure RBAC, el autor de la llamada debe tener "Microsoft. KeyVault/vaults/keys/create/action" Azure RBAC DataAction.
Limpieza de recursos
Otros inicios rápidos y tutoriales de Key Vault se basan en este 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 lo necesite, elimine el grupo de recursos; de este modo se eliminarán también Key Vault y los recursos relacionados. Para eliminar el grupo de recursos mediante la 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 una clave mediante una plantilla de Resource Manager y ha validado la implementación. Para más información sobre Key Vault y Azure Resource Manager, consulte estos artículos.
- Lea una introducción a Azure Key Vault.
- Obtenga más información sobre Azure Resource Manager.
- Consulte Introducción a la seguridad de Azure Key Vault