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

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 El resultado del comando incluye un campo id, que es el ID de objeto de la entidad principal de servicio. Anote este valor de id (ID de objeto). Es el SERVICE_PRINCIPAL_ID que se utilizará más adelante como --assignee en los pasos de asignación de roles (paso 5).

    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\", \"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 componente de nombre del rol de federación de Systems Manager Azure. En la AWS CLI o en la ruta de la API, usted mismo crea este rol antes de crear el Cloud Connector, por lo que debe elegir su nombre. Utilice el mismo ARN de rol para este subject que utilizó para --role-arn en el paso Paso 2: creación de un Systems Manager Cloud Connector. Para conocer las políticas de confianza y permisos del rol, 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

    Reemplace:

    • ACCOUNT_ID: el ID de su Cuenta de AWS.

    • TENANT_ID_PREFIX: los caracteres iniciales de su ID de inquilino de Azure. Este prefijo existe solo para que sea único el nombre para mostrar de la aplicación. Puede usar cualquier parte corta y reconocible del ID de inquilino.

    Cree una entidad principal de servicio para la aplicación de AWS Config. El CONFIG_APPLICATION_ID es el valor de appId devuelto por el comando anterior az ad app create en este paso.

    az ad sp create --id CONFIG_APPLICATION_ID

    El resultado de az ad sp create incluye un campo id (ID de objeto), que es el valor CONFIG_SERVICE_PRINCIPAL_ID que se utiliza en los pasos posteriores de asignación de roles de lector y de centros de eventos.

  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).