Введение в безопасность AWS

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

Rahul Singh

Technical Product Manager

Предварительные требования курса

 

  • Базовые знания о безопасности AWS
  • Понимание концепций облачных вычислений
  • Концепции безопасности и управления затратами AWS

 

 

Титульный слайд курса «Концепции безопасности и управления затратами AWS»

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

Цели курса

 

  1. Идентификация: кто обращается
  2. Авторизация: к чему есть доступ
  3. Секреты и шифрование: защита данных
  4. Доказательства: что произошло впоследствии

Четыре пронумерованные полосы, расположенные друг под другом, — по одной на каждую тему курса. Полоса первая, «Идентификация», отмечена как Глава 1. Полоса вторая, «Авторизация», отмечена как Глава 2. Полоса третья, «Секреты и шифрование», отмечена как Главы 2 и 3. Полоса четвёртая, «Доказательства», отмечена как Глава 3. Оранжевая стрелка слева с подписью «это видео» указывает на первую полосу.

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

Ваш код проходит через пайплайн

Схема слева направо. Шаг первый: блок «Ваш пайплайн» с тремя этапами по порядку — Build, Test, Deploy. Шаг второй: стрелка с подписью git push, ведущая к нему от блока «Вы». Шаг третий: оранжевый значок под пайплайном с подписью «собственная идентичность». Стрелка продолжается от пайплайна к блоку AWS.

Сначала один термин

  • Пайплайн — это автоматизация, которая собирает, тестирует и разворачивает ваш код
  • Он запускается при вашем push, без участия человека
Использование AWS Security для разработчиков

Деплой, который падает по неверной причине

Чьи права на самом деле проверяются при изменении кода?
  1. Вы отправляете изменение

Шаг первый вертикальной схемы. Блок «Вы» отправляет изменение кода.

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

Деплой, который падает по неверной причине

Чьи права на самом деле проверяются при изменении кода?
  1. Вы отправляете изменение

  2. Ваш пайплайн запускается

Вертикальная схема. Шаг первый: «Вы» отправляете изменение кода. Стрелка ведёт вниз к шагу второму: «ваш пайплайн» выполняет деплой.

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

Деплой, который падает по неверной причине

Чьи права на самом деле проверяются при изменении кода?
  1. Вы отправляете изменение

  2. Ваш пайплайн запускается

  3. Деплой останавливается: AccessDenied

Первая мысль: «Надо проверить свои права».

Вертикальная схема. Шаг первый: «Вы» отправляете изменение кода. Шаг второй: «ваш пайплайн» выполняет деплой. Шаг третий: AWS проверяет запрос и возвращает AccessDenied.

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

Что произошло на самом деле

Шаг первый схемы слева направо. Блок «Вы» — на этом ваше участие заканчивается.

  1. Вы отправляете изменение. На этом ваше участие заканчивается
Использование AWS Security для разработчиков

Что произошло на самом деле

Схема слева направо. Блок «Вы» со стрелкой к блоку «Ваш пайплайн». Под пайплайном — значок с подписью deploy-role.

  1. Вы отправляете изменение. На этом ваше участие заканчивается
  2. Пайплайн выполняет деплой от имени роли, созданной вашей командой
Использование AWS Security для разработчиков

Что произошло на самом деле

Схема слева направо: «Вы» → «Ваш пайплайн» → AWS. Под пайплайном — значок с подписью deploy-role, а пунктирная стрелка с подписью «проверяет» идёт от AWS к этому значку, а не к «Вам».

  1. Вы отправляете изменение. На этом ваше участие заканчивается
  2. Пайплайн выполняет деплой от имени роли, созданной вашей командой
  3. AWS проверяет эту роль
Использование AWS Security для разработчиков

Инициатор и принципал

Инициатор

Тот, кто запускает процесс.

Здесь: вы.

Значок в виде человеческой фигуры, обозначающий инициатора, который запускает процесс.

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

Инициатор и принципал

Инициатор

Тот, кто запускает процесс.

Здесь: вы.

Принципал

Идентичность, которую AWS проверяет при получении запроса.

Здесь: роль пайплайна.

Значок в виде человеческой фигуры, обозначающий инициатора, который запускает процесс.

Значок, обозначающий принципала.

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

Инициатор и принципал

Инициатор

Тот, кто запускает процесс.

Здесь: вы.

Принципал

Идентичность, которую AWS проверяет при получении запроса.

Здесь: роль пайплайна.

  • Lambda: роль выполнения. ECS: роль задачи. Название другое, принципал тот же
  • Исключение: долгоживущий ключ в вашем терминале — тогда принципал это пользователь IAM

Значок в виде человеческой фигуры, обозначающий инициатора, который запускает процесс.

Значок, показывающий, что AWS проверяет принципала, а не инициатора.

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

Один деплой, две роли

Роль A (по образцу AdministratorAccess)

  • Чтение любого бакета
  • Использование любого ключа
  • Обновление любой функции

Роль B

  • Чтение одного бакета
  • Использование одного ключа
  • Обновление одной функции

Префикс: путь внутри бакета, похожий на папку

Изображение роли с полным доступом к шести различным политикам.

Изображение роли с ограниченным доступом только к одной политике.

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

Радиус поражения

Широкая роль

При компрометации: доступ ко всем бакетам, префиксам и объектам в аккаунте.

Узкая роль

При компрометации: доступ к одному префиксу в одном бакете. Не более того.

Концентрические кольца, показывающие широкую роль, охватывающую все части аккаунта.

Концентрические кольца, показывающие, что узкая роль затрагивает только внутренние кольца объекта и префикса, не касаясь остальных частей.

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

Принцип наименьших привилегий на практике

Роль должна делать только то, что требуется для работы, и не более того.

  • Управляемые AWS политики, такие как AmazonS3ReadOnlyAccess: доступ ко всем бакетам. Управляемые клиентом: ваши, вплоть до одного префикса
  • Ограничивайте охват и срок действия: временные учётные данные вместо долгоживущих ключей
  • AWS защищает инфраструктуру
  • Насколько широки ваши роли — решаете вы сами, и это решение фиксируется в вашем репозитории

Пример: роль для чтения reports-bucket Два разрешения «allow». Больше ничего не выдано.

  • Никаких прав на IAM — сервис, который решает, кому что разрешено

Список разрешений роли: три лишних разрешения зачёркнуты красным, два необходимых отмечены зелёным.

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

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

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

Preparing Video For Download...