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.
Associez automatiquement une politique gérée par AWS pour Systems Manager aux profils d'instance EC2 à l'aide de Cloud Custodian et d'AWS CDK
Créée par Ali Asfour (AWS) et Aaron Lennon (AWS)
Environnement : PoC ou pilote | Technologies : DevOps DevelopmentAndTesting ; Gestion et gouvernance ; Sécurité, identité, conformité ; Infrastructure | Charge de travail : Open source |
Services AWS : Amazon SNS ; Amazon SQS ; CodeBuild AWS ; AWS ; CodePipeline AWS Systems Manager ; AWS CodeCommit |
Récapitulatif
Vous pouvez intégrer des instances Amazon Elastic Compute Cloud (Amazon EC2) à AWS Systems Manager pour automatiser les tâches opérationnelles et améliorer la visibilité et le contrôle. Pour s'intégrer à Systems Manager, les instances EC2 doivent disposer d'un agent AWS Systems Manager (agent SSM) installé et d'une politique AmazonSSMManagedInstanceCore
AWS Identity and Access Management (IAM) attachée à leurs profils d'instance.
Toutefois, si vous voulez vous assurer que la AmazonSSMManagedInstanceCore
politique est attachée à tous les profils d'instance EC2, vous pouvez avoir des difficultés à mettre à jour les nouvelles instances EC2 qui n'ont pas de profil d'instance ou les instances EC2 qui ont un profil d'instance mais ne disposent pas de cette politique. AmazonSSMManagedInstanceCore
Il peut également être difficile d'appliquer cette politique à plusieurs comptes Amazon Web Services (AWS) et à plusieurs régions AWS.
Ce modèle permet de résoudre ces problèmes en déployant trois politiques Cloud Custodian
La première politique Cloud Custodian vérifie les instances EC2 existantes qui ont un profil d'instance mais qui n'ont pas cette politique.
AmazonSSMManagedInstanceCore
LaAmazonSSMManagedInstanceCore
politique est ensuite jointe.La deuxième politique Cloud Custodian vérifie les instances EC2 existantes sans profil d'instance et ajoute un profil d'instance par défaut auquel la
AmazonSSMManagedInstanceCore
politique est attachée.La troisième politique Cloud Custodian crée des fonctions AWS Lambda
dans vos comptes afin de surveiller la création d'instances EC2 et de profils d'instance. Cela garantit que la AmazonSSMManagedInstanceCore
politique est automatiquement attachée lorsqu'une instance EC2 est créée.
Ce modèle utilise les DevOps outils AWS
Conditions préalables et limitations
Prérequis
Deux comptes AWS actifs ou plus. L'un des comptes est le compte de sécurité et les autres sont des comptes de membres.
Autorisations permettant de fournir des ressources AWS dans le compte de sécurité. Ce modèle utilise des autorisations d'administrateur, mais vous devez accorder des autorisations conformément aux exigences et aux politiques de votre organisation.
Possibilité d'assumer un rôle IAM, du compte de sécurité aux comptes des membres, et de créer les rôles IAM requis. Pour plus d'informations à ce sujet, consultez la section Déléguer l'accès entre les comptes AWS à l'aide de rôles IAM dans la documentation IAM.
Interface de ligne de commande AWS (AWS CLI), installée et configurée. À des fins de test, vous pouvez configurer l'AWS CLI à l'aide de la
aws configure
commande ou en définissant des variables d'environnement. Important : cela n'est pas recommandé pour les environnements de production et nous recommandons de n'accorder à ce compte que l'accès avec le moindre privilège. Pour plus d'informations à ce sujet, consultez la section Accorder le moindre privilège dans la documentation IAM.Le
devops-cdk-cloudcustodian.zip
fichier (joint), téléchargé sur votre ordinateur local.Connaissance de Python.
Les outils requis (Node.js, AWS Cloud Development Kit (AWS CDK) et Git) sont installés et configurés. Vous pouvez utiliser le
install-prerequisites.sh
fichier qu'ildevops-cdk-cloudcustodian.zip
contient pour installer ces outils. Assurez-vous d'exécuter ce fichier avec les privilèges root.
Limites
Bien que ce modèle puisse être utilisé dans un environnement de production, assurez-vous que tous les rôles et politiques IAM répondent aux exigences et aux politiques de votre organisation.
Versions du package
Cloud Custodian version 0.9 ou ultérieure
TypeScript version 3.9.7 ou ultérieure
Node.js version 14.15.4 ou ultérieure
npm
version 7.6.1 ou ultérieureAWS CDK version 1.96.0 ou ultérieure
Architecture
Le schéma suivant illustre le flux de travail suivant :
Les politiques Cloud Custodian sont transférées vers un CodeCommit référentiel AWS dans le compte de sécurité. Une règle Amazon CloudWatch Events lance automatiquement le CodePipeline pipeline AWS.
Le pipeline récupère le code le plus récent CodeCommit et l'envoie à la partie d'intégration continue du pipeline d'intégration continue et de livraison continue (CI/CD) géré par AWS. CodeBuild
CodeBuild exécute les DevSecOps actions complètes, y compris la validation de la syntaxe des politiques sur les politiques Cloud Custodian, et exécute ces politiques en
--dryrun
mode pour vérifier quelles ressources sont identifiées.S'il n'y a aucune erreur, la tâche suivante invite un administrateur à examiner les modifications et à approuver le déploiement dans les comptes des membres.
Pile technologique
AWS CDK
CodeBuild
CodeCommit
CodePipeline
IAM
Cloud Custodian
Automatisation et évolutivité
Le module AWS CDK pipelines fournit un pipeline CI/CD utilisé CodePipeline pour orchestrer la création et le test du code source CodeBuild, en plus du déploiement de ressources AWS avec AWS stacks. CloudFormation Vous pouvez utiliser ce modèle pour tous les comptes membres et régions de votre organisation. Vous pouvez également étendre la Roles creation
pile pour déployer d'autres rôles IAM dans vos comptes membres.
Outils
AWS Cloud Development Kit (AWS CDK) est un framework de développement logiciel permettant de définir l'infrastructure cloud dans le code et de la provisionner via AWS. CloudFormation
L'interface de ligne de commande AWS (AWS CLI) est un outil open source qui vous permet d'interagir avec les services AWS à l'aide de commandes dans votre shell de ligne de commande.
AWS CodeBuild est un service de création entièrement géré dans le cloud.
AWS CodeCommit est un service de contrôle de version que vous pouvez utiliser pour stocker et gérer des actifs de manière privée.
AWS CodePipeline est un service de livraison continue que vous pouvez utiliser pour modéliser, visualiser et automatiser les étapes nécessaires à la publication de votre logiciel.
AWS Identity and Access Management est un service Web qui vous permet de contrôler en toute sécurité l'accès aux ressources AWS.
Cloud Custodian
est un outil qui réunit les dizaines d'outils et de scripts que la plupart des entreprises utilisent pour gérer leurs comptes de cloud public en un seul outil open source. Node.js
est un JavaScript environnement d'exécution basé sur le JavaScript moteur V8 de Google Chrome.
Code
Pour une liste détaillée des modules, des fonctions de compte, des fichiers et des commandes de déploiement utilisés dans ce modèle, consultez le README
fichier dans le devops-cdk-cloudcustodian.zip
fichier (joint).
Épopées
Tâche | Description | Compétences requises |
---|---|---|
Configurez le CodeCommit référentiel. |
Pour plus d'informations à ce sujet, consultez la section Création d'un CodeCommit référentiel dans la CodeCommit documentation AWS. | Developer |
Installez les outils nécessaires. | Utilisez le Pour plus d'informations à ce sujet, consultez la section Conditions préalables de la section Getting started with the AWS CDK dans la documentation du AWS CDK. | Developer |
Installez les packages AWS CDK requis. |
Les packages suivants sont requis par AWS CDK et sont inclus dans le
| Developer |
Tâche | Description | Compétences requises |
---|---|---|
Mettez à jour les variables requises. | Ouvrez le
| Developer |
Mettez à jour le fichier account.yml avec les informations du compte du membre. | Pour exécuter l'outil Cloud Custodian de c7n-org
| Developer |
Tâche | Description | Compétences requises |
---|---|---|
Boostrap le compte de sécurité. | Démarrez-le
| Developer |
Option 1 - Démarrez automatiquement les comptes des membres. | Si la Si nécessaire, vous pouvez effectuer la mise à jour Les nouveaux comptes ajoutés à la | Developer |
Option 2 - Démarrez manuellement les comptes des membres. | Bien que nous ne recommandons pas cette approche, vous pouvez définir la valeur de
Important : assurez-vous de mettre à jour les Vous pouvez également utiliser d'autres approches pour démarrer les comptes des membres, par exemple avec AWS CloudFormation. Pour plus d'informations à ce sujet, consultez Bootstrapping dans la documentation AWS CDK. | Developer |
Tâche | Description | Compétences requises |
---|---|---|
Créez les rôles IAM dans les comptes des membres. | Exécutez la commande suivante pour déployer la
| Developer |
Déployez la pile de pipelines Cloud Custodian. | Exécutez la commande suivante pour créer le
| Developer |