Вступ до безпеки AWS

Використання AWS Security для розробників

Rahul Singh

Technical Product Manager

Вимоги до курсу

 

  • Базові знання безпеки AWS
  • Розуміння хмарних обчислень
  • Концепції безпеки та керування витратами в AWS

 

 

Титульна картка курсу «AWS Security and Cost Management Concepts»

Використання AWS Security для розробників

Цілі курсу

 

  1. Ідентичність: хто викликає
  2. Авторизація: до чого має доступ
  3. Секрети й шифрування: захист даних
  4. Свідчення: що сталося після

Чотири нумеровані смуги вздовж «хребта», по одній на кожну тему курсу. Смуга 1 — Identity, розділ 1. Смуга 2 — Authorization, розділ 2. Смуга 3 — Secrets and encryption, розділи 2 і 3. Смуга 4 — Evidence, розділ 3. Ліворуч помаранчева стрілка «це відео» вказує на смугу 1.

Використання AWS Security для розробників

Ваш код постачається через pipeline

Потік зліва направо. Крок 1: блок Your pipeline з етапами: Build, Test, Deploy. Крок 2: стрілка «git push» від блоку You. Крок 3: помаранчевий бейдж під конвеєром «its own identity». Далі стрілка до блоку AWS.

Спершу одне поняття

  • Pipeline — це автоматизація, що збирає, тестує й розгортає ваш код
  • Спрацьовує на ваш push, без людини в процесі
Використання AWS Security для розробників

Розгортання, що ламається з хибної причини

За зміни в коді чиї дозволи насправді перевіряють?
  1. Ви надсилаєте зміну

Крок 1 вертикального потоку. Блок You, який надсилає зміну в коді.

Використання AWS Security для розробників

Розгортання, що ламається з хибної причини

За зміни в коді чиї дозволи насправді перевіряють?
  1. Ви надсилаєте зміну

  2. Ваш pipeline запускається

Вертикальний потік. Крок 1 — You, надсилає зміну. Стрілка вниз до кроку 2 — ваш pipeline, який виконує розгортання.

Використання AWS Security для розробників

Розгортання, що ламається з хибної причини

За зміни в коді чиї дозволи насправді перевіряють?
  1. Ви надсилаєте зміну

  2. Ваш pipeline запускається

  3. Розгортання зупиняється: AccessDenied

Перша думка: «Перевірю свої дозволи».

Вертикальний потік. Крок 1 — You, надсилає зміну. Крок 2 — ваш pipeline виконує розгортання. Крок 3 — AWS оцінює запит і повертає AccessDenied.

Використання AWS Security для розробників

Що насправді відбулося

Крок 1 потоку зліва направо. Блок You, на цьому ваша участь закінчується.

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

Що насправді відбулося

Потік зліва направо. Блок You, стрілка до Your pipeline. Під конвеєром бейдж deploy-role.

  1. Ви пушите. На цьому ваша участь завершується
  2. Pipeline розгортає, працюючи як роль, створена вашою командою
Використання AWS Security для розробників

Що насправді відбулося

Потік зліва направо від You до Your pipeline до AWS. Під pipeline бейдж deploy-role, пунктирна стрілка «checks» від AWS назад до бейджа, а не до You.

  1. Ви пушите. На цьому ваша участь завершується
  2. Pipeline розгортає, працюючи як роль, створена вашою командою
  3. AWS перевіряє цю роль
Використання AWS Security для розробників

Актор і principal

Актор

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

Тут: ви.

Піктограма людини, що позначає актора, який запускає роботу.

Використання AWS Security для розробників

Актор і principal

Актор

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

Тут: ви.

Principal

Ідентичність, яку AWS перевіряє, коли приходить запит.

Тут: роль pipeline.

Піктограма людини, що позначає актора, який запускає роботу.

Піктограма, що позначає principal.

Використання AWS Security для розробників

Актор і principal

Актор

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

Тут: ви.

Principal

Ідентичність, яку AWS перевіряє, коли приходить запит.

Тут: роль pipeline.

  • Lambda: execution role. ECS: task role. Нова назва — той самий principal
  • Виняток: довгоживучий ключ у вашому терміналі, тоді principal — IAM user

Піктограма людини, що позначає актора, який запускає роботу.

Піктограма, що показує, що AWS перевіряє principal, а не актора.

Використання AWS Security для розробників

Те саме розгортання, дві ролі

Роль A (Форма AdministratorAccess)

  • Читати кожен бакет
  • Використовувати кожен ключ
  • Оновлювати кожну функцію

Роль B

  • Читати один бакет
  • Використовувати один ключ
  • Оновлювати одну функцію

Префікс: шлях усередині бакета, як у теці

Зображення ролі з повним доступом до шести різних політик.

Зображення ролі з вузьким доступом лише до однієї політики.

Використання AWS Security для розробників

Радіус ураження

Широка роль

Якщо скомпрометована: досягає кожного бакета, префікса й об'єкта в акаунті.

Вузька роль

Якщо скомпрометована: лише один префікс в одному бакеті. І нічого більше.

Концентричні кільця, що ілюструють широку роль, яка сягає кожної частини всього акаунта.

Концентричні кільця, що ілюструють, що вузька роль сягає лише внутрішніх кілець об'єктів і префіксів, не торкаючись решти.

Використання AWS Security для розробників

Мінімальні привілеї на практиці

Роль має робити лише те, що потрібно її завданню, і мінімум понад це.

  • Керована AWS, як AmazonS3ReadOnlyAccess: усі бакети. Керована клієнтом: ваша, аж до одного префікса
  • Обсяг і час дії: короткочасні облікові дані замість довгоживучих ключів
  • AWS захищає інфраструктуру
  • Ширина ваших ролей — ваше рішення, і воно живе у вашому репозиторії

Приклад: роль для читання reports-bucket Два дозволи. Більше нічого.

  • Нічого щодо IAM — сервісу, який вирішує, хто що може робити

Список дозволів ролі: три зайві дозволи закреслено червоним, два потрібні — зеленим.

Використання AWS Security для розробників

Давайте потренуємось!

Використання AWS Security для розробників

Preparing Video For Download...