View a markdown version of this page

Commencer à utiliser l' AWS DevOps agent à l'aide du AWS CDK - AWS DevOps Agent

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.

Commencer à utiliser l' AWS DevOps agent à l'aide du AWS CDK

Présentation de

Ce guide explique comment utiliser le AWS Cloud Development Kit (AWS CDK) pour créer et déployer des ressources d' AWS DevOps agent. L'application AWS CDK automatise la création d'un espace d'agents, de rôles AWS Identity and Access Management (IAM), d'une application d'opérateur et d'associations de comptes via. AWS AWS CloudFormation

L'approche AWS CDK automatise les étapes manuelles décrites dans le guide d'intégration de la CLI en définissant toutes les ressources requises sous forme d'infrastructure sous forme de code.

AWS DevOps L'agent est disponible dans les 6 AWS régions suivantes : USA Est (Virginie du Nord), USA Ouest (Oregon), Asie-Pacifique (Sydney), Asie-Pacifique (Tokyo), Europe (Francfort) et Europe (Irlande). Pour plus d'informations sur les régions prises en charge, consultezRégions prises en charge.

Conditions préalables

Avant de commencer, assurez-vous de disposer des éléments suivants :

  • AWS Interface de ligne de commande (AWS CLI) installée et configurée avec les informations d'identification appropriées

  • Node.js version 18 ou ultérieure

  • AWS Interface de ligne de commande (CLI) CDK installée dans le monde entier. Pour installer la CLI AWS CDK, exécutez la commande suivante :

npm install -g aws-cdk
  • Un AWS compte pour le compte de surveillance (principal)

  • (Facultatif) Un deuxième AWS compte si vous souhaitez configurer la surveillance entre comptes

Ce que couvre ce guide

Ce guide est divisé en deux parties :

  • Partie 1 — Déployez un espace d'agent avec une application d'opérateur et une AWS association dans votre compte de surveillance. Une fois cette partie terminée, l'agent peut surveiller les problèmes liés à ce compte.

  • Partie 2 (facultatif) — Ajoutez une AWS association source pour un compte de service et déployez un rôle IAM entre comptes dans ce compte. Cette configuration permet à l'espace des agents de surveiller les ressources entre les comptes.

Ressources créées

Partie 1 : DevOpsAgentStack (compte de surveillance)

  • Rôle IAM (DevOpsAgentRole-AgentSpace) : assumé par le service DevOps Agent pour surveiller le compte. Inclut la politique AIDevOpsAgentAccessPolicy gérée et une politique en ligne qui permet de créer le rôle lié au service Resource Explorer.

  • Rôle IAM (DevOpsAgentRole-WebappAdmin) : rôle d'application opérateur avec la politique AIDevOpsOperatorAppAccessPolicy gérée pour les opérations de l'agent.

  • Espace d'agent (MyCDKAgentSpace) : espace d'agent central, créé à l'aide de la AWS::DevOpsAgent::AgentSpace CloudFormation ressource. Inclut la configuration de l'application pour les opérateurs.

  • Association (AWS moniteur) — Lie le compte de surveillance à l'espace des agents en utilisant la AWS::DevOpsAgent::Association CloudFormation ressource.

  • Association (AWS source) — (Facultatif) Lie le compte de service à l'espace des agents pour la surveillance entre comptes.

Partie 2 : ServiceStack (compte de service, facultatif)

  • Rôle IAM (DevOpsAgentRole-SecondaryAccount) : rôle multicompte avec un nom fixe. Approuvé par l'espace réservé aux agents dans le compte de surveillance. Inclut la politique AIDevOpsAgentAccessPolicy gérée et une politique en ligne qui permet de créer le rôle lié au service Resource Explorer.

  • Fonction Lambda (echo-service) : exemple de service simple qui renvoie les événements d'entrée.

Configuration

Étape 1 : Cloner le référentiel d'échantillons

Exécutez les commandes suivantes pour cloner le référentiel et accéder au répertoire du projet :

git clone https://github.com/aws-samples/sample-aws-devops-agent-cdk.git cd sample-aws-devops-agent-cdk

