CloudMapper vous aide à analyser vos environnements Amazon Web Services (AWS).
Note : la fonctionnalité de visualisation réseau (commande prepare) n'est plus maintenue.
CloudMapper vous aide à analyser vos environnements Amazon Web Services (AWS). Le but initial était de générer des diagrammes réseau et de les afficher dans votre navigateur (fonctionnalité qui n'est plus maintenue). Il contient désormais beaucoup plus de fonctionnalités, y compris l'audit des problèmes de sécurité.
audit : Vérifie les erreurs de configuration potentielles.collect : Collecte les métadonnées d'un compte. Plus de détails ici.find_admins : Examine les politiques IAM pour identifier les utilisateurs et rôles administrateurs, ou les entités disposant de privilèges spécifiques. Plus de détails ici.find_unused : Recherche les ressources inutilisées dans le compte. Trouve les groupes de sécurité, adresses IP élastiques, interfaces réseau, volumes et équilibreurs de charge élastiques inutilisés.prepare/webserver : Voir Visualisations réseaupublic : Trouve les hôtes publics et les plages de ports. Plus de détails ici.sg_ips : Obtient des informations geoip sur les CIDR approuvés dans les groupes de sécurité. Plus de détails ici.stats : Affiche les comptages de ressources pour les comptes. Plus de détails ici.weboftrust : Affiche la toile de confiance. Plus de détails ici.report : Génère un rapport HTML. Inclut un résumé des comptes et des constatations d'audit. Plus de détails ici.iam_report : Génère un rapport HTML pour les informations IAM d'un compte. Plus de détails ici.Si vous souhaitez ajouter vos propres commandes privées, vous pouvez créer un répertoire private_commands et les y ajouter.
|
|
|
|
|
|
Prérequis :
pip, et virtualenvjq (https://stedolan.github.io/jq/) et de la bibliothèque pyjq (https://github.com/doloopwhile/pyjq), qui nécessitent quelques outils supplémentaires qui seront installés.Sur macOS :
# clone the repo
git clone https://github.com/duo-labs/cloudmapper.git
# Install pre-reqs for pyjq
brew install autoconf automake awscli freetype jq libtool python3
cd cloudmapper/
python3 -m venv ./venv && source venv/bin/activate
pip install --prefer-binary -r requirements.txt
Sur Linux :
# clone the repo
git clone https://github.com/duo-labs/cloudmapper.git
# (AWS Linux, Centos, Fedora, RedHat etc.) :
# sudo yum install autoconf automake libtool python3-devel.x86_64 python3-tkinter python-pip jq awscli
# (Debian, Ubuntu etc.) :
# You may additionally need "build-essential"
sudo apt-get install autoconf automake libtool python3.7-dev python3-tk jq awscli
cd cloudmapper/
python3 -m venv ./venv && source venv/bin/activate
pip install -r requirements.txt
Un petit ensemble de données de démonstration est fourni. Cela affichera le même environnement que le site de démonstration https://duo-labs.github.io/cloudmapper/
# Generate the data for the network map
python cloudmapper.py prepare --config config.json.demo --account demo
# Generate a report
python cloudmapper.py report --config config.json.demo --account demo
python cloudmapper.py webserver
Cela exécutera un serveur web local à http://127.0.0.1:8000/ Visualisez la carte réseau à partir de ce lien, ou consultez le rapport à http://127.0.0.1:8000/account-data/report.html
Copiez le fichier config.json.demo en config.json et modifiez-le pour inclure votre ID de compte et son nom (ex. « prod »), ainsi que les noms de CIDR externes. Un CIDR est une plage IP telle que 1.2.3.4/32, qui signifie uniquement l'IP 1.2.3.4.
Cette étape utilise la CLI pour effectuer des appels describe et list et enregistre le json dans le dossier spécifié par le nom du compte sous account-data.
Vous devez avoir des informations d'identification AWS configurées pouvant être utilisées par la CLI avec des droits de lecture pour les différentes métadonnées à collecter. Je recommande d'utiliser aws-vault. CloudMapper collectera les informations IAM, ce qui signifie que vous DEVEZ utiliser MFA. Seule l'étape collect nécessite un accès AWS.
Vous devez disposer des privilèges suivants (ils accordent divers accès en lecture aux métadonnées) :
arn:aws:iam::aws:policy/SecurityAuditarn:aws:iam::aws:policy/job-function/ViewOnlyAccessLa collecte des données s'effectue comme suit :
python cloudmapper.py collect --account my_account
À partir de là, essayez d'exécuter les différentes commandes, par exemple :
python cloudmapper.py report --account my_account
python cloudmapper.py webserver
Consultez ensuite le rapport dans votre navigateur à 127.0.0.1:8000/account-data/report.html
Au lieu de modifier config.json directement, il existe une commande pour configurer les données qui s'y trouvent, au cas où cela serait nécessaire :
python cloudmapper.py configure {add-account|remove-account} --config-file CONFIG_FILE --name NAME --id ID [--default DEFAULT]
python cloudmapper.py configure {add-cidr|remove-cidr} --config-file CONFIG_FILE --cidr CIDR --name NAME