Inicio rápido: Creación de un almacén de claves de Azure y una clave mediante una plantilla de Resource Manager
Azure Key Vault es un servicio en la nube que proporciona un lugar seguro para almacenar los secretos,como claves, contraseñas y certificados. Este inicio rápido se centra en el proceso de implementar una plantilla de Azure Resource Manager para crear un almacén de claves y una clave.
Requisitos previos
Para completar este artículo:
- Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
- El usuario debería tener asignado un rol integrado de Azure, rol de colaborador recomendado. Obtén más información aquí
Revisión de la plantilla
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"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": "2021-11-01-preview",
"name": "[parameters('vaultName')]",
"location": "[parameters('location')]",
"properties": {
"accessPolicies": [],
"enableRbacAuthorization": true,
"enableSoftDelete": true,
"softDeleteRetentionInDays": "90",
"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": "2021-11-01-preview",
"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')))]"
}
}
}
En la plantilla se definen dos recursos:
Puede encontrar más ejemplos de plantillas de Azure Key Vault en Plantillas de inicio rápido de Azure.
Parámetros y definiciones
Parámetro | Definición |
---|---|
keyOps | Especifica las operaciones que se pueden realizar utilizando esta clave. Si no se especifica este parámetro, se pueden realizar todas las operaciones. Los valores aceptables para este parámetro son una lista separada por comas de las operaciones con clave, tal y como se define en la especificación JSON Web Key (JWK): ["sign", "verify", "encrypt", "decrypt", " wrapKey", "unwrapKey"] |
CurveName | Nombre de la curva elíptica (EC) para el tipo de clave EC. Consulte JsonWebKeyCurveName |
Kty | Tipo de clave que se va a crear. Para saber qué valores pueden usarse, consulte JsonWebKeyType |
Etiquetas | Metadatos específicos de la aplicación en forma de pares clave-valor. |
nbf | Especifica una fecha y hora como un objeto DateTime antes de la cual no se puede usar la clave. El formato sería una marca temporal de Unix (el número de segundos transcurridos en la época Unix, desde el 1 de enero de 1970 UTC). |
exp | Especifica la hora de vencimiento como un objeto DateTime. El formato sería una marca temporal de Unix (el número de segundos transcurridos en la época Unix, desde el 1 de enero de 1970 UTC). |
Implementación de la plantilla
Puede utilizar Azure Portal, Azure PowerShell, CLI de Azure o API REST. Para obtener información sobre otros métodos de implementación, consulte Implementación de plantillas.
Revisión de los recursos implementados
Puede usar Azure Portal para comprobar el almacén de claves y la clave. Como alternativa, use el siguiente script de la CLI de Azure o 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 ..."
Crear una clave con una plantilla de ARM es diferente de crear la clave mediante el 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 realizarán operaciones de escritura).
Para poder usar esta API, el autor de llamada debe tener la acción "Microsoft.KeyVault/vaults/keys/write" del control de acceso basado en roles (RBAC). El rol integrado "Colaborador del almacén de claves" es suficiente, ya que autoriza todas las acciones de RBAC que coincidan con el patrón "Microsoft.KeyVault/*".
API existente (creación de la clave mediante el plano de datos)
- Es posible crear nuevas claves, actualizar las claves existentes y crear nuevas versiones de las claves existentes.
- El autor de llamada debe estar autorizado para usar esta API. Si el almacén usa directivas de acceso, el autor de llamada debe tener el permiso de clave "crear"; si el almacén está habilitado para RBAC, el autor de llamada debe tener la acción de datos "Microsoft.KeyVault/vaults/keys/create/action" de RBAC.
Limpieza de recursos
Otras guías de inicio rápido y tutoriales de Key Vault se basan en esta. Si tiene pensado seguir trabajando en otras guías de inicio 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 ..."
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