Кто контролирует ключ

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

Rahul Singh

Technical Product Manager

Два вида ключей KMS

Управляется AWS

  • Создаётся сервисом, псевдоним aws/s3
  • Политику можно читать, но не редактировать
  • Без ежемесячной платы

Две карточки друг над другом сравнивают ключ, управляемый AWS, и ключ, управляемый клиентом, по трём одинаковым строкам: политика ключа, ротация и стоимость. Строка политики ключа на карточке клиентского ключа выделена. На каждой карточке указан её псевдоним: aws слэш s3 и alias слэш reports.

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

Два вида ключей KMS

Управляется AWS

  • Создаётся сервисом, псевдоним aws/s3
  • Политику можно читать, но не редактировать
  • Без ежемесячной платы

Управляется клиентом

  • Создаётся вами, псевдоним alias/reports, политику пишете сами
  • Период ротации задаёте сами
  • Один доллар в месяц за каждый ключ

Две карточки друг над другом сравнивают ключ, управляемый AWS, и ключ, управляемый клиентом, по трём одинаковым строкам: политика ключа, ротация и стоимость. Строка политики ключа на карточке клиентского ключа выделена. На каждой карточке указан её псевдоним: aws слэш s3 и alias слэш reports.

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

Два шлюза, и оба должны открыться

Один запрос на расшифровку приближается к первому из двух шлюзов. Шлюз политики IAM нарисован сплошной линией и пронумерован цифрой один, шлюз политики ключа за ним — пунктиром серым цветом, и ни один из них пока не дал ответа.

  1. Политика IAM: что может запросить вызывающий
Использование AWS Security для разработчиков

Два шлюза, и оба должны открыться

Один запрос на расшифровку проходит слева направо через два пронумерованных шлюза: метка один — политика IAM, метка два — политика ключа, прежде чем достичь ключа KMS. Скобка под двумя шлюзами указывает, что их ответы независимы.

  1. Политика IAM: что может запросить вызывающий
  2. Политика ключа: кому ключ готов ответить

Политика ключа по умолчанию: делегирует права IAM

Гранты: отдельные операции с ключом для одного принципала, отзываются независимо

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

Ключ никогда не касается ваших данных

Amazon S3, действуя от вашего имени, обращается к AWS KMS в точке один, и KMS возвращает один ключ данных в виде открытой и зашифрованной копий. Зашифрованная копия хранится рядом с шифротекстом объекта, а пунктирный обратный путь в точке два возвращает её через вызов расшифровки.

Конвертное шифрование

Прямое шифрование: предел 4 KB

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

Ключ никогда не касается ваших данных

Amazon S3, действуя от вашего имени, обращается к AWS KMS в точке один, и KMS возвращает один ключ данных в виде открытой и зашифрованной копий. Зашифрованная копия хранится рядом с шифротекстом объекта, а пунктирный обратный путь в точке два возвращает её через вызов расшифровки.

Конвертное шифрование

Прямое шифрование: предел 4 KB

  1. GenerateDataKey возвращает две копии
  2. kms:Decrypt для хранимой копии
Использование AWS Security для разработчиков

Между аккаунтами никто не видит обе половины

Аккаунт вызывающего

  • Действие разрешено в IAM
  • Ресурс: ARN ключа

Две пунктирные панели аккаунтов разделены границей между аккаунтами. Роль вызывающего и политика IAM находятся на верхней панели, политика ключа и ключ KMS — на нижней, а запрос пересекает границу между ними.

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

Между аккаунтами никто не видит обе половины

Аккаунт вызывающего

  • Действие разрешено в IAM
  • Ресурс: ARN ключа

Аккаунт владельца ключа

  • Политика ключа называет вызывающего
  • Аккаунт или роль в нём

Две пунктирные панели аккаунтов разделены границей между аккаунтами. Роль вызывающего и политика IAM находятся на верхней панели, политика ключа и ключ KMS — на нижней, а запрос пересекает границу между ними.

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

Читайте отказ, а не гадайте

На основе идентификации

  • AccessDeniedException, затем формулировка, указывающая на шлюз

  • no identity-based policy allows

  • Исправьте политику IAM вызывающего

 

Запрос на расшифровку остановлен на первом шлюзе: политика IAM отмечена красным крестом, а политика ключа за ней — серая и недостижимая. Подпись под диаграммой гласит: no identity-based policy allows.

 

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

Читайте отказ, а не гадайте

На основе идентификации

  • AccessDeniedException, затем формулировка, указывающая на шлюз

  • no identity-based policy allows

  • Исправьте политику IAM вызывающего

На основе ресурса

  • no resource-based policy allows
  • Исправьте политику ключа

Запрос на расшифровку остановлен на первом шлюзе: политика IAM отмечена красным крестом, а политика ключа за ней — серая и недостижимая. Подпись под диаграммой гласит: no identity-based policy allows.

Запрос на расшифровку проходит политику IAM с зелёной галочкой, но останавливается на втором шлюзе: политика ключа отмечена красным крестом. Подпись под диаграммой гласит: no resource-based policy allows.

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

Что на самом деле меняет ротация

Автоматическая ротация

  • По умолчанию 365 дней
  • Диапазон от 90 до 2,560 дней

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

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

Что на самом деле меняет ротация

Автоматическая ротация

  • По умолчанию 365 дней
  • Диапазон от 90 до 2,560 дней

По запросу

  • RotateKeyOnDemand, до 25 раз на ключ

Два ограничения

  • Ключи, управляемые AWS: фиксированная ежегодная ротация
  • Автоматическая ротация: только симметричные ключи с материалом, сгенерированным KMS

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

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

Чего ротация не исправляет

Четыре строки сравниваются по обе стороны линии ротации. Строка материала ключа меняется с версии один на версию два, а идентификатор ключа, псевдоним и политика ключа, а также ранее записанные объекты остаются одинаковыми с обеих сторон.

Меняется: базовый материал ключа

Не меняется: ID ключа, ARN, псевдонимы, политика ключа

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

Чего ротация не исправляет

Четыре строки сравниваются по обе стороны линии ротации. Строка материала ключа меняется с версии один на версию два, а идентификатор ключа, псевдоним и политика ключа, а также ранее записанные объекты остаются одинаковыми с обеих сторон.

Меняется: базовый материал ключа

Не меняется: ID ключа, ARN, псевдонимы, политика ключа

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

Так зачем её включать

Что это даёт

  • Одна версия никогда не покрывает все ваши данные
  • Требования комплаенса и контрактов, обязывающие проводить ротацию

Зелёная карточка с заголовком «что это даёт» под меткой «включение ротации». В ней показано правило аудита «ротация каждые 365 дней» с зелёной галочкой и один ключ в виде трёх соединённых версий, v1, v2 и v3, с подписью, что каждая версия покрывает только то, что записала сама.

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

Так зачем её включать

Что это даёт

  • Одна версия никогда не покрывает все ваши данные
  • Требования комплаенса и контрактов, обязывающие проводить ротацию

 

Во что это обходится

  • Код менять не нужно, перешифровывать нечего

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

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

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

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

Preparing Video For Download...