Staging — не продакшен: дайте ему собственную границу доступа
Метка staging не решает, кто попадает в приложение и чего оно может коснуться. Пройдите аудиторию, данные, учётные данные и административные поверхности, прежде чем публиковать его.
Staging выглядит как тестовая система, пока вы не заметите скопированную продакшен-базу, живые почтовые учётные данные и платёжный ключ в его окружении. В этот момент метка на вкладке перестаёт иметь значение, и настоящий вопрос в том, до чего может дотянуться это развёртывание и кто может дотянуться до него. VPN на входной двери не отвечает на этот вопрос, потому что ограничивает один путь в систему и ничего не говорит о том, что система может делать на выходе. Начните с аудитории и двигайтесь наружу.
Начните с аудитории, а не с URL
Три аудитории дают три разных проекта. Частной инженерной среде нужны идентичность и маршрут; приёмочному тесту заказчика нужны учётные записи, представляющие заказчиков; публичной демонстрации нужно намеренное раскрытие с собственными средствами контроля. Записанная заранее аудитория предотвращает обычный дрейф, когда URL предпросмотра тихо становится постоянным. Всё остальное в обзоре зависит от этого ответа.
Если никто не может назвать аудиторию, считайте это первой находкой, а не пробелом в документации.
Пройдите через входную дверь и поверхности за ней
Разрешите имена, прежде чем доверять выданному вам URL, затем запросите административные пути напрямую.
dig +short staging.example.com
curl -sS -o /dev/null -w "%{http_code}\n" https://staging.example.com/
curl -sS -o /dev/null -w "%{http_code}\n" https://staging.example.com/adminДополнительные записи часто выявляют адрес прямого происхождения, который обходит CDN или вход VPN, что делает задуманный контроль необязательным. Перенаправление говорит, где приложение считает, что живёт, а неожиданная схема или имя хоста заслуживают дополнительной проверки. Проверка вероятного административного пути должна дать отказ, а не страницу. Ответ 200 на неаутентифицированном административном пути — это находка, которую искал весь обзор.
Проверьте, что среда умеет, а не только что она показывает
Страница, требующая входа, всё равно поставляется с полномочиями бэкенда. Спросите, под какой идентичностью работает нагрузка, и прочитайте привязанные к ней политики.
aws sts get-caller-identityЭтот вызов сообщает учётную запись и принципала, которые среда действительно использует, и это отправная точка для любого последующего вопроса о правах. Оттуда проверьте, может ли идентичность отправлять почту, двигать деньги, читать продакшен-секреты или писать продакшен-данные. Замените общие продакшен-учётные данные ограниченными staging-идентичностями и предпочитайте песочницы поставщика там, где они есть. Тестовая учётная запись, которая может списать с настоящей карты, — это продакшен-система с другим именем хоста.
Сохраняйте границу после завершения обзора
Среда не защищается одним аудитом; её защищает владение, которое переживает смену персонала. Назначьте, кто снимает доступ, сбрасывает тестовые данные и выводит развёртывание из эксплуатации, и дайте предпросмотру срок, который кто-то обязан продлить. Изоляция помогает только пока изолированное поддерживается. Перепроверьте те же пути после следующего выпуска, потому что флаг функции или новая интеграция — это ровно то, как отказанный маршрут становится открытым.
Примите проект с разрешённым рабочим процессом и с отказанным. Если оба ведут себя как задокументировано, граница существует; если проверен только счастливый путь, это надежда.