Étape 2 : Installation des dépendances

Exécutez la commande suivante pour installer les dépendances du projet :

npm install

Partie 1 : Déploiement de l'espace agent

Dans cette section, vous allez créer l'espace agent, les rôles IAM, l'application opérateur et une AWS association dans votre compte de surveillance.

Étape 1 : configurer l'ID du compte de surveillance

Ouvrez lib/constants.ts et définissez l'identifiant de votre compte de surveillance :

L'exemple suivant montre la constante à mettre à jour :

export const MONITORING_ACCOUNT_ID = "<YOUR_MONITORING_ACCOUNT_ID>";

Étape 2 : démarrer l'environnement AWS CDK

Si vous n'avez pas démarré le AWS CDK dans votre compte de surveillance, exécutez la commande suivante :

cdk bootstrap aws://<MONITORING_ACCOUNT_ID>/<REGION> --profile monitoring

Étape 3 : Création et déploiement

Exécutez les commandes suivantes pour créer le TypeScript code et déployer la pile :

npm run build cdk deploy DevOpsAgentStack --profile monitoring

Étape 4 : Enregistrez les sorties de la pile

Une fois le déploiement terminé, le AWS CDK imprime les sorties de la pile. Enregistrez ces valeurs pour une utilisation ultérieure.

L'exemple suivant montre le résultat attendu :

Outputs: DevOpsAgentStack.AgentSpaceArn = arn:aws:aidevops:<REGION>:123456789012:agentspace/abc123 DevOpsAgentStack.AgentSpaceRoleArn = arn:aws:iam::123456789012:role/DevOpsAgentRole-AgentSpace DevOpsAgentStack.OperatorRoleArn = arn:aws:iam::123456789012:role/DevOpsAgentRole-WebappAdmin DevOpsAgentStack.AssociationId = assoc-xyz

Si vous prévoyez de terminer la partie 2, enregistrez la AgentSpaceArn valeur. Vous en avez besoin pour configurer la pile de comptes de service.

Étape 5 : vérifier le déploiement

Pour vérifier que l'espace agent a bien été créé, exécutez la commande AWS CLI suivante :

aws devopsagent get-agent-space \ --agent-space-id <AGENT_SPACE_ID> \ --region <REGION>

À ce stade, votre espace d'agent est déployé avec l'application opérateur activée et votre compte de surveillance associé. L'agent peut surveiller les problèmes liés à ce compte.

Partie 2 (facultatif) : Ajouter une surveillance entre comptes

Dans cette section, vous étendez la configuration afin que votre espace agent puisse surveiller les ressources d'un deuxième AWS compte (le compte de service). Cela implique deux actions :

  1. Ajouter une AWS association source dans le DevOpsAgentStack qui pointe vers le compte de service.

  2. Déployer le ServiceStack dans le compte de service avec un rôle IAM qui fait confiance à l'espace de l'agent.

Important

Vous devez terminer la partie 1 avant de continuer. ServiceStack Requiert le résultat AgentSpaceArn du DevOpsAgentStack déploiement.

Étape 1 : configurer l'ID du compte de service

Ouvrez lib/constants.ts et définissez l'identifiant de votre compte de service :

L'exemple suivant montre la constante à mettre à jour :

export const SERVICE_ACCOUNT_ID = "<YOUR_SERVICE_ACCOUNT_ID>";

DevOpsAgentStack crée une AWS association source à l'aide de cet identifiant de compte. Si vous avez déployé le DevOpsAgentStack avant de définir cette valeur, redéployez-le pour créer l'association :

Exécutez les commandes suivantes pour le redéploiement :

npm run build cdk deploy DevOpsAgentStack --profile monitoring

Étape 2 : définir l'ARN de l'espace agent

Copiez la AgentSpaceArn valeur de la DevOpsAgentStack sortie (partie 1, étape 4) et définissez-la dans lib/constants.ts :

L'exemple suivant montre la constante à mettre à jour :

