Ориентированными на облако называются приложения и сервисы, автоматизирующие и интегрирующие концепции непрерывной поставки, интеграции и развертывания, DevOps, микросервисов, бессерверных технологий и контейнеров, , .
Это определение было создано путем объединения лучших частей многих различных определений. Проанализируем его вместе?
Начнем с «приложений и сервисов». Под этим подразумеваются любые услуги или ПО (включая API), предлагаемые провайдером облака, а также любые сторонние услуги, предоставляемые поставщиками, чьи продукты были приобретены для использования в облаке. По сути, вся инфраструктура, услуги и программное обеспечение, находящиеся в облаке, доступны пользователям. Сюда входит и программное обеспечение как услуга (англ. Software as a Service, SaaS), которое не устанавливается в облако, но доступно в нем, в то время как рабочая нагрузка в основном идет на другое место.
Следующая часть нашего определения – «автоматизирующие и интегрирующие». Облако сконцентрировано на автоматизации, то есть на сокращении объема утомительной ручной работы и на обеспечении точности. Оно не только автоматизирует все возможные действия, но и гарантирует бесперебойную совместную работу всех движущихся частей, которую также называют «интеграцией». Необходимо обеспечить условия для того, чтобы различные сервисы, программное обеспечение, инфраструктура и сети могли правильно работать вместе и интегрироваться без проблем, иначе в облаке наступит беспорядок, устранение которого потребует много усилий и денежных затрат.
Итак, теперь, когда мы понимаем важность правильной работы программного обеспечения и всех сервисов вместе, а также их полной автоматизации, добавим следующие компоненты: CI/CD, DevOps, микросервисы, бессерверные приложения и контейнеры (определение которых мы уже давали в этой главе).
Все эти функции вместе создают облачно-ориентированную среду. Доступ ко всем этим инструментам и сервисам, предоставляемый поставщиком облака, инфраструктурная среда, способная поддерживать все эти концепции, а также добавление необходимых для работы инструментов сторонних производителей – все это создает потрясающие возможности для службы безопасности, если эта среда правильно спроектирована и имеет хорошую поддержку.
Однако если такая среда спланирована и разработана без учета требований безопасности (в соответствии с концепциями, которые мы определили ранее в этой книге), она может стать небезопасной онлайн-мишенью для злоумышленников.
Как и многие другие темы этой главы, обеспечение безопасности облака рассматривается в нескольких книгах. Здесь представлен всего лишь краткий обзор того, что необходимо учитывать при работе в облаке.
При проектировании или разработке архитектуры для облака следует учитывать принципы «нулевого доверия» и «предположения взлома». Очень важно обеспечить конечному пользователю безопасные настройки по умолчанию. При этом «самый безопасный способ» сделать что-то всегда должен являться и «самым простым». Это можно обеспечить с помощью предоставления безопасных паттернов (конфигураций, инфраструктуры, кода и т. д.).
Следует постоянно применять функции безопасности, которые включены в приобретенный пакет. Например, если в наличии имеется панель с функциями безопасности, необходимо пользоваться ею во всем объеме. Эти услуги уже оплачены вместе с другими приобретаемыми компонентами облачных сервисов, поэтому можно задействовать их в полной мере.
Как и в случае со всеми сетями и приложениями, следует контролировать все, что можно контролировать, сканировать все, что можно сканировать, и устанавливать оповещения обо всех важных событиях. Полезной будет активация ведения журналов и их защита от злоумышленников с помощью мониторинга, контроля доступа и оповещений.
Многие говорят, что «идентификация в облаке – это новый защитный периметр». Можно соглашаться с этим утверждением или нет, но идентификация (разумеется, с контролем доступа на основе ролей) является замечательным способом защиты ресурсов и служб, находящихся в облаке.
Ключевым моментом при работе с облаком является заблаговременное планирование, обеспечение четкого руководства для пользователей, а также автоматизация безопасных настроек по умолчанию, применения политик и других функций безопасности при любом возможном случае. Если командам разработки и эксплуатации разрешить начать работу в облаке с не настроенными по умолчанию параметрами безопасности, это приведет к проблемам. Поэтому следует проявить инициативу и предоставить как можно больше рекомендаций и поддержки, относящихся к облачной безопасности.
Облачный поток также известен как «пошаговые функции», «логические приложения» и «облачные потоки данных» в зависимости от поставщика публичного облака. Облачные потоки запускаются событиями в облаке, а затем выполняют заранее определенный рабочий процесс (набор действий). Логические приложения являются частью общедоступного облака, и у каждого поставщика облака они называются по-разному, хотя выполняют одну и ту же функцию – запускают рабочие процессы на основе происходящих в облаке событий. Облачные потоки могут быть запущены, когда кто-то пытается войти в приложение слишком большое количество раз; когда есть подозрение, что кто-то сканирует порты; когда кто-то с учетной записью обычного сотрудника пытается получить доступ к тому, что, согласно политике, не должно быть ему доступно, и т. д. Пользователь облака устанавливает, какое событие (или события) запускает логическое приложение, и оно выполняет соответствующий рабочий процесс.
Облачные потоки необходимо тестировать, чтобы убедиться, что они срабатывают в нужный момент и выполняют только запрограммированные в них действия. Возможно, будет сложно проверить их на безопасность, поскольку они функционируют иначе, чем другие приложения, но, как уже можно догадаться, все равно такая проверка не будет лишней.
СОВЕТ. Облачные потоки отлично подходят для защиты систем. При каждом возникновении нового вида инцидента безопасности или обнаружении аномалии следует создать облачный поток, который обработает его или по крайней мере предупредит о нем.