Compartir a través de


Administración de Key Vault mediante la CLI de Azure

En este artículo se explica cómo empezar a trabajar con Azure Key Vault mediante la CLI de Azure. Puede ver información sobre:

  • Procedimiento para crear un contenedor protegido (un almacén) en Azure
  • Adición de una clave, un secreto o un certificado al almacén de claves
  • Registro de una aplicación con el identificador de Microsoft Entra
  • Autorización de una aplicación para usar una clave o un secreto
  • Establecimiento de directivas de acceso avanzado del almacén de claves
  • Trabajar con módulos de seguridad de hardware (HSM)
  • Eliminar el almacén de claves y las claves y los secretos asociados
  • Varios comandos de la interfaz de la línea de comandos multiplataforma de Azure

Azure Key Vault está disponible en la mayoría de las regiones. Para obtener más información, consulte la página de precios de Key Vault.

Nota:

En este artículo no se incluyen instrucciones sobre cómo escribir la aplicación de Azure que incluye uno de los pasos, que muestra cómo autorizar a una aplicación a usar una clave o un secreto en el almacén de claves.

Para obtener información general sobre Azure Key Vault, consulte ¿Qué es Azure Key Vault?) Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.

Prerrequisitos

Para usar los comandos de la CLI de Azure, debe tener los siguientes elementos:

  • Una suscripción a Microsoft Azure. Si no tiene una, puede registrarse para una evaluación gratuita.
  • Cli de Azure versión 2.0 o posterior. Para instalar la versión más reciente, consulte Instalación de la CLI de Azure.
  • Una aplicación que se configurará para usar la clave o la contraseña que cree en este artículo. Hay disponible una aplicación de ejemplo en el Centro de descarga de Microsoft. Para obtener instrucciones, consulte el archivo Léame incluido.

Cómo obtener ayuda con la interfaz multiplataforma de Azure Command-Line

En este artículo se asume que está familiarizado con la interfaz de la línea de comandos (Bash, Terminal, símbolo del sistema).

El parámetro --help o -h se puede usar para ver la ayuda de comandos específicos. Como alternativa, también se puede usar el formato de ayuda de Azure [comando] [opciones]. Cuando se duda de los parámetros necesarios para un comando, consulte la ayuda. Por ejemplo, los siguientes comandos devuelven la misma información:

az account set --help
az account set -h

También puede leer los siguientes artículos para familiarizarse con Azure Resource Manager en la interfaz de Command-Line multiplataforma de Azure:

Procedimiento para crear un contenedor protegido (un almacén) en Azure

Los almacenes son contenedores protegidos respaldados por módulos de seguridad de hardware. Los almacenes ayudan a reducir las posibilidades de que se produzca una pérdida accidental de información de seguridad centralizando el almacenamiento de los secretos de aplicación. Key Vault también permite controlar y registrar el acceso a todo lo que está almacenado en ellos. Azure Key Vault puede controlar la solicitud y renovación de certificados de Seguridad de la capa de transporte (TLS), lo que proporciona las características necesarias para una solución sólida de administración del ciclo de vida de los certificados. En los pasos siguientes, creará un almacén.

Conexión a las suscripciones

Para iniciar sesión de forma interactiva, use el siguiente comando:

az login

Para iniciar sesión con una cuenta de organización, puede pasar el nombre de usuario y la contraseña.

az login -u username@domain.com -p password

Si tiene más de una suscripción y necesita especificar qué usar, escriba lo siguiente para ver las suscripciones de la cuenta:

az account list

Especifique una suscripción con el parámetro subscription.

az account set --subscription <subscription name or ID>

Para más información sobre cómo configurar la interfaz de Command-Line multiplataforma de Azure, consulte Instalación de la CLI de Azure.

Creación de un nuevo grupo de recursos

Al usar Azure Resource Manager, todos los recursos relacionados se crean dentro de un grupo de recursos. Puede crear un almacén de claves en un grupo de recursos existente. Si desea usar un nuevo grupo de recursos, puede crear uno nuevo.

az group create -n "ContosoResourceGroup" -l "East Asia"

El primer parámetro es el nombre del grupo de recursos y el segundo parámetro es la ubicación. Para obtener una lista de todos los tipos de ubicaciones posibles:

az account list-locations

Registro del proveedor de recursos de Key Vault

Es posible que vea el error "La suscripción no está registrada para usar el espacio de nombres "Microsoft.KeyVault" al intentar crear un nuevo almacén de claves. Si aparece ese mensaje, asegúrese de que el proveedor de recursos de Key Vault está registrado en la suscripción. Se trata de una operación única para cada suscripción.

az provider register -n Microsoft.KeyVault

Crear una bóveda de claves

Utilice el comando az keyvault create para crear un Almacén de claves. Este script tiene tres parámetros obligatorios: un nombre de grupo de recursos, un nombre de almacén de claves y la ubicación geográfica.

