Безопасное развертывание с Docker Compose + Ubuntu
В стартапах Кремниевой долины Docker Compose является одним из предпочтительных инструментов для быстрого развертывания и управления контейнерными приложениями. Однако удобство часто сопряжено с рисками безопасности. Как инженер по надежности сайта (SRE), я прекрасно осознаю, что уязвимости безопасности могут привести к катастрофическим последствиям. В этой статье я поделюсь лучшими практиками безопасности, которые я обобщил в своей реальной работе, сочетая Docker Compose с системами Ubuntu, помогая вам наслаждаться удобством Docker Compose, обеспечивая при этом безопасность системы.
I. Укрепление безопасности системы Ubuntu
Перед развертыванием конт ейнеров крайне важно обеспечить безопасность самой хост-системы Ubuntu. Вот несколько ключевых шагов:
1. Регулярное обновление Ubuntu и Docker
Убедитесь, что как система, так и Docker постоянно обновляются для исправления известных уязвимостей:
sudo apt update && sudo apt upgrade -y
sudo apt install docker-ce docker-compose-plugin
2. Ограничение прав управления Docker
Строго контролируйте права управления Docker, чтобы предотвратить атаки с повышением привилегий:
sudo usermod -aG docker deployuser
# Предотвратить легкое получение об ычными пользователями прав управления Docker
3. Настройка брандмауэра Ubuntu (UFW)
Разумно ограничьте сетевой доступ, чтобы предотвратить несанкционированный доступ:
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw status verbose
4. Правильная настройка взаимодействия Docker и UFW
По умолчанию Docker обходит UFW для настройки iptables, поэтому рекомендуется ручное управление:
Измените файл конфигурации Docker:
sudo nano /etc/docker/daemon.json
Добавьте следующее содержимое:
{
"iptables": false,
"ip-forward": true,
"userland-proxy": false
}
Перезапустите службу Docker:
sudo systemctl restart docker
Явно привяжите адреса в Docker Compose:
services:
webapp:
ports:
- "127.0.0.1:8080:8080"