Режими шифрування та вимога захисту під час передавання

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

Rahul Singh

Technical Product Manager

Дві гарантії, одна — типова

Застосунок надсилає об'єкт до бакета Amazon S3. Зелена дужка з міткою in transit охоплює мережевий перехід, друга зелена дужка з міткою at rest охоплює збережений об'єкт; зазначено, що SSE-S3 діє, якщо запит не вказує інакше.

  • At rest: байти на диску
  • In transit: байти в мережі
Використання AWS Security для розробників

Дві гарантії, одна — типова

Застосунок надсилає об'єкт до бакета Amazon S3. Зелена дужка з міткою in transit охоплює мережевий перехід, друга зелена дужка з міткою at rest охоплює збережений об'єкт; зазначено, що SSE-S3 діє, якщо запит не вказує інакше.

  • At rest: байти на диску
  • In transit: байти в мережі
  • Уже зроблено: SSE-S3 для кожного нового об'єкта
  • Ваше рішення: який режим і хто тримає ключ
Використання AWS Security для розробників

Де закінчується відкритий текст

На боці сервера

  • AWS отримує читабельні байти
  • S3 шифрує під час запису

 

Схема на боці сервера. Ваш процес тримає відкритий текст, надсилає його через TLS, а Amazon S3 шифрує під час запису. Нижче смуга відстежує байти, розділена пунктиром на межі S3: до неї — «your bytes: readable here» червоним, після — «ciphertext» зеленим.

 

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

Де закінчується відкритий текст

На боці сервера

  • AWS отримує читабельні байти
  • S3 шифрує під час запису

На боці клієнта

  • Ви шифруєте перед відправленням
  • AWS зберігає лише ciphertext

Схема на боці сервера. Ваш процес тримає відкритий текст, надсилає його через TLS, а Amazon S3 шифрує під час запису. Нижче смуга відстежує байти, розділена пунктиром на межі S3: до неї — «your bytes: readable here» червоним, після — «ciphertext» зеленим.

Схема на боці клієнта. Ваш процес спершу шифрує, надсилає ciphertext через TLS, а Amazon S3 зберігає отримане. Нижче смуга відстежує байти, розділена пунктиром усередині вашого процесу: коротка ділянка до нього — «your bytes: readable here» червоним, далі — «ciphertext» зеленим.

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

Чотири режими, одна відмінність

Той самий алгоритм, чотири власники ключів

  • Режим передається в заголовку PUT
  • SSE-S3: ключ AWS, нічого керувати
  • SSE-KMS: ваш ключ, CloudTrail і key policy, прикріплена до ключа, що визначає, кому відповідати

Чотири картки: SSE-S3, SSE-KMS, DSSE-KMS і SSE-C. Ліва шкала — зверху контроль AWS, внизу ваш. На кожній картці лише значення заголовка запиту, що обирає режим.

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

Чотири режими, одна відмінність

Той самий алгоритм, чотири власники ключів

  • Режим передається в заголовку PUT
  • SSE-S3: ключ AWS, нічого керувати
  • SSE-KMS: ваш ключ, CloudTrail і key policy, прикріплена до ключа, що визначає, кому відповідати
  • DSSE-KMS: два незалежні шари
  • SSE-C: ваш ключ у кожному запиті, втратите — це на вас

Чотири картки: SSE-S3, SSE-KMS, DSSE-KMS і SSE-C. Ліва шкала — зверху контроль AWS, внизу ваш. На кожній картці лише значення заголовка запиту, що обирає режим.

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

Заперечення щодо вартості SSE-KMS

Два ряди. Без Bucket Keys шість стрілок йдуть від Amazon S3 до AWS KMS — по одній на кожен запит до об'єкта. З Bucket Keys з бакета виходить один короткоживучий ключ усередині S3. Примітка: Bucket Keys недоступні з DSSE-KMS.

  • Без них: один виклик KMS на об'єкт
  • З Bucket Keys: один короткочасний ключ, повторно використовуваний
  • Недоступно з DSSE-KMS
  • До 99% менше звернень до KMS
