Эта проблема
В крупных организациях, как правило, есть много, иногда сотни подписок Azure. Задача здесь состоит в том, чтобы обеспечить и управлять, не замедляя ловкость, которую предлагает облако. Что нужно, так это процесс, чтобы иметь возможность наносить подписки на безопасность и мониторинг, запеченные в использовании трубопроводов DevOps.
Кто мы есть
Если у вас есть проблема с лазурной, если никто другой не может помочь, и если вы можете их задействовать, возможно, вы можете нанять команду разработчика (После A-Team )
Нашей команде разработчиков недавно было поручено воплотить в жизнь это реальность, используя нашу близнечную философию « Engineering Excellence » и «Code с ». Код с средствами, которые мы работаем вместе с нашими клиентами в совместном программе пар команд в отношении согласованного отставания. Инженерное превосходство — это все о деталях:
- Использование трубопроводов для развертывания любого кода
- Используйте PR, по крайней мере, для рецензентов
- солидная документация
- Тестирование строгости в этом случае с Terratest и Go .. и многое другое!
Цели дизайна
У нас были следующие цели дизайна:
- Если изменение правил, мы хотели бы применять пересмотренные правила ко всем подпискам, а не только новые
- Все можно развернуть из трубопровода
- Механизм для проверки правил работы, применяя их к тестовой подписке
- Регистрация по умолчанию будет включена для всех ресурсов
Центральный Управление подписка с
- Ключевое хранилище для секретов на основе арендаторов
- Центральный реестр контейнеров
- Центральное хранилище ключа для секретов на основе арендаторов о любой из управляемых подписок
- Центр безопасности, чтобы показать оповещения на арендаторе
Каждый управляемый Подписка будет просто иметь небольшой набор ресурсов по умолчанию:
- Ключевое хранилище
- хранение журнала
- Пользовательские роли
- бюджет
Мы использовали несколько репо для этого:
- Арендатор с Terraform для создания подписки управления
- Подписка с Terraform для создания подписки
- Политика ВСЕ политика была описана в терраформе стандартным способом и поставлена здесь.
- Пользовательские роли. Пользовательские роли Azure, описанные в Terraform, хранятся здесь
- Док. Мы хотели контролировать одобрение проектов и архитектуры, поэтому мы использовали PR -процесс для управления документами, входящими в основную ветвь этого репо.
Мы использовали несколько трубопроводов в проекте:
- CI/CD для создания подписки управления
- CI для создания управляемой подписки на тестирование
- CD для создания управляемой подписки в прямом эфире, которая будет вызвана из билета JIRA через функцию Azure
- CI/CD для применения изменений в политике в группе управления
Технологии
Мы встречаемся с клиентом там, где он есть, и используем любые инструменты, которые им удобны, единственное ограничение — мы работаем только над проектами Azure. В этом случае мы делали наш CI/CD в Azure DevOps, но таким образом, что весь управление потоком обрабатывался в Bash, чтобы сделать его максимально простым для порта трубопроводов в другие инструменты. Клиент уже использовал Terraform для IAC.
Ключом к защите лазурности является политика. Они могут быть сгруппированы в чертежи (если вы используете ARM) или инициативы, которые работают для Terraform — например, мы создали одну политическую инициативу для CIS -тесты .Subscriptions также может быть сгруппирована в группы управления, оба из которых делают все это намного проще.
Мы также позволили пользователям создавать Исключения политики Например, участник может захотеть создать виртуальную машину без зашифрованного диска, но если они это сделают, то он будет помечен в центре безопасности, и им придется оправдать это своей команде безопасности.
Мы взяли 10 спринтов, чтобы сделать это и задокументировать, а затем заняли две недели, чтобы поделиться тем, что мы узнали более широко. Для совместного использования мы внесли свой вклад в поставщика Terraform Azurerm, в Основная структура принятия облаков и написал более интересные части этого проекта:
- Внесение вклад в провайдер TeraRaform Azure
- Протестируйте свою политику лазурной политики параллельно
- Terraform Module для пользовательской политики Azure
- Автоматическая коллекция Azure Diagnostic Celemetry
- Terraform Bootstrap & Backend State в Azure
- Стандартизировать названия ресурсов в сценариях Terraform
- Обход политики в Azure
- Вызов Azure API с расширением REST для VS -кода
Оригинал: «https://dev.to/cse/secure-azure-as-code-5d9i»