

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.

# Connecter les ressources Azure
<a name="connecting-azure-connecting-azure-resources"></a>

L'intégration d'Azure Resources permet à AWS DevOps l'agent de découvrir et d'étudier les ressources de vos abonnements Azure lors d'enquêtes sur des incidents. L'agent utilise Azure Resource Graph pour la découverte des ressources et peut accéder aux métriques, aux journaux et aux données de configuration dans votre environnement Azure.

Cette intégration suit un processus en deux étapes : enregistrer Azure au niveau du AWS compte, puis associer des abonnements Azure spécifiques à des espaces d'agent individuels.

## Conditions préalables
<a name="prerequisites"></a>

Avant de connecter Azure Resources, assurez-vous d'avoir :
+ Accès à la console de AWS DevOps l'agent
+ Un compte Azure avec accès à l'abonnement cible
+ Pour la méthode de consentement de l'administrateur : un compte autorisé à effectuer le consentement de l'administrateur dans le Microsoft Entra ID
+ Pour la méthode d'enregistrement des applications : une application Entra autorisée à configurer les informations d'identification fédérées, et la [fédération d'identité sortante](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-federation.html) activée sur votre compte AWS 

**Remarque :** Vous pouvez également démarrer l'enregistrement depuis un espace agent. Accédez aux **sources secondaires**, cliquez sur **Ajouter**, puis sélectionnez **Azure**. Si Azure Cloud n'est pas encore enregistré, la console vous guide d'abord tout au long de l'enregistrement.

## Enregistrement des ressources Azure via le consentement de l'administrateur
<a name="registering-azure-resources-via-admin-consent"></a>

La méthode Admin Consent utilise un flux basé sur le consentement avec l'application gérée par l' AWS DevOps agent.

### Étape 1 : Commencez l'enregistrement
<a name="step-1-start-the-registration"></a>

1. Connectez-vous à la console AWS de gestion et accédez à la console de l' AWS DevOps agent

1. Accédez à la page **Capability Providers**

1. Localisez la section **Azure Cloud** et cliquez sur **Enregistrer**

1. Sélectionnez la méthode d'enregistrement du **consentement de l'administrateur**

### Étape 2 : Compléter le consentement de l'administrateur
<a name="step-2-complete-admin-consent"></a>

1. Vérifiez les autorisations demandées

1. Cliquez pour continuer : vous êtes redirigé vers la page de consentement de l'administrateur Microsoft Entra

1. Connectez-vous avec un compte utilisateur principal autorisé à obtenir le consentement de l'administrateur

1. Examiner et donner son accord pour la demande d' AWS DevOps agent

### Étape 3 : Autorisation complète de l'utilisateur
<a name="step-3-complete-user-authorization"></a>

1. Après le consentement de l'administrateur, vous êtes invité à obtenir l'autorisation de l'utilisateur pour vérifier votre identité en tant que membre du locataire autorisé

1. Connectez-vous avec un compte appartenant au même client Azure

1. Après autorisation, vous êtes redirigé vers la console de l' AWS DevOps agent avec un statut de réussite

### Étape 4 : Attribuer des rôles
<a name="step-4-assign-roles"></a>

Consultez la section [Affectation de rôles Azure](#assigning-azure-roles) ci-dessous. Recherchez l'**AWS DevOps agent** lors de la sélection des membres.

## Enregistrement des ressources Azure via l'enregistrement des applications
<a name="registering-azure-resources-via-app-registration"></a>

La méthode d'enregistrement des applications utilise votre propre application Entra avec des identifiants d'identité fédérés.

### Étape 1 : Commencez l'enregistrement
<a name="step-1-start-the-registration"></a>

1. Dans la console de l' AWS DevOps agent, accédez à la page **Capability Providers**

1. Localisez la section **Azure Cloud** et cliquez sur **Enregistrer**

1. Sélectionnez la méthode **d'enregistrement de l'application**

### Étape 2 : Créez et configurez votre application Entra
<a name="step-2-create-and-configure-your-entra-application"></a>

Suivez les instructions affichées dans la console pour :

1. Activez la fédération des identités sortantes dans votre AWS compte (dans la console IAM, allez dans **Paramètres du compte** → Fédération des identités **sortantes**)

1. Créez une application Entra dans votre identifiant Microsoft Entra ou utilisez-en une existante

1. Configurer les informations d'identification fédérées sur l'application

### Étape 3 : Fournissez les détails de l'enregistrement
<a name="step-3-provide-registration-details"></a>

Remplissez le formulaire d'inscription avec :
+ **ID de locataire** : votre identifiant de locataire Azure
+ **Nom du locataire** : nom d'affichage du locataire
+ **ID client** — L'identifiant de l'application (client) de l'application Entra que vous avez créée
+ **Audience** : identifiant d'audience pour l'identifiant fédéré

### Étape 4 : Création du rôle IAM
<a name="step-4-create-the-iam-role"></a>

Un rôle IAM est automatiquement créé lorsque vous soumettez l'enregistrement via la console. Cela permet à AWS DevOps l'agent d'assumer les informations d'identification et d'appeler`sts:GetWebIdentityToken`.

### Étape 5 : Attribuer des rôles
<a name="step-5-assign-roles"></a>

Consultez la section [Affectation de rôles Azure](#assigning-azure-roles) ci-dessous. Recherchez l'application Entra que vous avez créée lors de la sélection des membres.

### Étape 6 : Compléter l'enregistrement
<a name="step-6-complete-the-registration"></a>

1. Confirmez la configuration dans la console de AWS DevOps l'agent

1. Cliquez sur **Soumettre** pour terminer l'enregistrement

## Attribuer des rôles Azure
<a name="assigning-azure-roles"></a>

Après l'enregistrement, accordez à l'application un accès en lecture à votre abonnement Azure. Cette étape est la même pour les méthodes de consentement de l'administrateur et d'enregistrement de l'application.

1. Dans le portail Azure, accédez à votre abonnement cible

1. Accédez au **contrôle d'accès (IAM**)

1. Cliquez sur **Ajouter** > **Ajouter une attribution de rôle**

1. Sélectionnez le rôle de **lecteur** et cliquez sur **Suivant**

1. Cliquez sur **Sélectionner les membres**, recherchez l'application (soit **AWS DevOps agent** pour le consentement de l'administrateur, soit votre propre application Entra pour l'enregistrement de l'application)

1. Sélectionnez l'application et cliquez sur **Réviser \$1 attribuer**

1. (Facultatif) Pour permettre à l'agent d'accéder aux clusters Azure Kubernetes Service (AKS), effectuez la configuration d'accès AKS suivante.

**Exigence de sécurité :** le principal du service doit se voir attribuer uniquement le rôle de **lecteur** (et éventuellement les rôles en lecture seule AKS répertoriés ci-dessous). Le rôle de lecteur sert de limite de sécurité qui limite l'agent aux opérations en lecture seule et limite l'impact des attaques indirectes par injection rapide. L'attribution de rôles dotés d'autorisations d'écriture ou d'action augmente considérablement le rayon d'action et peut compromettre les ressources Azure. AWS DevOps L'agent effectue uniquement des opérations de lecture. L'agent ne modifie, ne crée ni ne supprime les ressources Azure.

### Configuration de l'accès AKS (facultatif)
<a name="aks-access-setup-optional"></a>

#### Étape 1 : accès au niveau Azure Resource Manager (ARM)
<a name="step-1-azure-resource-manager-arm-level-access"></a>

Attribuez le **rôle d'utilisateur du cluster de services Azure Kubernetes** à l'application.

Sur le portail Azure, accédez à **Abonnements** → sélectionnez abonnement → **Contrôle d'accès (IAM)** → **Ajouter une attribution de rôle** → sélectionnez Rôle **utilisateur du cluster de services Azure Kubernetes** → attribuer à l'application (soit **AWS DevOps agent** pour le consentement de l'administrateur, soit votre propre application Entra pour l'enregistrement des applications).

Cela couvre tous les clusters AKS inclus dans l'abonnement. Pour étendre la portée à des clusters spécifiques, attribuez-les plutôt au niveau du groupe de ressources ou du cluster individuel.

#### Étape 2 : Accès à l'API Kubernetes
<a name="step-2-kubernetes-api-access"></a>

Choisissez une option en fonction de la configuration d'authentification de votre cluster :

**Option A : contrôle d'accès basé sur les rôles (RBAC) Azure pour Kubernetes (recommandé)**

1. Activez Azure RBAC sur le cluster s'il n'est pas déjà activé : Portail Azure → Cluster AKS → **Paramètres** → **Configuration de sécurité** → **Authentification et autorisation** → sélectionnez **Azure** RBAC

1. Attribuer un rôle en lecture seule : Portail Azure → **Abonnements** → sélectionner un abonnement → **Contrôle d'accès (IAM)** → **Ajouter une attribution de rôle** → sélectionner **Azure Kubernetes Service RBAC** Reader → attribuer à l'application

Cela couvre tous les clusters AKS inclus dans l'abonnement.

**Option B : Azure Active Directory (Azure AD) \$1 Kubernetes RBAC**

Utilisez-le si votre cluster utilise déjà la configuration d'authentification Azure AD par défaut et que vous préférez ne pas activer Azure RBAC. Cela nécessite une `kubectl` configuration par cluster.

1. Enregistrez le manifeste suivant sous le nom `devops-agent-reader.yaml` :

```
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: devops-agent-reader
rules:
  - apiGroups: [""]
    resources: ["namespaces", "pods", "pods/log", "services", "events", "nodes"]
    verbs: ["get", "list"]
  - apiGroups: ["apps"]
    resources: ["deployments", "replicasets", "statefulsets", "daemonsets"]
    verbs: ["get", "list"]
  - apiGroups: ["metrics.k8s.io"]
    resources: ["pods", "nodes"]
    verbs: ["get", "list"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: devops-agent-reader-binding
subjects:
  - kind: User
    name: "<SERVICE_PRINCIPAL_OBJECT_ID>"
    apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: ClusterRole
  name: devops-agent-reader
  apiGroup: rbac.authorization.k8s.io
```

1. `<SERVICE_PRINCIPAL_OBJECT_ID>`Remplacez-le par l'ID d'objet de votre directeur de service. Pour le trouver : Portail Azure → Entra ID → Applications d'entreprise → recherchez le nom de l'application (soit **AWS DevOps Agent** pour le consentement de l'administrateur, soit votre propre application Entra pour l'enregistrement des applications).

1. Appliquer à chaque cluster :

```
az aks get-credentials --resource-group <rg> --name <cluster-name>
kubectl apply -f devops-agent-reader.yaml
```

**Remarque :** Les clusters utilisant uniquement des comptes locaux (sans Azure AD) ne sont pas pris en charge. Nous vous recommandons d'activer l'intégration Azure AD sur votre cluster pour utiliser cette fonctionnalité.

### Rôle personnalisé le moins privilégié (facultatif)
<a name="least-privileged-custom-role-optional"></a>

Pour un contrôle d'accès plus strict, vous pouvez créer un rôle Azure personnalisé limité uniquement aux fournisseurs de ressources utilisés par l' AWS DevOps agent, au lieu du rôle général de lecteur :

```
{
  "Name": "AWS DevOps Agent - Azure Reader",
  "Description": "Least-privilege read-only access for AWS DevOps Agent incident investigations.",
  "Actions": [
    "Microsoft.AlertsManagement/*/read",
    "Microsoft.Compute/*/read",
    "Microsoft.ContainerRegistry/*/read",
    "Microsoft.ContainerService/*/read",
    "Microsoft.ContainerService/managedClusters/commandResults/read",
    "Microsoft.DocumentDB/*/read",
    "Microsoft.Insights/*/read",
    "Microsoft.KeyVault/vaults/read",
    "Microsoft.ManagedIdentity/*/read",
    "Microsoft.Monitor/*/read",
    "Microsoft.Network/*/read",
    "Microsoft.OperationalInsights/*/read",
    "Microsoft.ResourceGraph/resources/read",
    "Microsoft.ResourceHealth/*/read",
    "Microsoft.Resources/*/read",
    "Microsoft.Sql/*/read",
    "Microsoft.Storage/*/read",
    "Microsoft.Web/*/read"
  ],
  "NotActions": [],
  "DataActions": [],
  "NotDataActions": [],
  "AssignableScopes": [
    "/subscriptions/{your-subscription-id}"
  ]
}
```

## Associer un abonnement à un espace agent
<a name="associating-a-subscription-with-an-agent-space"></a>

Après avoir enregistré Azure au niveau du compte, associez des abonnements spécifiques à vos espaces d'agent :

1. Dans la console AWS DevOps Agent, sélectionnez votre espace agent

1. Accédez à l'onglet **Fonctionnalités**

1. Dans la section **Sources secondaires**, cliquez sur **Ajouter**

1. Sélectionnez **Azure**

1. Fournissez l'**ID d'abonnement** pour l'abonnement Azure que vous souhaitez associer

1. Cliquez sur **Ajouter** pour terminer l'association

Vous pouvez associer plusieurs abonnements au même espace agent pour donner à l'agent une visibilité sur l'ensemble de votre environnement Azure.

## Gestion des connexions Azure Resources
<a name="managing-azure-resources-connections"></a>
+ **Affichage des abonnements connectés** : dans l'onglet **Fonctionnalités**, la section **Sources secondaires** répertorie tous les abonnements Azure connectés.
+ **Supprimer un abonnement** : pour déconnecter un abonnement d'un espace agent, sélectionnez-le dans la liste des **sources secondaires** et cliquez sur **Supprimer**. Cela n'affecte pas l'enregistrement au niveau du compte.
+ **Suppression de l'enregistrement** : pour supprimer complètement l'enregistrement Azure Cloud, rendez-vous sur la page **Capability Providers** et supprimez l'enregistrement. Toutes les associations Agent Space doivent d'abord être supprimées.