View a markdown version of this page

Prérequis pour Azure - AWS Systems Manager

• Le AWS Systems Manager CloudWatch tableau de bord ne sera plus disponible après le 30 avril 2026. Les clients peuvent continuer à utiliser CloudWatch la console Amazon pour consulter, créer et gérer leurs CloudWatch tableaux de bord Amazon, comme ils le font aujourd'hui. Pour plus d'informations, consultez la documentation Amazon CloudWatch Dashboard.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Prérequis pour Azure

Effectuez les étapes suivantes dans votre environnement Azure. Vous avez besoin des valeurs suivantes parmi les AWS prérequis :

  • URL de l'émetteur  : URL de l'émetteur AWS OIDC de la section précédente.

  • Objet  : l'ARN du rôle de fédération Systems Manager Azure, par exemple : arn:aws:iam::ACCOUNT_ID:role/service-role/SSM-AzureRole-connector-name-id8

Pour configurer la partie Azure de la fédération
  1. Création d'une application Azure Entra ID

    Créez un enregistrement d'application dans Microsoft Entra ID (anciennement Azure Active Directory). Notez l'ID de l'application (client) figurant dans la sortie.

    az ad app create --display-name "AWSSSMAzureIntegration" --query appId
  2. Création d'un principal de service pour l'application

    Créez un principal de service associé à l'application. Notez l'ID principal de service figurant sur la sortie.

    az ad sp create --id APPLICATION_ID
  3. Ajouter un justificatif d'identité fédéré

    Ajoutez un justificatif d'identité fédérée à l'application qui approuve l'émetteur de l' AWS OIDC. Cela permet à Azure d'accepter les jetons émis par AWS le biais du rôle de fédération Azure de Systems Manager (voirRôle de fédération 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\"] }"

    Remplacez :

    • APPLICATION_ID— L'identifiant de l'application (client) de l'étape 1.

    • AWS_OIDC_ISSUER_URL— L'URL de l'émetteur AWS OIDC (par exemple,https://a1667813-695b-5415-b0f7-d473d62bb123.tokens.sts.global.api.aws).

    • ACCOUNT_ID— Votre Compte AWS carte d'identité.

    • CONNECTOR_NAME— Le nom d'affichage aseptisé de votre Cloud Connector.

    • ID8— Les huit premiers caractères de l'UUID attribué au rôle de fédération Azure. Vous pouvez le trouver dans le nom du rôle après avoir créé le Cloud Connector dans le Console de gestion AWS, ou le spécifier lors de la création manuelle du rôle (voirRôle de fédération Azure).

  4. Création du rôle personnalisé VM Run Command

    Créez un rôle personnalisé qui accorde les autorisations minimales requises pour que Systems Manager exécute des commandes sur des machines virtuelles Azure. SUBSCRIPTION_IDRemplacez-le par l'ID d'abonnement Azure que vous souhaitez gérer.

    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" ] }'

    Pour l'étendue au niveau du locataire (tous les abonnements du locataire), utilisez plutôt une étendue de groupe de gestion :

    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" ] }'

    Pour vérifier que le rôle a été créé, procédez comme suit :

    az role definition list --name "AWSSSMVMExtensionRole-SUBSCRIPTION_ID" --output table
  5. Attribuez le rôle VM Run Command au principal de service

    Attribuez le rôle personnalisé au principal de service que vous avez créé à l'étape 2. L'étendue détermine les ressources Azure que Systems Manager peut gérer.

    Pour la portée au niveau de l'abonnement (à répéter pour chaque abonnement) :

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

    Pour le périmètre au niveau du groupe de direction :

    az role assignment create \ --assignee SERVICE_PRINCIPAL_ID \ --role "AWSSSMVMExtensionRole-TENANT_ID" \ --scope "/providers/Microsoft.Management/managementGroups/TENANT_ID"
  6. Créez une application Azure Entra ID pour AWS Config

    Créez un enregistrement d'application distinct AWS Config à utiliser lors de l'enregistrement de l'état des ressources Azure. Notez l'ID de l'application (client) figurant dans la sortie.

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

    Créez un principal de service pour l' AWS Config application :

    az ad sp create --id CONFIG_APPLICATION_ID
  7. Ajoutez un identifiant d'identité fédéré pour AWS Config

    Ajoutez un justificatif d'identité fédérée à l' AWS Config application. L'objet est l'ARN du AWS Config rôle lié au service (créé automatiquement lorsque vous créerez le connecteur Config à une étape ultérieure).

    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. Attribuez le rôle de lecteur au AWS Config directeur de service

    Attribuez le rôle Azure built-in Reader au AWS Config responsable du service au niveau du locataire (groupe de gestion). Cela permet AWS Config de découvrir les ressources Azure.

    az role assignment create \ --assignee CONFIG_SERVICE_PRINCIPAL_ID \ --role "acdd72a7-3385-48ef-bd42-f606fba81ae7" \ --scope "/providers/Microsoft.Management/managementGroups/TENANT_ID"
  9. Création d'un hub d'événements pour le streaming d'Azure Activity Log

    AWS Config utilise un Azure Event Hub pour recevoir les événements du journal d'activité qui indiquent les modifications apportées aux ressources. Créez un espace de noms, un hub et un groupe de consommateurs Event Hub dans l'un de vos abonnements 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"

    EVENT_HUB_NAMESPACERemplacez-le par un nom unique au monde (par exempleawsconfig-ACCOUNT_ID-REGION) et HOSTING_SUBSCRIPTION_ID par l'abonnement Azure qui hébergera les ressources Event Hub.

  10. Attribuez le rôle de récepteur de données Event Hubs au AWS Config directeur de service

    Autorisez le AWS Config responsable du service à lire depuis l'Event Hub :

    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. Configurer l'exportation du journal d'activité vers l'Event Hub

    Pour chaque abonnement Azure que vous AWS Config souhaitez surveiller, créez un paramètre de diagnostic qui exporte les événements du journal d'activité vers l'Event Hub :

    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}] } }"

    Répétez cette étape pour chaque abonnement que vous souhaitez contrôler.

Une fois la configuration d'Azure terminée, notez les valeurs suivantes. Vous en avez besoin pour créer le Cloud Connector :

  • ID du locataire  : identifiant de votre annuaire Azure AD (locataire).

  • ID de l'application SSM (client)  : ID de l'application Systems Manager Azure AD (étape 1).

  • ID de l'application (client) de configuration  : identifiant de l'application AWS Config Azure AD (étape 6).

  • ID d'abonnement  : les abonnements Azure que vous souhaitez gérer.

  • Nom d'hôte de l'espace de noms Event Hub  : nom d'hôte complet de l'espace de noms Event Hub (par exemple,). EVENT_HUB_NAMESPACE.servicebus.windows.net