Використання AWS Security для розробників

Шифруйте поле, а не таблицю

At rest уже ввімкнено

  • Запит повертає відкритий текст кожному з доступом на читання

Один елемент DynamoDB з п'ятьма атрибутами. Два атрибути містять ciphertext і позначені синіми лініями, тоді як partition key, sort key та час — у відкритому вигляді. Знизу зелений блок: уся таблиця зашифрована at rest.

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

Шифруйте поле, а не таблицю

At rest уже ввімкнено

  • Запит повертає відкритий текст кожному з доступом на читання

AWS Database Encryption SDK

  • Шифруйте вибрані атрибути у своєму коді
  • Partition і sort keys — поля, за якими DynamoDB знаходить елементи — лишаються відкритими, бо за ними будується індекс

Один елемент DynamoDB з п'ятьма атрибутами. Два атрибути містять ciphertext і позначені синіми лініями, тоді як partition key, sort key та час — у відкритому вигляді. Знизу зелений блок: уся таблиця зашифрована at rest.

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

TLS пропонується, але не вимагається

Запропоновано, але не примусово

  • S3 відповідає і на HTTP, і на HTTPS

Два сценарії. Без умови на бакеті і HTTPS-, і HTTP-клієнт дістаються до об'єкта. З умовою deny шлях HTTP зупиняється на червоному хресті й не під'єднується.

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

TLS пропонується, але не вимагається

Запропоновано, але не примусово

  • S3 відповідає і на HTTP, і на HTTPS

Зробіть це обов'язковим

  • Політика бакета: deny, коли aws:SecureTransport = false
  • Легітимні клієнти нічого не помітять

Два сценарії. Без умови на бакеті і HTTPS-, і HTTP-клієнт дістаються до об'єкта. З умовою deny шлях HTTP зупиняється на червоному хресті й не під'єднується.

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

Який центр засвідчує ім'я

Публічне ім'я

  • ACM: публічно довірений, безплатний, сам оновлюється

Ім'я, що резольвиться лише у вашій мережі

  • AWS Private CA: ваш власний центр сертифікації
  • Не довірений у публічному інтернеті

Дві картки підряд із заголовком хто може видати сертифікат. Верхня — публічне ім'я, reports dot example dot com як ім'я та ACM як емітент, довірений усюди. Нижня — внутрішнє ім'я, admin dot example dot internal, резольвиться лише у вашій VPC, емітент — AWS Private CA.

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

Приватна половина — втратите ви

Хто її тримає

  • ACM: AWS зберігає
  • Пара ключів EC2 або будь-який SSH-ключ: приватна половина лише у вас, один раз

Дві картки підряд із заголовком хто тримає яку половину. Верхня — публічна половина, вона на AWS або інстансі. Нижня помаранчева — приватна половина: у вас один екземпляр без копій; зберігайте в Secrets Manager (зелена позначка) і ніколи — у репозиторії, на ноутбуці чи в чаті (помаранчевий хрест).

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

Приватна половина — втратите ви

Хто її тримає

  • ACM: AWS зберігає
  • Пара ключів EC2 або будь-який SSH-ключ: приватна половина лише у вас, один раз

Якщо вона ваша

  • Secrets Manager, не репозиторій
  • Регулярна заміна за графіком

Дві картки підряд із заголовком хто тримає яку половину. Верхня — публічна половина, вона на AWS або інстансі. Нижня помаранчева — приватна половина: у вас один екземпляр без копій; зберігайте в Secrets Manager (зелена позначка) і ніколи — у репозиторії, на ноутбуці чи в чаті (помаранчевий хрест).

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

Три відповіді, не одна

Три пронумеровані картки: режим, контроль ключа та передавання — кожна показує заголовок або ключ умови, що на нього відповідає. Нижче примітка: лише третя перевірка поза налаштуваннями шифрування.

  1. Режим: що записало об'єкт
  2. Контроль ключа: хто може розшифрувати — у цьому акаунті чи іншому
  3. Передавання: обов'язкове чи лише пропоноване
Використання AWS Security для розробників

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

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

Preparing Video For Download...