export const AGENT_SPACE_ARN = "arn:aws:aidevops:<REGION>:<MONITORING_ACCOUNT_ID>:agentspace/<SPACE_ID>";

ServiceStack Utilise cette valeur pour définir la politique de confiance relative au rôle de compte secondaire. Le n' ServiceStack est synthétisé que lorsque cette valeur est définie.

Étape 3 : démarrer le compte de service

Si vous n'avez pas démarré le AWS CDK dans votre compte de service, exécutez la commande suivante :

cdk bootstrap aws://<SERVICE_ACCOUNT_ID>/<REGION> --profile service

Étape 4 : Déployez le ServiceStack

Exécutez les commandes suivantes pour créer et déployer le ServiceStack en utilisant les informations d'identification du compte de service :

npm run build cdk deploy ServiceStack --profile service

Cela crée les ressources suivantes dans le compte de service :

  • Un rôle IAM (DevOpsAgentRole-SecondaryAccount) qui fait confiance à l'espace des agents dans le compte de surveillance

  • Une fonction Echo Lambda (echo-service) comme exemple de service

Étape 5 : vérifier le déploiement

Pour vérifier que la fonction Lambda a été déployée avec succès, exécutez les commandes suivantes pour tester le service Echo :

aws lambda invoke \ --function-name echo-service \ --payload '{"test": "hello world"}' \ --profile service \ response.json cat response.json

Résolution des problèmes

Cette section décrit les problèmes courants et explique comment les résoudre.

CloudFormation type de ressource introuvable

  • Vérifiez que vous déployez dans unRégions prises en charge.

  • Vérifiez que votre AWS CLI est configurée avec les autorisations appropriées.

La création du rôle IAM a échoué

  • Vérifiez que votre rôle de déploiement dispose des autorisations nécessaires pour créer des rôles IAM.

  • Vérifiez que les conditions de la politique de confiance correspondent à votre numéro de compte.

Le déploiement entre comptes échoue avec le message « Impossible d'assumer le rôle dans le compte cible »

  • Chaque pile doit être déployée avec les informations d'identification du compte cible. Utilisez l'--profileindicateur pour spécifier le profil de AWS CLI correct.

  • Vérifiez que le AWS CDK a été amorcé dans le compte cible.

Retards de propagation de l'IAM

  • La propagation des modifications de rôle IAM peut prendre quelques minutes. Si la création de l'espace agent échoue immédiatement après la création du rôle, attendez quelques minutes avant de procéder au redéploiement.

Nettoyage

Pour supprimer toutes les ressources, détruisez les piles dans l'ordre inverse.

Exécutez les commandes suivantes pour détruire les piles :

# If you deployed the ServiceStack, destroy it first cdk destroy ServiceStack --profile service # Then destroy the DevOpsAgentStack cdk destroy DevOpsAgentStack --profile monitoring

Avertissement : Cette action supprime définitivement votre espace agent et toutes les données associées. Cette action ne peut être annulée. Assurez-vous d'avoir sauvegardé toutes les informations importantes avant de continuer.

Considérations sur la sécurité

  • L'application AWS CDK crée des rôles IAM avec des politiques de confiance qui autorisent uniquement le principal du aidevops.amazonaws.com service à les assumer.

  • Les politiques de confiance incluent des conditions qui limitent l'accès à votre AWS compte spécifique et à l'ARN de votre espace agent.

  • Toutes les politiques suivent le principe du moindre privilège. Passez en revue et personnalisez les politiques IAM en fonction des exigences de sécurité de votre organisation.

  • Le rôle entre comptes (DevOpsAgentRole-SecondaryAccount) utilise un nom fixe et est limité à un ARN d'espace agent spécifique.

Étapes suivantes

Après avoir déployé votre AWS DevOps agent à l'aide du AWS CDK :

  1. Découvrez la gamme complète des fonctionnalités de l' DevOps agent dans le guide de l'utilisateur de l'AWS DevOps agent.

  2. Envisagez d'intégrer le déploiement du AWS CDK dans vos CI/CD pipelines pour une gestion automatisée de l'infrastructure.

Ressources supplémentaires