Безопасный деплой

Использование AWS Security для разработчиков

Rahul Singh

Technical Product Manager

Для чего нужен чек-лист

Две карточки рядом над полосой деплоя во всю ширину. Левая карточка с подписью «настройка» содержит три значения конфигурации с зелёными галочками и подписана «одно верное значение». Правая карточка с подписью «вопрос» содержит три вопросительных знака рядом с пустыми пунктирными полями для ответа и подписана «ваш ответ». Стрелки идут от обеих карточек вниз, в полосу деплоя.

  • Шесть вопросов, которые нужно задать перед деплоем
  • Не шесть настроек, которые нужно включить
Использование AWS Security для разработчиков

Шесть вопросов в порядке запроса

Задавайте вопросы в этом порядке

  1. Кто проверяет токен вызывающей стороны?
  2. Какое удостоверение проверяет AWS?

Сервис отчётов арендатора начинает изображаться в виде вертикального пути: пользователь арендатора, затем API Gateway, затем функция отчёта. Пронумерованные метки один и два отмечают два места, где применяется вопрос.

Использование AWS Security для разработчиков

Шесть вопросов в порядке запроса

Задавайте вопросы в этом порядке

  1. Кто проверяет токен вызывающей стороны?
  2. Какое удостоверение проверяет AWS?
  3. Что мешает одному арендатору читать строки другого?
  4. Где хранится пароль базы данных?

Сервис отчётов арендатора изображён в виде вертикального пути: пользователь арендатора, API Gateway, функция отчёта и DynamoDB, а Secrets Manager ответвляется в сторону. Пронумерованные метки от одного до четырёх отмечают четыре места, где применяется вопрос.

Использование AWS Security для разработчиков

Шесть вопросов в порядке запроса

Задавайте вопросы в этом порядке

  1. Кто проверяет токен вызывающей стороны?
  2. Какое удостоверение проверяет AWS?
  3. Что мешает одному арендатору читать строки другого?
  4. Где хранится пароль базы данных?
  5. У кого ключ и кто его использовал?
  6. Оставит ли след завтрашнее скачивание?

Сервис отчётов арендатора изображён в виде вертикального пути: пользователь арендатора, API Gateway, функция отчёта, DynamoDB и отчёты в S3, а Secrets Manager и ключ KMS ответвляются в сторону. Шесть пронумерованных меток отмечают шесть мест, где применяется вопрос. Пунктирная граница охватывает весь сервис и ведёт к пунктирному блоку CloudTrail под ней.

Использование AWS Security для разработчиков

Галочка — не значит безопасно

Три вопроса об этом сервисе

  1. Роль, а не ключ: читает любой объект

Три пронумерованных фрагмента сервиса отчётов. На первом у функции отчёта зелёная галочка, а оранжевый пунктирный контур охватывает все три префикса арендаторов в бакете. На втором внутри функции находится зелёный фильтр по арендатору, а на пути запроса снаружи — пустые оранжевые ворота. На третьем у бакета зелёная галочка, а оранжевый пунктирный путь от аудитора к управляемому AWS ключу обрывается, не доходя до него.

Использование AWS Security для разработчиков

Галочка — не значит безопасно

Три вопроса об этом сервисе

  1. Роль, а не ключ: читает любой объект
  2. Столбец арендатора: фильтр — в вашем коде
  3. Шифрование включено: ключ нельзя передать

Три пронумерованных фрагмента сервиса отчётов. На первом у функции отчёта зелёная галочка, а оранжевый пунктирный контур охватывает все три префикса арендаторов в бакете. На втором внутри функции находится зелёный фильтр по арендатору, а на пути запроса снаружи — пустые оранжевые ворота. На третьем у бакета зелёная галочка, а оранжевый пунктирный путь от аудитора к управляемому AWS ключу обрывается, не доходя до него.

Использование AWS Security для разработчиков

Разрыв, который не видно в конфигурации