Para crear un nuevo almacén con el nombre ContosoKeyVault, en el grupo de recursos ContosoResourceGroup, que reside en la ubicación de Asia Oriental, escriba:

az keyvault create --name "ContosoKeyVault" --resource-group "ContosoResourceGroup" --location "East Asia"

La salida de este comando muestra las propiedades del almacén de claves que ha creado. Las dos propiedades más importantes son:

  • name: en el ejemplo, el nombre es ContosoKeyVault. Usará este nombre para otros comandos de Key Vault.
  • vaultUri: en el ejemplo, el URI es https://contosokeyvault.vault.azure.net. Las aplicaciones que utilizan tu bóveda a través de su API REST deben usar este URI.

La cuenta de Azure ahora está autorizada para realizar cualquier operación en este almacén de claves. Hasta ahora, nadie más está autorizado.

Adición de una clave, un secreto o un certificado al almacén de claves

Si desea que Azure Key Vault cree una clave protegida por software, use el az key create comando .

az keyvault key create --vault-name "ContosoKeyVault" --name "ContosoFirstKey" --protection software

Si tiene una clave existente en un archivo .pem, puede cargarla en Azure Key Vault. Puede optar por proteger la clave con software o HSM. En este ejemplo se importa la clave del archivo .pem y se protege con software mediante la contraseña "hVFkk965BuUv":

az keyvault key import --vault-name "ContosoKeyVault" --name "ContosoFirstKey" --pem-file "./softkey.pem" --pem-password "hVFkk965BuUv" --protection software

Ahora puede hacer referencia a la clave que creó o cargó en Azure Key Vault mediante su URI. Use https://ContosoKeyVault.vault.azure.net/keys/ContosoFirstKey para obtener siempre la versión actual. Use https://<keyvault-name>.vault.azure.net/keys/<keyname>/<key-unique-id> para obtener esta versión específica. Por ejemplo: https://ContosoKeyVault.vault.azure.net/keys/ContosoFirstKey/cgacf4f763ar42ffb0a1gca546aygd87.

Agregue un secreto al almacén, que es una contraseña denominada SQLPassword y que tiene el valor "hVFkk965BuUv" en Azure Key Vault.

az keyvault secret set --vault-name "ContosoKeyVault" --name "SQLPassword" --value "hVFkk965BuUv "

Haga referencia a esta contraseña usando su URI. Use https://ContosoVault.vault.azure.net/secrets/SQLPassword para obtener siempre la versión actual y https://<keyvault-name>.vault.azure.net/secret/<secret-name>/<secret-unique-id> para obtener esta versión específica. Por ejemplo: https://ContosoVault.vault.azure.net/secrets/SQLPassword/90018dbb96a84117a0d2847ef8e7189d.

Importe un certificado al almacén mediante un archivo .pem o .pfx.

az keyvault certificate import --vault-name "ContosoKeyVault" --file "c:\cert\cert.pfx" --name "ContosoCert" --password "hVFkk965BuUv"

Veamos la clave, el secreto o el certificado que ha creado:

  • Para ver las claves, escriba:
az keyvault key list --vault-name "ContosoKeyVault"
  • Para ver tus secretos, escribe:
az keyvault secret list --vault-name "ContosoKeyVault"
  • Para ver los certificados, escriba:
az keyvault certificate list --vault-name "ContosoKeyVault"

Registro de una aplicación con el identificador de Microsoft Entra

Normalmente, este paso lo haría un desarrollador en un equipo independiente. No es específico de Azure Key Vault, pero se incluye aquí para su conocimiento. Para completar el registro de la aplicación, la cuenta, el almacén y la aplicación deben estar en el mismo directorio de Azure.

Las aplicaciones que usan un almacén de claves deben autenticarse mediante un token de Microsoft Entra ID. El propietario de la aplicación debe registrarla primero en Microsoft Entra. Al final del registro, el propietario de la aplicación obtiene los siguientes valores:

  • Un identificador de aplicación (también conocido como id. de cliente de Microsoft Entra o appID)
  • Una clave de autenticación (también conocida como secreto compartido).

La aplicación debe presentar estos dos valores a Microsoft Entra ID para obtener un token. La configuración de una aplicación para obtener un token dependerá de la aplicación. Para la aplicación de ejemplo de Key Vault, el propietario de la aplicación establece estos valores en el archivo app.config.

Para obtener pasos detallados sobre cómo registrar una aplicación con el identificador de Microsoft Entra, debe revisar los artículos titulado Integración de aplicaciones con el identificador de Microsoft Entra, Uso del portal para crear una aplicación de Microsoft Entra y una entidad de servicio que pueda acceder a los recursos y Crear una entidad de servicio de Azure con la CLI de Azure.

Para registrar una aplicación en microsoft Entra ID:

az ad sp create-for-rbac -n "MyApp" --password "hVFkk965BuUv" --role Contributor --scopes /subscriptions/<subscription id>
# If you don't specify a password, one will be created for you.

