Manual de Gestión de Certificados para Servidores IIS con Azure Arc y Azure Key Vault

Introducción

Este manual explica cómo simplificar la gestión de certificados para servidores IIS (On-Premises) utilizando Azure Arc y Azure Key Vault, proporcionando una solución segura y automatizada. Al integrar servidores on-premises con Azure Arc y Azure Key Vault, podemos centralizar el manejo de certificados, mejorar la seguridad y reducir los costos asociados con la gestión manual de certificados.

Requisitos Previos

  • Azure Arc habilitado en el servidor IIS.
  • Acceso a Azure Key Vault y permisos necesarios.
  • Instalar el módulo de PowerShell Az para gestionar recursos de Azure.

Pasos de Implementación

Instalar la Extensión de KeyVaultForWindows Primero, es necesario instalar la extensión de Key Vault en el servidor habilitado con Azure Arc.

Crear y Subir el Certificado a Azure Key Vault

Accede a Azure Key Vault y crea un nuevo certificado o carga uno existente. Los certificados deben ser configurados para ser observados por el servidor habilitado con Azure Arc.

Pasos:

  1. En Azure Key Vault, navega a la sección Certificates.
  2. Crea un nuevo certificado o carga uno existente.
  3. Asegúrate de copiar la URL del certificado, ya que la necesitarás para configurarlo en el script de PowerShell (como en el ejemplo anterior).

Asignación de Permisos en Azure Key Vault

Para permitir que el servidor habilitado con Azure Arc acceda al certificado en Azure Key Vault, debes configurar los permisos apropiados en el Control de Acceso (Access Control) y en la Política de Acceso (Access Policy) de Key Vault.

Permisos necesarios:

  • RBAC (Role-Based Access Control):
    • Reader (Lectura) para acceder a los secretos.
    • Key Vault Secrets User (Usuario de Secretos de Key Vault) para permitir la gestión de secretos.
  • Política de Acceso:
    • Asegúrate de que el servidor habilitado con Azure Arc tenga permisos para get y list los secretos en Azure Key Vault.

Pasos para configurar permisos en Key Vault:

  • Navega a Access Policies en tu Key Vault.
  • Haz clic en + Add Access Policy y selecciona las operaciones que tu servidor necesitará (por ejemplo, Get, List).
  • Asigna el acceso al Managed Identity del servidor habilitado con Azure Arc.

Configurar el Script de PowerShell para Integrar Key Vault con Azure Arc

Primero, debemos instalar el módulo Az de PowerShell para gestionar recursos en Azure. Para hacerlo, ejecuta el siguiente comando:

Install-Module -Name Az -Repository PSGallery -Force

Establecemos la conexión utilizando el siguiente comando:

 Connect-AzAccount -TenantId "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"

El siguiente script configura la extensión de Key Vault en el servidor IIS habilitado para Azure Arc. Este script le dice a la extensión cómo gestionar los certificados desde Azure Key Vault.

$Settings = @{
  secretsManagementSettings = @{
    observedCertificates = @(
      "https://kv-redorbita-azurearc-lab02.vault.azure.net/secrets/certificatename"
      # Add more here in a comma separated list
    )
    certificateStoreLocation = "LocalMachine"
    certificateStoreName = "My"
    pollingIntervalInS = "3600" # every hour
  }
  authenticationSettings = @{
    msiEndpoint = "http://localhost:40342/metadata/identity"
  }
}

$ResourceGroup = "XXXXXXX"
$ArcMachineName = "XXXXXXX"
$Location = "West Europe"

New-AzConnectedMachineExtension -ResourceGroupName $ResourceGroup -MachineName $ArcMachineName -Name "KeyVaultForWindows" -Location $Location -Publisher "Microsoft.Azure.KeyVault" -ExtensionType "KeyVaultForWindows" -Setting $Settings

Explicación del script:

  • Configuración de parámetros ($Settings):

    • observedCertificates: Lista de certificados en Key Vault a monitorear.
    • certificateStoreLocation: Define el almacenamiento de certificados en la máquina (LocalMachine).
    • certificateStoreName: Especifica el almacén de certificados (My).
    • pollingIntervalInS: Intervalo de verificación de cambios (cada hora).
  • Parámetros adicionales:

    • Define el grupo de recursos ($ResourceGroup), nombre de la máquina ($ArcMachineName) y ubicación ($Location).
  • Instalación de la extensión:

    • Se utiliza el cmdlet New-AzConnectedMachineExtension para instalar la extensión KeyVaultForWindows en la máquina especificada.

Configuración de Rebind en IIS

Una vez que la extensión de Key Vault y el servidor están configurados, la última parte es asegurarte de que el servidor IIS rebind los certificados automáticamente cuando estos se renuevan en Azure Key Vault.

Pasos para habilitar el rebind en IIS:

  • En el Administrador de IIS, seleccionamos el sitio web en el cual deseamos habilitar el rebind de certificados.
  • En el panel de acciones de la derecha, hacemos clic en Bindings (Enlaces).

  • En la ventana de Site Bindings, seleccionamos el enlace HTTPS que usa el certificado que queremos configurar para rebind.
  • Hacemos clic en Edit (Editar) o Add.
  • En la sección de SSL certificate, seleccionamos el certificado adecuado que se debe usar. Asegúrate de que esté vinculado al Key Vault.
  • Para habilitar el rebind automático, utilizamos el proceso de renovación y enlace de certificados a través de la extensión de Key Vault para garantizar que el certificado se actualice y se rebinde sin intervención manual.
  • Accedemos al sitio y verificamos que el certificado del Key Vault se haya obtenido correctamente.

:wq!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *