Сообщество RSS DEV
Подписаться
Переместите состояние Terraform из публичного интернета (без создания VPN)
Файл состояния Terraform является наиболее чувствительным артефактом в управлении облаком, содержащим карты инфраструктуры и потенциально открытые секреты. По умолчанию он находится в облачном хранилище с общедоступным конечным пунктом, защищенным только ключом доступа. Если этот ключ будет скомпрометирован, атакующие получат немедленный доступ к всей инфраструктуре. Поставщики аутентификации, в частности, должны обеспечить безопасность своей собственной области, прежде чем управлять вашей.
Их учетная запись состояния в производстве становится недоступной через общие сети, требуя трехфазного подхода для обеспечения безопасности. Первая проблема, проблема "курицы и яйца", возникает потому, что удаленное состояние требует существующего бэкенда, который сам является инфраструктурой, управляемой Terraform. Это решается с помощью двухфазной загрузки: сначала локальное состояние создает основную учетную запись хранения и сеть, а затем бэкенд переключается на удаленный, мигрируя состояние.
Вторая ловушка - это "проблема доступа", когда безопасность учетной записи хранения путем отключения общего доступа отключает ее от конвейеров CI и пользователей вне виртуальной сети. Общее решение - шлюз VPN, который дорог и сложен. Вместо этого коннектор с нулевым доверием в контейнере присоединяется к сетке, осведомленной об идентификаторе, что позволяет уполномоченным сущностям получать доступ к частному конечному пункту безопасно через сетку. Это устраняет необходимость в стоящей инфраструктуре, VPN или прыжковых коробках.
Третий вызов включает многоступенчатый процесс блокировки. Попытка сделать учетную запись частной в начальном применении Terraform заблокирует Terraform до того, как будет существовать частный путь. Поэтому блокировка является отдельным, последующим шагом, выполняемым только после того, как сеть, частный конечный пункт и коннектор будут работать. Эта окончательная команда отключает доступ к общей сети, делая учетную запись доступной только через частную сетку.
Усиливая эти меры, статические учетные данные устраняются. Конвейер CI аутентифицируется с помощью федерации идентификаторов рабочей нагрузки, получая короткоживущие токены OIDC для доступа, который быстро истекает. Terraform selbst использует временные токены каталога для операций состояния, а не постоянные ключи доступа. Этот подход гарантирует, что даже если атакующий получит доступ, используемые учетные данные являются эфемерными и бесполезными.
В конечном итоге утечки файлов состояния часто возникают из-за общего доступа и скомпрометированных ключей, а не из-за нарушений шифрования. Удаление общего конечного пункта устраняет основной вектор атаки, делая скомпрометированные ключи неэффективными без доступа к сетке. Это обязательство по комплексной безопасности отражает философию продукта компании, предлагая надежные функции безопасности всем клиентам, а не только тем, кто находится на более высоких уровнях.