Introducción
Esta documentación proporciona una guía paso a paso para crear y asignar una política personalizada de Azure destinada a implementar la extensión AADLoginForLinux en máquinas Linux habilitadas con Azure Arc. La política asegura que la extensión se aplique automáticamente para habilitar el inicio de sesión basado en Microsoft Entra ID, mejorando las capacidades de autenticación y administración.
Siguiendo esta guía, podrás:
- Crear una política personalizada en Azure Policy para automatizar la implementación de la extensión AADLoginForLinux.
- Asignar la política a grupos de recursos o suscripciones específicas.
- Entender y resolver errores comunes relacionados con el acceso basado en roles en Microsoft Entra ID.
Paso 1: Acceder al Portal de Azure
- Accede al Portal de Azure:
- Abre tu navegador web y ve al Portal de Azure.
- Inicia sesión con tus credenciales de Azure.
Paso 2: Crear una Política Personalizada
Navega a Azure Policy:
- En el panel de navegación izquierdo, busca y selecciona Azure Policy. Esto te llevará a la página principal de Azure Policy.
Crea una nueva definición de política:
- En el panel de Azure Policy, selecciona Definiciones de políticas en el menú de la izquierda.
- En la parte superior, haz clic en + Definición de política para crear una nueva política personalizada.
Define la política:
- Completa la información de la política con los siguientes valores:
- Nombre para mostrar:
Deploy AADLoginForLinux on Azure Arc Linux machines
- Descripción:
Implementa la extensión AADLoginForLinux en máquinas Linux de Azure Arc para habilitar el inicio de sesión basado en Azure AD.
- Categoría:
Azure Arc
. - Definiciones de roles: Contribuyente, Contribuyente de máquina virtual.
- Nombre para mostrar:
- Completa la información de la política con los siguientes valores:
{
"properties": {
"displayName": "Deploy AADLoginForLinux on Azure Arc Linux machines",
"policyType": "Custom",
"mode": "Indexed",
"description": "Deploys the AADLoginForLinux extension on Azure Arc Linux machines to enable Azure AD-based login.",
"metadata": {
"category": "Azure Arc",
"version": "1.0.0",
},
"version": "1.0.0",
"parameters": {
"effect": {
"type": "String",
"metadata": {
"displayName": "Effect",
"description": "Enable or disable the execution of the policy."
},
"allowedValues": [
"DeployIfNotExists",
"AuditIfNotExists",
"Disabled"
],
"defaultValue": "DeployIfNotExists"
},
"listOfApplicableLocations": {
"type": "Array",
"metadata": {
"displayName": "Applicable Locations",
"description": "The list of locations where the policy should be applied.",
"strongType": "location"
},
"defaultValue": [
"eastus",
"westus",
"centralus",
"eastus2",
"westeurope"
]
}
},
"policyRule": {
"if": {
"allOf": [
{
"field": "type",
"equals": "Microsoft.HybridCompute/machines"
},
{
"field": "Microsoft.HybridCompute/machines/osName",
"like": "linux*"
},
{
"field": "tags['AADLoginEnabled']",
"notEquals": "true"
},
{
"field": "location",
"in": "[parameters('listOfApplicableLocations')]"
}
]
},
"then": {
"effect": "[parameters('effect')]",
"details": {
"type": "Microsoft.HybridCompute/machines/extensions",
"existenceCondition": {
"allOf": [
{
"field": "Microsoft.HybridCompute/machines/extensions/publisher",
"equals": "Microsoft.Azure.ActiveDirectory"
},
{
"field": "Microsoft.HybridCompute/machines/extensions/type",
"equals": "AADSSHLoginForLinux"
}
]
},
"deployment": {
"properties": {
"mode": "incremental",
"template": {
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"resourceName": {
"type": "string"
},
"location": {
"type": "string"
}
},
"resources": [
{
"name": "[concat(parameters('resourceName'),'/AADSSHLogin')]",
"type": "Microsoft.HybridCompute/machines/extensions",
"apiVersion": "2021-05-20",
"properties": {
"publisher": "Microsoft.Azure.ActiveDirectory",
"type": "AADSSHLoginForLinux",
"autoUpgradeMinorVersion": true,
"settings": {},
"protectedSettings": {}
},
"location": "[parameters('location')]"
}
]
},
"parameters": {
"resourceName": {
"value": "[field('name')]"
},
"location": {
"value": "[field('location')]"
}
}
}
}
}
}
}
Paso 3: Asignar la Política a Recursos
Una vez que hayas creado la definición de política, el siguiente paso es asignarla a los recursos donde deseas que se aplique. Aquí tienes una guía detallada para hacerlo:
Accede a la sección «Asignaciones»:
- En el portal de Azure, ve a Azure Policy desde el menú de navegación o buscándolo en la barra de búsqueda.
- Una vez dentro de Azure Policy, selecciona la opción Asignaciones, que te permitirá aplicar las políticas creadas a tus recursos.
Crea una nueva asignación de política:
- Haz clic en Asignar Política para crear una nueva asignación para la política personalizada que acabas de definir.
- Esto te llevará a una pantalla donde podrás configurar los detalles de la asignación.
Selecciona la definición de política:
- En el campo Definición de política, selecciona la política que creaste en el paso anterior. La política debería estar disponible en la lista de definiciones disponibles.
Remedation
Si los recursos no cumplen con la política, puedes configurar una tarea de remediación. Esto permitirá que Azure tome acciones automatizadas para corregir el incumplimiento.
Non-compliance messages
Puedes dejar los mensajes de no cumplimiento por defecto, o personalizarlos para proporcionar más detalles sobre los recursos que no cumplen con la política.
Review + Create
Revisa el resumen de la configuración, incluyendo el nombre, alcance y parámetros de la política. Confirma que todo sea correcto y haz clic en Create para implementar la política.
Paso 4: Compliance
Para asegurarte de que la política se ha aplicado correctamente, verifica el estado de Compliance. Si la remediación no se ejecutó automáticamente, realiza una tarea de remediación manual.
Paso 5: Verificar la Instalación de la Extensión
Verifica si la extensión AADSSHLogin se ha instalado correctamente en la máquina de Azure Arc. Para hacerlo:
- Ve a Máquinas Virtuales en el portal de Azure.
- Selecciona la máquina correspondiente.
- Ve a la sección de Extensiones y verifica si la extensión está instalada.
Step 6: Try to Log in via SSH
Once the extension is installed, try logging in via SSH using the following command:
az ssh arc --subscription "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" --resource-group "rg_redorbita" --name "srvredorbita01"
Known Issues / Detected Errors
Error: «Permission denied (publickey)»
Este error puede ocurrir al intentar realizar un inicio de sesión SSH en una máquina virtual utilizando la autenticación de Microsoft Entra ID, y el usuario no tiene los permisos necesarios para acceder al recurso.
Causa:
El error «Permission denied (publickey)» ocurre porque al usuario no se le ha asignado el rol necesario para gestionar el inicio de sesión en la máquina virtual. Específicamente, el usuario debe tener uno de los siguientes roles asignados al grupo de recursos que contiene la máquina virtual (VM) y sus recursos asociados:
- Administrador de inicio de sesión de máquina virtual
- Usuario de inicio de sesión de máquina virtual
Sin estos roles correctamente asignados, el intento de autenticación mediante Microsoft Entra ID para acceder a la máquina virtual fallará.
Solución:
Para resolver este error, asegúrate de que el usuario tenga uno de los roles mencionados anteriormente asignados. Puedes hacerlo siguiendo estos pasos:
- Ve a la sección Control de acceso (IAM) en el portal de Azure.
- Selecciona el grupo de recursos donde se encuentra la máquina virtual.
- Haz clic en Agregar asignación de rol.
- Selecciona el rol adecuado:
- Administrador de inicio de sesión de máquina virtual: Para proporcionar acceso de administrador a la máquina virtual.
- Usuario de inicio de sesión de máquina virtual: Para proporcionar acceso estándar de usuario.
- Asigna el rol al usuario que intenta acceder mediante SSH.
Una vez que el usuario tenga uno de estos roles asignados en el grupo de recursos correspondiente, el error «Permiso denegado (publickey)» debería resolverse, y el inicio de sesión SSH debería ser exitoso.
:wq!