CloudMapper помогает вам анализировать ваши среды Amazon Web Services (AWS).
Примечание: Функциональность сетевой визуализации (команда prepare) больше не поддерживается.
CloudMapper помогает анализировать ваши окружения Amazon Web Services (AWS). Первоначальная цель заключалась в создании сетевых диаграмм и их отображении в браузере (функциональность больше не поддерживается). Сейчас инструмент включает гораздо больше возможностей, включая аудит на наличие проблем безопасности.
audit: Проверка на возможные неправильные конфигурации.collect: Сбор метаданных об аккаунте. Подробнее здесь.find_admins: Просмотр политик IAM для выявления административных пользователей и ролей, или субъектов с конкретными привилегиями. Подробнее здесь.find_unused: Поиск неиспользуемых ресурсов в аккаунте. Находит неиспользуемые группы безопасности, Elastic IP, сетевые интерфейсы, тома и балансировщики нагрузки.prepare/webserver: См. Сетевые визуализацииpublic: Поиск открытых хостов и диапазонов портов. Подробнее здесь.sg_ips: Получение geoip-информации о CIDR, которые доверяются группами безопасности. Подробнее здесь.stats: Отображение количества ресурсов для аккаунтов. Подробнее здесь.weboftrust: Отображение "Паутины доверия". Подробнее здесь.report: Генерация HTML-отчета. Включает сводку по аккаунтам и результаты аудита. Подробнее здесь.iam_report: Генерация HTML-отчета по информации IAM об аккаунте. Подробнее здесь.Если вы хотите добавить свои собственные частные команды, вы можете создать каталог private_commands и добавить их туда.
|
|
|
|
|
|
Требования:
pip и virtualenvjq (https://stedolan.github.io/jq/) и библиотека pyjq (https://github.com/doloopwhile/pyjq), которые требуют установки дополнительных инструментов, указанных ниже.На macOS:
# клонируем репозиторий
git clone https://github.com/duo-labs/cloudmapper.git
# Устанавливаем зависимости для 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
На Linux:
# клонируем репозиторий
git clone https://github.com/duo-labs/cloudmapper.git
# (AWS Linux, Centos, Fedora, RedHat и др.):
# sudo yum install autoconf automake libtool python3-devel.x86_64 python3-tkinter python-pip jq awscli
# (Debian, Ubuntu и др.):
# Возможно, дополнительно потребуется "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
Предоставляется небольшой набор демо-данных. Он отобразит то же окружение, что и демо-сайт https://duo-labs.github.io/cloudmapper/.
# Создаем данные для сетевой карты
python cloudmapper.py prepare --config config.json.demo --account demo
# Создаем отчет
python cloudmapper.py report --config config.json.demo --account demo
python cloudmapper.py webserver
Это запустит локальный веб-сервер по адресу http://127.0.0.1:8000/ Просмотрите сетевую карту по этой ссылке или отчет по адресу http://127.0.0.1:8000/account-data/report.html
Скопируйте config.json.demo в config.json и отредактируйте его, указав идентификатор аккаунта и имя (например, "prod"), а также любые внешние имена CIDR. CIDR — это диапазон IP, такой как 1.2.3.4/32, который означает только IP 1.2.3.4.
На этом шаге с помощью CLI выполняются вызовы describe и list, а json-данные записываются в папку, имя которой соответствует имени аккаунта, в каталоге account-data.
У вас должны быть настроены учетные данные AWS, которые могут использоваться CLI с правами на чтение для сбора различных метаданных. Я рекомендую использовать aws-vault. CloudMapper будет собирать информацию IAM, поэтому необходимо использовать MFA. Только шаг collect требует доступа к AWS.
Необходимо иметь следующие привилегии (они предоставляют разнообразные права на чтение метаданных):
arn:aws:iam::aws:policy/SecurityAuditarn:aws:iam::aws:policy/job-function/ViewOnlyAccessСбор данных выполняется следующим образом:
python cloudmapper.py collect --account my_account
Затем попробуйте выполнить различные команды, например:
python cloudmapper.py report --account my_account
python cloudmapper.py webserver
Затем просмотрите отчет в браузере по адресу 127.0.0.1:8000/account-data/report.html
Вместо прямого редактирования config.json существует команда для настройки данных в нем, если это необходимо:
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
Это позволит вам определить различные аккаунты AWS, используемые в вашем окружении, и известные CIDR IP.
Если вы используете AWS Organizations, вы также можете автоматически добавить аккаунты-участники организации в config.json с помощью:
python cloudmapper.py configure discover-organization-accounts
Перед выполнением этой команды необходимо пройти аутентификацию в AWS CLI и иметь разрешение organization:ListAccounts.