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.
Démarrage avec AWS DevOps Agent utilisant 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'agent, de rôles de gestion des AWS identités et des accès (IAM), d'une application opérateur et d'associations de AWS comptes via. 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 en tant que code.
AWS DevOps L'agent est disponible dans plusieurs AWS régions. Pour obtenir la liste complète, consultez Ré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 agent avec une application 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 de source pour un compte de service et déployez un rôle IAM multicompte sur ce compte. Cette configuration permet à l'espace agent de surveiller les ressources entre les comptes.
Ressources créées
Partie 1 : DevOpsAgentStack (compte de suivi)
Rôle IAM (
DevOpsAgentRole-AgentSpace) : assumé par le service DevOps Agent pour surveiller le compte. Inclut la politiqueAIDevOpsAgentAccessPolicygérée et une politique en ligne qui permet la création du rôle lié au service Resource Explorer.Rôle IAM (
DevOpsAgentRole-WebappAdmin) : rôle de l'opérateur dans l'application avec la politiqueAIDevOpsOperatorAppAccessPolicygérée pour les opérations des agents.Espace d'agent (
MyCDKAgentSpace) : espace d'agent central, créé à l'aide de laAWS::DevOpsAgent::AgentSpaceCloudFormation ressource. Comprend la configuration de l'application pour l'opérateur.Association (AWS moniteur) : associe le compte de surveillance à l'espace agent à l'aide de la
AWS::DevOpsAgent::AssociationCloudFormation ressource.Association (AWS source) — (Facultatif) Associe le compte de service à l'espace agent pour une surveillance intercomptes.
Partie 2 : ServiceStack (compte de service, facultatif)
Rôle IAM (
DevOpsAgentRole-SecondaryAccount) : Cross-account rôle avec un nom fixe. Approuvé par l'espace agent dans le compte de surveillance. Inclut la politiqueAIDevOpsAgentAccessPolicygérée et une politique en ligne qui permet la création du 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 : installer les 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 créez l'espace agent, les rôles IAM, l'application opérateur et une AWS association dans votre compte de surveillance.
Étape 1 : Configuration de l'identifiant 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 : Bootstrap AWS environnement 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 été créé correctement, exécutez la commande AWS CLI suivante :
aws devopsagent get-agent-space \ --agent-space-id <AGENT_SPACE_ID> \ --region <REGION>
À ce stade, votre espace 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 multi-comptes
Dans cette section, vous allez étendre la configuration afin que votre espace agent puisse surveiller les ressources d'un second AWS compte (le compte de service). Cela implique deux actions :
Ajouter une AWS association source dans le DevOpsAgentStack qui pointe vers le compte de service.
Déploiement du ServiceStack dans le compte de service avec un rôle IAM qui fait confiance à l'espace agent.
Important
Vous devez terminer la partie 1 avant de continuer. ServiceStack Cela nécessite la sortie AgentSpaceArn de DevOpsAgentStack déploiement.
Étape 1 : Configuration de l'identifiant 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 ID de compte. Si vous l'avez déployé DevOpsAgentStack avant de définir cette valeur, redéployez-le pour créer l'association :
Exécutez les commandes suivantes pour redéployer :
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 sur le rôle du compte secondaire. Le n' ServiceStack est synthétisé que lorsque cette valeur est définie.
Étape 3 : Bootstrap 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 agent dans le compte de surveillanceUne 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é correctement déployée, 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 effectuez le déploiement dans unRégions prises en charge.
Vérifiez que votre AWS interface de ligne de commande 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 est autorisé à créer des rôles IAM.
Vérifiez que les conditions de la politique de confiance correspondent à votre identifiant de compte.
Cross-account le déploiement é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 le
--profiledrapeau pour spécifier le profil AWS CLI correct.Vérifiez que le AWS CDK a été démarré dans le compte cible.
Délais de propagation 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 et redéployez.
Nettoyage
Pour retirer 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.rproxy.goskope.comservice à 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 d'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 inter-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 :
Découvrez la gamme complète des fonctionnalités de l' DevOps agent dans le guide de l'utilisateur de l'AWS DevOps agent.
Envisagez d'intégrer le déploiement du AWS CDK dans vos CI/CD pipelines pour une gestion automatisée de l'infrastructure.
Si vous enregistrez une intégration tierce, obtenez l'URL et le secret de son webhook en le faisant pivoter dans la console. Le AWS CDK se déploie via AWS CloudFormation, qui ne renvoie pas le secret du webhook en tant que sortie de pile. Pour obtenir des instructions sur la gestion des informations d'identification du webhook, consultez la section Gestion des informations d'identification du webhook.
Ressources supplémentaires
Exemple de référentiel CDK
sur le site Web GitHub AWS Référence de la bibliothèque de construction de DevOps l'agent CDK dans la référence de l'AWS API CDK