Autorización de una aplicación para usar una clave o un secreto

Para que la aplicación pueda acceder a la clave o el secreto en el almacén, use el comando az keyvault set-policy.

Por ejemplo, si el nombre del almacén es ContosoKeyVault y quiere que la aplicación tenga autorización para descifrar y firmar con claves en el almacén, use el comando siguiente con su id. de aplicación:

az keyvault set-policy --name "ContosoKeyVault" --spn {application-id} --key-permissions decrypt sign

Para autorizar a la misma aplicación a leer secretos en su almacén, escriba el siguiente comando:

az keyvault set-policy --name "ContosoKeyVault" --spn {application-id} --secret-permissions get

Establecimiento de directivas de acceso avanzado del almacén de claves

Utilice az keyvault update para habilitar las directivas avanzadas para el almacén de claves.

Habilitar Key Vault para la implementación: permite a las máquinas virtuales recuperar certificados almacenados como secretos de la bóveda.

az keyvault update --name "ContosoKeyVault" --resource-group "ContosoResourceGroup" --enabled-for-deployment "true"

Habilitar Key Vault para el cifrado de discos: necesario cuando se utiliza Key Vault para Azure Disk Encryption.

az keyvault update --name "ContosoKeyVault" --resource-group "ContosoResourceGroup" --enabled-for-disk-encryption "true"

Habilitar Key Vault para la implementación de plantillas: permite al Administrador de Recursos recuperar datos sensibles de la bóveda.

az keyvault update --name "ContosoKeyVault" --resource-group "ContosoResourceGroup" --enabled-for-template-deployment "true"

Trabajar con módulos de seguridad de hardware (HSM)

Para mayor garantía, puede importar o generar claves a partir de módulos de seguridad de hardware (HSM) que nunca dejan el límite de HSM. Los HSM están validados por FIPS 140. Si este requisito no se aplica a usted, omita esta sección y pase a Eliminar el almacén de claves junto con las claves y secretos asociados.

Para crear estas claves protegidas con HSM, debe tener una suscripción de bóveda que admite claves protegidas con HSM.

Al crear el almacén de claves, agregue el parámetro "sku":

az keyvault create --name "ContosoKeyVaultHSM" --resource-group "ContosoResourceGroup" --location "East Asia" --sku "Premium"

Puede añadir claves protegidas por software (como se mostró anteriormente) y claves protegidas por HSM a esta bóveda. Para crear una clave protegida por HSM, establezca el parámetro Destination en "HSM":

az keyvault key create --vault-name "ContosoKeyVaultHSM" --name "ContosoFirstHSMKey" --protection "hsm"

Puede usar el siguiente comando para importar una clave desde un archivo .pem en el equipo. Este comando importa la clave en HSM en el servicio Key Vault:

az keyvault key import --vault-name "ContosoKeyVaultHSM" --name "ContosoFirstHSMKey" --pem-file "/.softkey.pem" --protection "hsm" --pem-password "PaSSWORD"

El siguiente comando importa un paquete "traiga su propia clave" (BYOK). Esto le permite generar su clave en el HSM local y transferirla a los HSMs en el servicio de Key Vault, sin que la clave salga del límite del HSM.

az keyvault key import --vault-name "ContosoKeyVaultHSM" --name "ContosoFirstHSMKey" --byok-file "./ITByok.byok" --protection "hsm"

Para obtener instrucciones más detalladas sobre cómo generar este paquete BYOK, consulte Uso de claves de HSM-Protected con Azure Key Vault.

Eliminar el almacén de claves y las claves y los secretos asociados

Si ya no necesita el almacén de claves y sus claves o secretos, puede eliminar el almacén de claves mediante el az keyvault delete comando :

az keyvault delete --name "ContosoKeyVault"

O bien, puede eliminar todo un grupo de recursos de Azure, que incluye el almacén de claves y cualquier otro recurso que haya incluido en ese grupo:

az group delete --name "ContosoResourceGroup"

Varios comandos de la interfaz de la línea de comandos multiplataforma de Azure

Otros comandos que pueden resultar útiles para administrar Azure Key Vault.

Este comando muestra una presentación tabular de todas las claves y propiedades seleccionadas:

az keyvault key list --vault-name "ContosoKeyVault"

Este comando muestra una lista completa de propiedades para la clave especificada:

az keyvault key show --vault-name "ContosoKeyVault" --name "ContosoFirstKey"

Este comando muestra una presentación tabular de todos los nombres de secretos y propiedades seleccionadas:

az keyvault secret list --vault-name "ContosoKeyVault"

Este es un ejemplo de cómo quitar una clave específica:

az keyvault key delete --vault-name "ContosoKeyVault" --name "ContosoFirstKey"

Este es un ejemplo de cómo quitar un secreto específico:

az keyvault secret delete --vault-name "ContosoKeyVault" --name "SQLPassword"

Pasos siguientes