View a markdown version of this page

Requisitos previos de Azure - AWS Systems Manager

Requisitos previos de Azure

Complete los pasos siguientes en su entorno de Azure. Necesitará los siguientes valores de los requisitos previos de AWS:

  • URL del emisor: la URL del emisor del OIDC de AWS de la sección anterior.

  • Asunto: el ARN del rol de federación de Systems Manager Azure, por ejemplo, arn:aws:iam::ACCOUNT_ID:role/service-role/SSM-AzureRole-connector-name-id8

Para configurar el lado de Azure de la federación
  1. Creación de una aplicación de ID de Azure Entra

    Cree un registro de aplicaciones en Microsoft Entra ID (anteriormente Azure Active Directory). Anote el ID de la aplicación (cliente) del resultado.

    az ad app create --display-name "AWSSSMAzureIntegration" --query appId
  2. Creación de una entidad principal de servicio para la aplicación

    Cree una entidad principal de servicio asociada con la aplicación Anote el ID de la entidad principal del servicio del resultado.

    az ad sp create --id APPLICATION_ID
  3. Agregación de una credencial de identidad federada

    Agregue una credencial de identidad federada a la aplicación que confía en el emisor del OIDC de AWS. Esto permite a Azure aceptar los tokens emitidos por AWS en nombre del rol de federación de Azure de Systems Manager (consulte Rol de federación de Azure).

    az ad app federated-credential create \ --id APPLICATION_ID \ --parameters "{ \"name\": \"aws-ssm-federation\", \"issuer\": \"AWS_OIDC_ISSUER_URL\", \"subject\": \"arn:aws:iam::ACCOUNT_ID:role/service-role/SSM-AzureRole-CONNECTOR_NAME-ID8\", \"audiences\": [\"api://AzureADTokenExchange\"] }"

    Reemplace:

    • APPLICATION_ID: el ID de la aplicación (cliente) del paso 1.

    • AWS_OIDC_ISSUER_URL: la URL del emisor del OIDC de AWS (por ejemplo, https://a1667813-695b-5415-b0f7-d473d62bb123.tokens.sts.global.api.aws).

    • ACCOUNT_ID: el ID de su Cuenta de AWS.

    • CONNECTOR_NAME: el nombre para mostrar sanitizado de su Cloud Connector.

    • ID8: los primeros ocho caracteres del UUID asignado a la función de federación de Azure. Puede encontrarlo en el nombre del rol después de crear el Cloud Connector en la Consola de administración de AWS, o especificarlo al crear el rol manualmente (consulte Rol de federación de Azure).

  4. Creación del rol personalizado VM Run Command

    Cree un rol personalizado que conceda los permisos mínimos necesarios para que Systems Manager ejecute comandos en máquinas virtuales de Azure. Sustituya SUBSCRIPTION_ID por el ID de suscripción de Azure que desee administrar.

    az role definition create --role-definition '{ "Name": "AWSSSMVMExtensionRole-SUBSCRIPTION_ID", "Description": "Allows AWS Systems Manager to run commands on Azure VMs", "Actions": [ "Microsoft.Compute/virtualMachines/read", "Microsoft.Compute/virtualMachines/runCommand/action", "Microsoft.Compute/virtualMachines/runCommands/*" ], "AssignableScopes": [ "/subscriptions/SUBSCRIPTION_ID" ] }'

    Para el ámbito a nivel de inquilino (todas las suscripciones del inquilino), utilice en su lugar un ámbito de grupo de administración:

    az role definition create --role-definition '{ "Name": "AWSSSMVMExtensionRole-TENANT_ID", "Description": "Allows AWS Systems Manager to run commands on Azure VMs", "Actions": [ "Microsoft.Compute/virtualMachines/read", "Microsoft.Compute/virtualMachines/runCommand/action", "Microsoft.Compute/virtualMachines/runCommands/*" ], "AssignableScopes": [ "/providers/Microsoft.Management/managementGroups/TENANT_ID" ] }'

    Verificación de la creación del rol:

    az role definition list --name "AWSSSMVMExtensionRole-SUBSCRIPTION_ID" --output table
  5. Asignación del rol VM Run Command a la entidad principal del servicio

    Asigne el rol personalizado a la entidad principal de servicio que ha creado en el paso 2. El ámbito determina qué recursos de Azure puede administrar Systems Manager.

    Para el ámbito a nivel de suscripción (repita el procedimiento para cada suscripción):

    az role assignment create \ --assignee SERVICE_PRINCIPAL_ID \ --role "AWSSSMVMExtensionRole-SUBSCRIPTION_ID" \ --scope "/subscriptions/SUBSCRIPTION_ID"

    Para el ámbito a nivel de grupo de administración:

    az role assignment create \ --assignee SERVICE_PRINCIPAL_ID \ --role "AWSSSMVMExtensionRole-TENANT_ID" \ --scope "/providers/Microsoft.Management/managementGroups/TENANT_ID"
  6. Creación de una aplicación de ID de Azure Entra para AWS Config

    Cree un registro de aplicación independiente para que AWS Config lo utilice al registrar el estado de los recursos de Azure. Anote el ID de la aplicación (cliente) del resultado.

    az ad app create \ --display-name "AWSConfigAzureIntegration-ACCOUNT_ID-TENANT_ID_PREFIX" \ --query appId

    Cree una entidad principal de servicio para la aplicación de AWS Config:

    az ad sp create --id CONFIG_APPLICATION_ID
  7. Agregación de una credencial de identidad federada para AWS Config

    Agregue una credencial de identidad federada a la aplicación de AWS Config. El asunto es el ARN del rol vinculado al servicio de AWS Config (que se crea automáticamente al crear el conector de Config en un paso posterior).

    az ad app federated-credential create \ --id CONFIG_APPLICATION_ID \ --parameters "{ \"name\": \"aws-config-federation\", \"issuer\": \"AWS_OIDC_ISSUER_URL\", \"subject\": \"arn:aws:iam::ACCOUNT_ID:role/aws-service-role/thirdparty.config.amazonaws.com/AWSServiceRoleForConfigThirdParty\", \"audiences\": [\"api://AzureADTokenExchange\"] }"
  8. Asignación del rol de lector a la entidad principal del servicio de AWS Config

    Asigne el rol de lector integrado en Azure a la entidad principal del servicio de AWS Config por inquilino (grupo de administración). Esto permite que AWS Config detecte los recursos de Azure.

    az role assignment create \ --assignee CONFIG_SERVICE_PRINCIPAL_ID \ --role "acdd72a7-3385-48ef-bd42-f606fba81ae7" \ --scope "/providers/Microsoft.Management/managementGroups/TENANT_ID"
  9. Creación de un centro de eventos para el flujo de registro de actividades de Azure

    AWS Config utiliza un centro de eventos de Azure para recibir los eventos de registro de actividades que indican cambios en los recursos. Cree un espacio de nombres, un centro y un grupo de consumidores de Event Hub en una de sus suscripciones de Azure.

    # Create a resource group for the Event Hub az group create \ --subscription "HOSTING_SUBSCRIPTION_ID" \ --name "AWSConfigAzureResources" \ --location eastus # Create an Event Hub namespace with a discovery tag az eventhubs namespace create \ --subscription "HOSTING_SUBSCRIPTION_ID" \ --resource-group "AWSConfigAzureResources" \ --name "EVENT_HUB_NAMESPACE" \ --location eastus \ --sku Standard \ --tags "AWSConfig-ACCOUNT_ID-AWS_REGION=activitylog" # Create the Event Hub az eventhubs eventhub create \ --subscription "HOSTING_SUBSCRIPTION_ID" \ --resource-group "AWSConfigAzureResources" \ --namespace-name "EVENT_HUB_NAMESPACE" \ --name "activitylog" \ --partition-count 4 # Create the consumer group for AWS Config az eventhubs eventhub consumer-group create \ --subscription "HOSTING_SUBSCRIPTION_ID" \ --resource-group "AWSConfigAzureResources" \ --namespace-name "EVENT_HUB_NAMESPACE" \ --eventhub-name "activitylog" \ --name "AWSConfig"

    Sustituya EVENT_HUB_NAMESPACE por un nombre único a nivel mundial (por ejemplo, awsconfig-ACCOUNT_ID-REGION) y HOSTING_SUBSCRIPTION_ID con la suscripción de Azure que alojará los recursos de centro de eventos.

  10. Asignación del rol de receptor de datos de centros de eventos a la entidad principal del servicio de AWS Config

    Permita que la entidad principal del servicio de AWS Config lea desde el centro de eventos:

    EVENT_HUB_ID=$(az eventhubs eventhub show \ --subscription "HOSTING_SUBSCRIPTION_ID" \ --resource-group "AWSConfigAzureResources" \ --namespace-name "EVENT_HUB_NAMESPACE" \ --name "activitylog" \ --query id \ -o tsv) az role assignment create \ --assignee CONFIG_SERVICE_PRINCIPAL_ID \ --role "a638d3c7-ab3a-418d-83e6-5f17a39d4fde" \ --scope "$EVENT_HUB_ID"
  11. Configure la exportación del registro de actividades al centro de eventos

    Para cada suscripción de Azure que desee que AWS Config supervise, cree una configuración de diagnóstico que exporte los eventos del registro de actividades al centro de eventos:

    az provider register \ --namespace Microsoft.Insights \ --subscription "SUBSCRIPTION_ID" az rest --method PUT \ --url "https://management.azure.com/subscriptions/SUBSCRIPTION_ID/providers/Microsoft.Insights/diagnosticSettings/EVENT_HUB_NAMESPACE?api-version=2021-05-01-preview" \ --body "{ \"properties\": { \"eventHubAuthorizationRuleId\": \"/subscriptions/HOSTING_SUBSCRIPTION_ID/resourceGroups/AWSConfigAzureResources/providers/Microsoft.EventHub/namespaces/EVENT_HUB_NAMESPACE/authorizationRules/RootManageSharedAccessKey\", \"eventHubName\": \"activitylog\", \"logs\": [{\"category\": \"Administrative\", \"enabled\": true}] } }"

    Repita este paso para cada suscripción que desee monitorear.

Tras completar la instalación de Azure, tenga en cuenta los siguientes valores. Los necesitará al crear el Cloud Connector:

  • ID de inquilino: el ID de su directorio (inquilino) de Azure AD.

  • ID de aplicación SSM (cliente): el ID de aplicación de la aplicación Azure AD de Systems Manager (paso 1).

  • ID de aplicación de Config (cliente): el ID de aplicación de la aplicación Azure AD de AWS Config (paso 6).

  • ID de suscripción: las suscripciones de Azure que desee administrar.

  • Nombre de host del espacio de nombres del centro de eventos: el nombre de host completo del espacio de nombres del centro de eventos (por ejemplo, EVENT_HUB_NAMESPACE.servicebus.windows.net).