Один внешний блок с подписью «предоставлено» содержит два непересекающихся внутренних блока. Сплошной зелёный блок с подписью «использовано» содержит три действия IAM, которые вызывала роль. Пунктирный оранжевый блок с подписью «никогда не вызывалось» содержит три действия IAM, которые она ни разу не вызвала.

  • Верно в день написания: каждое действие, которое тогда вызывал сервис
Использование AWS Security для разработчиков

Разрыв, который не видно в конфигурации

Один внешний блок с подписью «предоставлено» содержит два непересекающихся внутренних блока. Сплошной зелёный блок с подписью «использовано» содержит три действия IAM, которые вызывала роль. Пунктирный оранжевый блок с подписью «никогда не вызывалось» содержит три действия IAM, которые она ни разу не вызвала.

  • Верно в день написания: каждое действие, которое тогда вызывал сервис
  • Слишком широко сейчас: половина действий, которые перестали вызывать
  • Решение: предоставлять только то, что реально используется за девяносто дней журнала
Использование AWS Security для разработчиков

Записывайте причину, а не настройку

Две стороны одного решения

  • Значение, которое задаёт ваш код
  • Причина, по которой вы его выбрали

Строка конфигурации с подписью «в репозитории» расположена над пустым пунктирным блоком с подписью «почему» и подписью «не записано». Стрелка идёт вниз к зелёной карточке записи с четырьмя подписанными полями: «выбрали», «отклонили», «изменили бы, если» и «дата».

Использование AWS Security для разработчиков

Записывайте причину, а не настройку

Две стороны одного решения

  • Значение, которое задаёт ваш код
  • Причина, по которой вы его выбрали

 

  • Записано и согласовано: решение
  • Не задокументировано: сюрприз

Строка конфигурации с подписью «в репозитории» расположена над пустым пунктирным блоком с подписью «почему» и подписью «не записано». Стрелка идёт вниз к зелёной карточке записи с четырьмя подписанными полями: «выбрали», «отклонили», «изменили бы, если» и «дата».

Использование AWS Security для разработчиков

Те же вопросы, новые вызывающие стороны

Три строки под двумя заголовками — «субъект» и «вызывающая сторона», каждая пара связывает субъект с вызывающей стороной, которую он запускает: человек с сессией браузера, показанный приглушённо как привычный случай, коммит с конвейером и запрос с агентом. Все три сходятся в одних синих воротах с подписью «одни ворота» и тремя пронумерованными метками.

  • Удостоверение рабочей нагрузки: удостоверение для вызывающей стороны, не являющейся человеком
Использование AWS Security для разработчиков

Те же вопросы, новые вызывающие стороны

Три строки под двумя заголовками — «субъект» и «вызывающая сторона», каждая пара связывает субъект с вызывающей стороной, которую он запускает: человек с сессией браузера, показанный приглушённо как привычный случай, коммит с конвейером и запрос с агентом. Все три сходятся в одних синих воротах с подписью «одни ворота» и тремя пронумерованными метками.

  • Удостоверение рабочей нагрузки: удостоверение для вызывающей стороны, не являющейся человеком
  • Те же три вопроса: удостоверение, которое может проверить AWS, область не шире задачи и запись о выполненных действиях
  • Что изменилось: вызывающая сторона
Использование AWS Security для разработчиков

Что дальше

Две полосы одна над другой. Верхняя полоса с подписью «аккаунт» содержит четыре одинаковых блока: GuardDuty, Security Hub, AWS Config и Organizations. Под пунктирной линией нижняя полоса с подписью «ваш сервис» содержит те же шесть пронумерованных меток, что и ранее в видео.

  • Ваш сервис: шесть вопросов
  • Аккаунт над ним: GuardDuty, Security Hub, AWS Config, Organizations
Использование AWS Security для разработчиков

Давайте потренируемся!

Использование AWS Security для разработчиков

Preparing Video For Download...