

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Configuración de Microsoft Azure para que se integre con Security Hub
<a name="securityhub-v2-azure-setup-azure"></a>

Tras completar las tareas [ previas](securityhub-v2-azure-prereqs.md), puede configurar su entorno de Microsoft Azure para que admita la integración con AWS Security Hub. Para ayudarlo a hacerlo, la consola de Security Hub genera un script de configuración personalizado para su configuración.

**Para generar el script de configuración**

1. Abra la consola AWS de Security Hub en [https://console.aws.amazon.com/securityhub/advanced/home? region=us-east-1. ](https://console.aws.amazon.com/securityhub/advanced/home?region=us-east-1.).

1. En el panel de navegación, elija **Integraciones**.

1. Elija ** Crear conector de Azure**.

1. Complete la configuración del conector (ID de inquilino, ámbito y nombre) y, a continuación, copie el script de configuración generado.

Para ejecutar el script, utilice la CLI de Azure y autentíquese con una cuenta de administrador global (`az login`).

Al ejecutar el script, este realiza una serie de tareas. En las siguientes secciones se describe cada tarea que realiza el script. Si su organización restringe la ejecución del script, puede realizar estas tareas manualmente, utilizando este tema como guía. Después de configurar el entorno de Azure, puede [ configurar Security Hub para que se integre con Azure](securityhub-v2-azure-setup-securityhub-v2.md).

En los pasos 1 a 7, configure la base compartida que utilizan todas las funciones de Security Hub: el registro de la aplicación, las credenciales federadas, las asignaciones de funciones de Azure, los permisos de Microsoft Graph, Event Hub y la exportación de registros. Los pasos 8 a 10 configuran los recursos adicionales de Azure para capacidades específicas:
+ **Administración de vulnerabilidades (Amazon Inspector)**: configura la exportación de eventos del repositorio de Azure Container Registry (ACR) y una identidad gestionada asignada por el sistema en las máquinas virtuales de Azure.
+ **Detección de amenazas (Microsoft Defender for Cloud)**: configura Microsoft Defender for Cloud para exportar continuamente las alertas de seguridad al Event Hub.

**nota**  
El registro de una sola aplicación de Azure se comparte entre los servicios AWS de seguridad. Si también usa Security Hub CSPM o Amazon Inspector para Azure, utilizan el mismo registro de aplicaciones. No es necesario crear registros independientes para cada servicio. AWS 

**Topics**
+ [Paso 1: Registrar una aplicación](#securityhub-v2-azure-setup-azure-registration)
+ [Paso 2: Crear un principal de servicio](#securityhub-v2-azure-setup-azure-sp)
+ [Paso 3: Configurar las credenciales federadas](#securityhub-v2-azure-setup-azure-federation)
+ [Paso 4: Asignar funciones de RBAC](#securityhub-v2-azure-setup-azure-rbac)
+ [Paso 5: Configurar los permisos de la API Graph](#securityhub-v2-azure-setup-azure-graph)
+ [Paso 6: configurar Event Hub](#securityhub-v2-azure-setup-azure-eventhub)
+ [Paso 7: Configurar la exportación del registro](#securityhub-v2-azure-setup-azure-export)
+ [Paso 8: Configurar la exportación de ACR](#securityhub-v2-azure-setup-azure-acr)
+ [Paso 9: Habilitar la identidad administrada por VM](#securityhub-v2-azure-setup-azure-vm-identity)
+ [Paso 10: Exportar las alertas de Defender](#securityhub-v2-azure-setup-azure-defender)

## Paso 1: Registrar una aplicación de Azure
<a name="securityhub-v2-azure-setup-azure-registration"></a>

Registra una nueva aplicación en Microsoft Entra ID. Esta aplicación sirve como la identidad que se AWS utiliza para autenticarse en su entorno de Azure mediante credenciales federadas. No se requieren secretos de cliente.

```
$ az ad app create --display-name "AWSSecurityHubIntegration"
```

Anote el ID de la ** aplicación (cliente) ** de la salida (el `appId` atributo). Proporcionará este valor al crear el conector en la consola de Security Hub.

## Paso 2: Crear una entidad principal de servicio
<a name="securityhub-v2-azure-setup-azure-sp"></a>

Cree un principal de servicio para la aplicación registrada. Las asignaciones de roles de Azure se utilizan para conceder permisos al principal de servicio. El principal de servicio realiza acciones en su entorno de Azure.

```
$ az ad sp create --id {{application-client-id}}
```

¿Dónde {{application-client-id}} está el ID de la aplicación (cliente) del paso anterior?

Establezca el URI del ID de la aplicación en el registro en`api://{{application-client-id}}`. AWS requiere este identificador para intercambiar tokens federados con la aplicación. Sin este URI, AWS no se puede generar una audiencia de tokens federados válida y ninguna de las funciones puede autenticarse en Azure.

```
$ az ad app update \
  --id {{application-client-id}} \
  --identifier-uris "api://{{application-client-id}}"
```

## Paso 3: Configurar las credenciales de identidad federadas
<a name="securityhub-v2-azure-setup-azure-federation"></a>

Configure las credenciales de identidad federadas en la aplicación para AWS permitir la autenticación sin secretos de cliente. Esto establece una confianza OIDC entre Azure y Azure. AWS No se almacenan credenciales ni secretos de larga duración.

La integración de Azure con Security Hub se autentica mediante una función de AWS IAM por capacidad: detección de configuraciones de recursos, administración de vulnerabilidades y detección de amenazas. Agregue una credencial de identidad federada para cada función, de modo que todas las funciones puedan autenticarse en Azure. AWS crea automáticamente las funciones vinculadas al servicio al crear el conector. La función `Inspector2SSMFederationRole` utilizada para el escaneo de máquinas virtuales no es una función vinculada a un servicio; se crea como parte de la configuración de escaneo de máquinas virtuales de Amazon Inspector, descrita en el paso 9. [Paso 9: Habilitar una identidad administrada en las máquinas virtuales de Azure](#securityhub-v2-azure-setup-azure-vm-identity)


| Funcionalidad | Asunto (ARN del rol de IAM) | 
| --- | --- | 
| Descubrimiento de la configuración de recursos ()AWS Config | arn:aws:iam::{{account-id}}:role/aws-service-role/thirdparty.config.amazonaws.com/AWSServiceRoleForConfigThirdParty | 
| Gestión de vulnerabilidades (Inspector) | arn:aws:iam::{{account-id}}:role/aws-service-role/thirdparty.inspector2.amazonaws.com/AWSServiceRoleForAmazonInspector2ThirdParty | 
| Administración de vulnerabilidades: escaneo de máquinas virtuales (Amazon EC2 Systems Manager) | arn:aws:iam::{{account-id}}:role/Inspector2SSMFederationRole-{{tenant-id}} | 
| Detección de amenazas (Security Hub) | arn:aws:iam::{{account-id}}:role/aws-service-role/securityhubv2.amazonaws.com/AWSServiceRoleForSecurityHubV2 | 

Ejecute el siguiente comando una vez para cada tema de la tabla anterior, cambiando los `subject` valores `name` y cada vez. Los `audiences` valores `issuer` y son los mismos para todas las credenciales.

```
$ az ad app federated-credential create \
  --id {{application-client-id}} \
  --parameters '{
    "name": "{{credential-name}}",
    "issuer": "{{token-issuer-url}}",
    "subject": "{{service-linked-role-arn}}",
    "audiences": ["api://AzureADTokenExchange"],
    "description": "AWS federation for Security Hub Azure integration"
  }'
```

Valores clave:
+ **Emisor**: la URL de su emisor de tokens de IAM Outbound Identity Federation. Sigue el formato. `https://{{uuid}}.tokens.sts.global.api.aws`
+ **Asunto**: un ARN de rol de IAM de la tabla anterior. El rol {{tenant-id}} de administrador de sistemas de Amazon EC2 es su ID de inquilino de Azure.
+ **Audiencia**: `api://AzureADTokenExchange` (valor estándar para la federación de identidades de cargas de trabajo).
+ **Nombre**: cualquier nombre que sea único en la aplicación.

## Paso 4: Asignar funciones de RBAC
<a name="securityhub-v2-azure-setup-azure-rbac"></a>

Asigne las siguientes funciones integradas al director de servicio:
+ **Lector**: otorga acceso de solo lectura a todos los recursos de Azure para que Security Hub pueda descubrir y evaluar las configuraciones de sus recursos. Asigne este rol en el ámbito raíz ()`/`.
+ **Colaborador**: otorga el acceso de escritura que Amazon Inspector necesita para escanear las máquinas virtuales, las aplicaciones de funciones y las imágenes de los contenedores de Azure en busca de vulnerabilidades. Asigne este rol al ámbito del grupo de administración raíz del inquilino, que lo propagará a todas las suscripciones del inquilino.
+ **Receptor de datos de Azure Event Hubs**: permite AWS leer los eventos del Event Hub. Asigne este rol al ámbito del grupo de administración raíz del inquilino.

**Asigne Reader en el ámbito raíz**  
Asegúrese de asignar la ** función de ** lector al ámbito ** raíz ** (`/`), no al ámbito del grupo de administración raíz del inquilino. Security Hub lee los recursos de asignación de roles de Azure en todos los ámbitos, incluidas las asignaciones asignadas al ámbito raíz del inquilino. Una asignación de lector en el grupo de administración raíz no incluye las asignaciones cuyo ámbito sea`/`, por lo que, sin ella, esas lecturas fallan y se produce un error de autorización y el conector puede entrar en un estado degradado.

**El colaborador otorga acceso de escritura a todo el inquilino**  
La ** función de ** colaborador en el ámbito del grupo de administración raíz del inquilino otorga acceso de escritura con altos privilegios para todo el inquilino a sus recursos de Azure. Security Hub requiere este acceso para que Amazon Inspector pueda analizar sus recursos informáticos en busca de vulnerabilidades. Por ejemplo, Inspector usa los permisos de ejecución de comandos de ejecución de máquinas virtuales que proporciona Contributor. A través de Amazon EC2 Systems Manager Automation, Inspector ejecuta comandos en las máquinas virtuales de Azure para instalar y operar el agente VM Scanner.

```
$ az role assignment create \
  --assignee {{application-client-id}} \
  --role "Contributor" \
  --scope "/providers/Microsoft.Management/managementGroups/{{tenant-id}}"

$ az role assignment create \
  --assignee {{application-client-id}} \
  --role "Azure Event Hubs Data Receiver" \
  --scope "/providers/Microsoft.Management/managementGroups/{{tenant-id}}"

$ az role assignment create \
  --assignee {{application-client-id}} \
  --role "Reader" \
  --scope "/"
```

**Root-scope la tarea requiere un acceso elevado**  
La asignación de un rol en el ámbito raíz (`/`) requiere un acceso elevado. Si se produce un error en la asignación de funciones, compruebe que la administración de * acceso a los recursos de Azure * esté configurada ** en ** Sí en Microsoft Entra ID > Propiedades. A continuación, cierra sesión y vuelve a iniciarla para actualizar el token.

**Elimine la elevación temporal de la raíz**  
Al habilitar la administración del * acceso para los recursos de Azure, se * otorga al administrador que ha iniciado sesión la función de administrador de acceso de usuarios en el ámbito raíz (`/`), que puede gestionar el acceso en todos los grupos de suscripción y administración del inquilino. Una vez completada la incorporación, * vuelva * a configurar la administración del acceso a los recursos de Azure como ** No ** en Microsoft Entra ID > Propiedades, guarde y cierre sesión para que esta elevación no permanezca activa.

## Paso 5: Configurar los permisos de la API de Microsoft Graph
<a name="securityhub-v2-azure-setup-azure-graph"></a>

Conceda los siguientes permisos de la API Graph de Microsoft (tipo de aplicación) a la aplicación y, a continuación, conceda el consentimiento del administrador:
+ `Application.Read.All`
+ `AuditLog.Read.All`
+ `DelegatedPermissionGrant.Read.All`
+ `Device.Read.All`
+ `Group.Read.All`
+ `GroupMember.Read.All`
+ `GroupSettings.Read.All`
+ `Organization.Read.All`
+ `Policy.Read.All`
+ `RoleManagement.Read.Directory`
+ `User.Read.All`
+ `UserAuthenticationMethod.Read.All`

```
$ az ad app permission admin-consent --id {{application-client-id}}
```

## Paso 6: configurar Azure Event Hub
<a name="securityhub-v2-azure-setup-azure-eventhub"></a>

AWS Config usa un Azure Event Hub para recibir notificaciones casi en tiempo real sobre los cambios en la configuración de los recursos en su entorno de Azure. El script de configuración crea la infraestructura de Event Hub y la etiqueta para su detección. La detección de Event Hub utiliza una resolución basada en etiquetas: Security Hub busca una etiqueta en el espacio de nombres de Event Hub con el formato necesario `AWSConfig-{{account-id}}-{{region}}` para identificar la instancia de Event Hub correcta para su integración.

```
$ az group create \
  --name "aws-securityhub-integration" \
  --location {{event-hub-region}}

$ az eventhubs namespace create \
  --resource-group "aws-securityhub-integration" \
  --name "aws-securityhub-{{account-id}}" \
  --location {{event-hub-region}} \
  --sku Standard

$ az eventhubs eventhub create \
  --resource-group "aws-securityhub-integration" \
  --namespace-name "aws-securityhub-{{account-id}}" \
  --name "activitylog" \
  --message-retention 3 \
  --partition-count 4

$ az eventhubs eventhub consumer-group create \
  --resource-group "aws-securityhub-integration" \
  --namespace-name "aws-securityhub-{{account-id}}" \
  --eventhub-name "activitylog" \
  --name "AWSConfig"
```

Tras crear el Event Hub, etiquete el espacio de nombres para que lo detecte y asigne la función de receptor de datos. Utilícela `az tag update` con `--operation merge` para conservar cualquier otra etiqueta del espacio de nombres (como la etiqueta de detección de amenazas del [ paso 10](#securityhub-v2-azure-setup-azure-defender)):

```
$ az tag update \
  --resource-id {{namespace-resource-id}} \
  --operation merge \
  --tags "AWSConfig-{{account-id}}-{{region}}=activitylog"

$ az role assignment create \
  --assignee {{application-client-id}} \
  --role "Azure Event Hubs Data Receiver" \
  --scope {{namespace-resource-id}}
```

**nota**  
En el formato de etiqueta`AWSConfig-{{account-id}}-{{region}}`, {{account-id}} es su Cuenta de AWS identificador de 12 dígitos y {{region}} es Región de AWS donde está creando el conector (por ejemplo,`us-east-1`). Estos valores identifican quién Cuenta de AWS y qué región son los propietarios de esta integración de Event Hub.

Configuración clave:
+ **SKU del espacio de nombres**: estándar (obligatorio para los grupos de consumidores).
+ **Nombre de Event Hub ** —`activitylog`.
+ **Grupo de consumidores ** —`AWSConfig`.
+ **Etiqueta**: `AWSConfig-{{account-id}}-{{region}}` con valor`activitylog`. Esta etiqueta permite AWS Config descubrir el Event Hub automáticamente.
+ **Asignación de funciones**: Azure Event Hubs Data Receiver en el espacio de nombres.

Para la detección de amenazas, la configuración también crea un `defender-alerts` Event Hub independiente con un grupo de `AWSSecurityHub` consumidores y agrega una segunda etiqueta de detección en el formato `AWSSecurityHub-{{account-id}}-{{region}}` que identifica el hub que Security Hub lee directamente. Para obtener más información, consulta el [ paso 10](#securityhub-v2-azure-setup-azure-defender).

## Paso 7: configurar el registro de actividad y exportar el registro de auditoría de Entra ID
<a name="securityhub-v2-azure-setup-azure-export"></a>

Configure Azure para exportar los registros de actividad y los registros de Entra ID de Microsoft al Event Hub.

**Exportación del registro de actividad: **

Configure los ajustes de diagnóstico en cada suscripción para exportar los registros de actividad al Event Hub. El script de configuración lo configura automáticamente para todas las suscripciones supervisadas. Los registros de actividad capturan la actividad a nivel de suscripción, incluidas las asignaciones de funciones y los cambios de recursos.

**Exportación del registro de Microsoft Entra ID: **

Configure los ajustes de diagnóstico en el Entra ID de Microsoft para exportar los registros al mismo Event Hub. Diríjase a * Microsoft Entra ID > Supervisión > Configuración de diagnóstico > Añadir configuración de diagnóstico*. **AuditLogs****SignInLogs**Actívalos y ** NonInteractiveUserSignInLogs ** dirígelos a tu Event Hub.

## Paso 8: Configurar la exportación de Azure Container Registry
<a name="securityhub-v2-azure-setup-azure-acr"></a>

Security Hub escanea las imágenes de los contenedores de Azure Container Registry (ACR) en busca de vulnerabilidades mediante Amazon Inspector. Para ello, Inspector necesita que los eventos del repositorio ACR se exporten a un Event Hub en la misma región de Azure que el registro. Para la configuración de la exportación a ACR, consulte [ Configurar Amazon Inspector para que se integre con Microsoft Azure ](https://docs.aws.amazon.com/inspector/latest/user/inspector-azure.html) en la Guía del usuario de * Amazon Inspector. *

## Paso 9: Habilitar una identidad administrada en las máquinas virtuales de Azure
<a name="securityhub-v2-azure-setup-azure-vm-identity"></a>

Security Hub escanea sus máquinas virtuales de Azure a través de Inspector. Cada máquina virtual de Azure de destino debe tener habilitada una identidad gestionada asignada por el sistema. Para agregar esta identidad a sus máquinas virtuales automáticamente, asigne dos políticas de Azure que utilicen el `modify` efecto en el ámbito del grupo de administración raíz del inquilino:
+ Para una máquina virtual que no tiene identidad, la política agrega una identidad administrada asignada por el sistema.
+ Para una máquina virtual que solo tiene una identidad asignada por el usuario, la política agrega una identidad administrada asignada por el sistema y conserva las identidades asignadas por el usuario existentes.

Una máquina virtual que ya tiene una identidad administrada asignada por el sistema no se modifica. Como las políticas utilizan este `modify` efecto, ajustan la identidad sin tener que volver a implementar la máquina virtual.

Inspector usa Amazon EC2 Systems Manager Automation para implementar y administrar el agente Inspector VM Scanner en sus máquinas virtuales de Azure. Esto requiere una configuración adicional AWS, que incluye un proveedor de identidad OIDC de IAM para Microsoft Entra ID y varias funciones de IAM. Para ver la configuración completa del escaneo de máquinas virtuales, consulte [ Configurar Amazon Inspector para que se integre con Microsoft Azure ](https://docs.aws.amazon.com/inspector/latest/user/inspector-azure-setup-inspector.html) en la guía del * usuario de Amazon Inspector. *

## Paso 10: Exportar las alertas de Microsoft Defender for Cloud
<a name="securityhub-v2-azure-setup-azure-defender"></a>

Security Hub incorpora las alertas de detección de amenazas de Microsoft Defender for Cloud y las asigna al formato Open Cybersecurity Schema Framework (OCSF). Para enviar estas alertas, crea un centro de `defender-alerts` eventos dedicado y configura Microsoft Defender for Cloud para exportar continuamente las alertas de seguridad a ese centro.

En el espacio de nombres de Event Hub del [ paso 6](#securityhub-v2-azure-setup-azure-eventhub), crea el `defender-alerts` Event Hub, un grupo de `AWSSecurityHub` consumidores desde el que pueda leer Security Hub y una regla de autorización de firma de acceso compartido (SAS) en el ámbito del hub con el ** permiso de envío que Microsoft Defender for Cloud utilice para ** enviar alertas:

```
$ az eventhubs eventhub create \
  --resource-group "aws-securityhub-integration" \
  --namespace-name "aws-securityhub-{{account-id}}" \
  --name "defender-alerts" \
  --message-retention 3 \
  --partition-count 4

$ az eventhubs eventhub consumer-group create \
  --resource-group "aws-securityhub-integration" \
  --namespace-name "aws-securityhub-{{account-id}}" \
  --eventhub-name "defender-alerts" \
  --name "AWSSecurityHub"

$ az eventhubs eventhub authorization-rule create \
  --resource-group "aws-securityhub-integration" \
  --namespace-name "aws-securityhub-{{account-id}}" \
  --eventhub-name "defender-alerts" \
  --name "DefenderExportSend" \
  --rights Send
```

A continuación, combine una segunda etiqueta de detección en el espacio de nombres para que Security Hub descubra el centro. `defender-alerts` `az tag update``--operation merge`Utilícela con para conservar la etiqueta de `AWSConfig` descubrimiento del [ paso 6](#securityhub-v2-azure-setup-azure-eventhub):

```
$ az tag update \
  --resource-id {{namespace-resource-id}} \
  --operation merge \
  --tags "AWSSecurityHub-{{account-id}}-{{region}}=defender-alerts"
```

Por último, configure la exportación continua de Microsoft Defender for Cloud del tipo de ** datos de las alertas de ** seguridad al `defender-alerts` Event Hub. En el portal de Azure, vaya a * Microsoft Defender for Cloud > Configuración del entorno*, seleccione la suscripción, elija Exportación * continua > Event Hub*, seleccione Alertas ** de ** seguridad y elija el `defender-alerts` Event Hub y la regla `DefenderExportSend` SAS.

**nota**  
Si configuras la exportación continua mediante programación (mediante la API de Azure Resource Manager, una plantilla ARM o Azure Policy) en lugar de hacerlo en el portal, autentica la exportación al Event Hub con la cadena de conexión `DefenderExportSend` SAS. Recupérala con `az eventhubs eventhub authorization-rule keys list` la `DefenderExportSend` regla y configúrala como la cadena de conexión de la acción de exportación. Para obtener más información, consulte [ Configurar la exportación continua ](https://learn.microsoft.com/en-us/azure/defender-for-cloud/continuous-export) en la documentación de Microsoft Azure.

**nota**  
Tras completar estas tareas, espere aproximadamente de 15 a 30 minutos para que la configuración surta efecto. A continuación, comprueba que tu Event Hub reciba mensajes (la * IncomingMessages * métrica) antes de crear el conector en Security Hub.