Возможности Сервиса управления ключами AWS

Обзор

Сервис управления ключами AWS (AWS KMS) обеспечивает управление криптографическими ключами, которые используются для защиты данных. AWS KMS предоставляет централизованное управление жизненным циклом и разрешениями для ключей. Вы можете создавать новые ключи, когда захотите, а также контролировать тех, кто может управлять ключами, отдельно от тех, кто может их использовать. Решение интегрировано с другими сервисами AWS, что упрощает шифрование данных, хранящихся в них, и контроль доступа к ключам для их расшифровки. Благодаря интеграции AWS KMS с AWS CloudTrail существует также возможность проверить, кто использовал ключи, какие именно, когда и для каких ресурсов. AWS KMS позволяет разработчикам без особых затруднений добавлять шифрование или цифровые подписи в код своих приложений, как напрямую, так и через AWS SDK. AWS Шифрование SDK поддерживает AWS KMS в качестве поставщика ключей для разработчиков, которые используют в своих приложениях локальное шифрование и (или) расшифровку данных.

Основные возможности

Если для вашего аккаунта AWS включен AWS CloudTrail, каждый запрос, который вы делаете к AWS KMS, записывается в файл журнала. Этот файл журнала доставляется в корзину Простого сервиса хранения данных Amazon (Amazon S3), которую вы указали при включении AWS CloudTrail. Записанная информация содержит сведения о пользователе, времени, дате, действии API и использованном ключе (когда требуется).

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

Ключи KMS, созданные вами самостоятельно или другими сервисами AWS от вашего имени, не могут быть экспортированы из сервиса. Это означает, что AWS KMS несет полную ответственность за их надежное хранение. Чтобы обеспечить доступность ключей и соответствующих данных в любой момент обращения к ним, AWS KMS хранит множество копий зашифрованных версий ключей в системах с уровнем надежности 99,999999999 %.

Для зашифрованных данных или рабочих процессов цифровой подписи, которые перемещаются между регионами (аварийное восстановление, многорегиональные архитектуры высокой доступности, глобальные таблицы DynamoDB и глобально распределенные согласованные цифровые подписи), вы можете создать многорегиональные ключи KMS. Это набор взаимодействующих ключей с одним и тем же ключевым материалом и идентификаторами ключей, которые могут быть реплицированы в несколько регионов.

AWS KMS разработан как высокодоступный сервис с региональным адресом API. Поскольку большинство сервисов AWS зависит от шифрования и расшифровки AWS KMS, он спроектирован таким образом, чтобы обеспечить уровень доступности, необходимый для поддержки остальных сервисов AWS, который создан на основе Соглашения об уровне обслуживания AWS KMS.

Сервис AWS KMS устроен таким образом, что никто, включая сотрудников AWS, не может извлечь из него ваши незашифрованные ключи. В сервисе используются аппаратные модули безопасности (HSM), которые постоянно проверяются в США. Национальном институте по стандартизации и технологии США (NIST) с помощью Федерального стандарта по обработке информации (FIPS) 140-2 и Программы валидации криптографических модулей для защиты конфиденциальности и целостности ваших ключей. Модули HSM AWS KMS – это криптографический источник доверия для защиты ключей KMS. Они создают безопасную аппаратно защищенную границу для всех криптографических операций, которые происходят в KMS. Весь материал для ключей KMS, генерируемый в модулях AWS KMS HSM, и все операции, требующие расшифровки материала для ключей KMS, происходят строго в пределах границ этих модулей HSM по стандарту FIPS 140-2 уровня безопасности 3. К обновлениям встроенного ПО модулей AWS KMS HSM применяется многосторонний контроль доступа, который проверяет и анализирует независимая группа Amazon; согласно требованиям FIPS-140, все изменения встроенного ПО модулей KMS HSM передаются в аккредитованную NIST лабораторию для проверки на соответствие уровню безопасности 3 FIPS 140-2.

Незашифрованные ключи никогда не записываются на диск и используются только в энергозависимой памяти HSM в течение времени, необходимого для выполнения запрошенной криптографической операции. Эти гарантии одинаково применимы как к ключам, которые AWS KMS создает от вашего имени, так и к тем, которые вы импортируете в службу извне или самостоятельно создаете в кластере AWS CloudHSM с использованием собственного хранилища ключей. Вы выбираете, создавать ключи для одного региона или для нескольких. Ключи для одного региона могут использоваться только в том регионе AWS, где они были созданы, и никогда не передаются за его пределы.
 

Подробнее об архитектуре AWS KMS и криптографии, которая используется в этом сервисе для защиты ключей, см. в сведениях о криптографии.

* В регионе AWS Китай (Пекин) под управлением Beijing Sinnet Technology Co., Ltd. («Sinnet») Sinnet и регионе AWS Китай (Нинся) под управлением Ningxia Western Cloud Data Technology Co., Ltd. («NWCD») NWCD модули HSM одобрены государственными учреждениями Китая (а не проверены по стандарту FIPS 140‑2), а вышеупомянутое техническое описание о сведениях криптографии не применяется. 

AWS KMS позволяет создавать и использовать асимметричные ключи KMS и пары ключей данных. Вы можете назначить ключ KMS для использования в роли пары ключей подписи, шифрования или соглашения. Генерация пар ключей и асимметричные криптографические операции с такими ключами KMS выполняются в аппаратных модулях HSM. Вы можете запросить открытую часть асимметричного ключа KMS для использования в локальных приложениях, а закрытая часть никогда не покидает пределов сервиса. Вы можете импортировать закрытую часть асимметричного ключа из собственной инфраструктуры управления ключами.

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

* Асимметричные ключи не поддерживаются при использовании собственного хранилища ключей.

Вы можете создать и проверить код аутентификации сообщений на основе хэша (HMAC) из аппаратных модулей безопасности (HSM), проверенных AWS KMS FIPS 140-2. HMAC – это криптографический структурный элемент, который содержит секретный ключ в хэш-функции для создания кода аутентификации сообщения с уникальным ключом. Ключи KMS HMAC имеют преимущество перед HMAC из приложений, поскольку материал для ключа создается и используется полностью в KMS AWS, а также применяются меры контроля доступа, заданные для ключа. Ключи KMS HMAC и алгоритмы HMAC, которые используются KMS AWS, отвечают промышленным стандартам, определенным в RFC 2104. Ключи KMS HMAC генерируются в аппаратных модулях безопасности (HSM) KMS AWS, сертифицированных в соответствии с программой проверки криптографических модулей FIPS 140-2, и никогда не оставляют KMS AWS без шифрования. Можно также импортировать собственный ключ HMAC из своей инфраструктуры управления ключами.

* Ключи HMAC KMS AWS не поддерживаются в собственных хранилищах ключей.
** Информация, приведенная в разделе FIPS 140-2, не применима к региону AWS Китай (Пекин) под управлением Sinnet и региону AWS Китай (Нинся) под управлением NWCD. Аппаратные модули безопасности, используемые в Китае, одобрены государственными учреждениями Китая.

Средства управления безопасностью и качеством сервиса AWS KMS были подтверждены и сертифицированы по следующим схемам соответствия требованиям.

Здесь мы приводим список других режимов соответствия, по которым сервис AWS KMS прошел проверку и сертификацию.

* Информация, приведенная в разделе FIPS 140-2, не применима к региону AWS Китай (Пекин) под управлением компании Sinnet и региону AWS Китай (Нинся) под управлением компании NWCD. Аппаратные модули безопасности, используемые в Китае, одобрены государственными учреждениями Китая.

Собственные хранилища ключей сочетают в себе удобный и всеобъемлющий интерфейс управления ключами AWS KMS с возможностью владеть устройствами, на которых находится ключевой материал и выполняются криптографические операции, и контролировать их. В результате вы берете на себя большую ответственность за доступность и долговечность криптографических ключей и за работу HSM. AWS KMS предлагает два типа собственных хранилищ ключей:

Хранилище ключей с поддержкой CloudHSM

Вы можете создать ключ KMS в собственном хранилище ключей AWS CloudHSM, где все ключи генерируются и хранятся в кластере AWS CloudHSM, которым вы владеете и управляете. Когда вы применяете ключ KMS из собственного хранилища ключей, все криптографические операции с этим ключом выполняются только в вашем кластере AWS CloudHSM.

Использование собственного хранилища ключей влечет за собой дополнительные расходы на кластер AWS CloudHSM. Ответственность за доступность материала ключей в этом кластере несет сам клиент. Подробнее о том, подойдет ли собственное хранилище ключей в вашем случае, см. в этом блоге.

Внешнее хранилище ключей

Если у вас есть нормативная необходимость хранить и использовать ключи шифрования на территории или за пределами облака AWS Cloud, вы можете создать ключ KMS во внешнем хранилище ключей AWS KMS (XKS), где все ключи генерируются и хранятся во внешнем менеджере ключей вне AWS, которым вы владеете и управляете. При использовании XKS ключевой материал никогда не покидает HSM.

В отличие от стандартных ключей KMS или ключей в собственном хранилище ключей CloudHSM, при использовании внешнего хранилища ключей вы несете ответственность за надежность, доступность, задержку, производительность и безопасность ключевого материала и криптографических операций с внешними ключами. На производительность и доступность операций KMS могут влиять аппаратные, программные или сетевые компоненты используемой вами инфраструктуры XKS. Чтобы узнать больше о XKS, вы можете прочитать этот блог AWS News.

* Поддержка собственных хранилищ ключей недоступна в регионе AWS Китай (Пекин) под управлением Sinnet и регионе AWS Китай (Нинся) под управлением NWCD.
** Функция собственного хранилища ключей недоступна для асимметричных ключей KMS.
*** CodeArtifact не поддерживает ключи KMS в XKS.

AWS KMS можно использовать с библиотеками шифрования на стороне клиента для защиты данных непосредственно в приложении на AWS или в гибридных и многооблачных средах. Эти библиотеки можно использовать для шифрования данных перед их хранением в сервисах AWS или на любом другом носителе хранения и сторонних сервисах по своему усмотрению. Они предназначены для шифрования и дешифрования данных с использованием отраслевых стандартов и передовых методов. Библиотеки шифрования позволяют сосредоточиться на основных функциях приложения, а не на шифровании и дешифровании данных.

  • AWS Шифрование SDK – это библиотека шифрования общего назначения для реализации шифрования и расшифровки всех типов данных.
  • SDK шифрования баз данных AWS – это библиотека шифрования, которая помогает защитить конфиденциальные данные, хранящиеся в базе данных, и предоставляет дополнительные функции поиска зашифрованных данных и запросов к ним.
  • Клиент шифрования Amazon S3 – это библиотека для шифрования и дешифрования объектов, хранящихся в корзине S3.

Дополнительные сведения см. в документации AWS Crypto Tools.

Интеграция с сервисами AWS

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

Alexa для бизнеса[1] Amazon FSx Amazon Rekognition AWS CodePipeline
Amazon AppFlow Amazon GuardDuty Служба реляционных баз данных Amazon (Amazon RDS) AWS Control Tower
Amazon Athena Amazon HealthLake Amazon Route 53 Обмен данными AWS
Amazon Aurora Amazon Inspector Простой сервис хранения данных Amazon (Amazon S3)[3] Сервис миграции баз данных AWS
SDK для Amazon Chime Amazon Kendra Amazon SageMaker AWS DeepRacer
Журналы Amazon CloudWatch Amazon Keyspaces (для Apache Cassandra) Amazon Simple Email Service (SES)
Эластичное аварийное восстановление AWS
Amazon CloudWatch Synthetics Потоки данных Amazon Kinesis Amazon Simple Notification Service (SNS) AWS Elemental MediaTailor
Amazon CodeGuru Amazon Kinesis Firehose Amazon Simple Queue Service (SQS) Разрешение сущностей AWS
Amazon CodeWhisperer Видеопотоки Amazon Kinesis Amazon Textract AWS GameLift
Amazon Comprehend Amazon Lex Amazon Timestream AWS Glue
Amazon Connect Amazon Lightsail[1] Amazon Transcribe AWS Glue DataBrew
Профили клиентов Amazon Connect Служба определения местоположения Amazon Amazon Translate Наземная станция AWS
Amazon Connect Voice ID Amazon Lookout for Equipment Amazon WorkMail AWS IoT SiteWise
Amazon Connect Wisdom Amazon Lookout для метрики Amazon WorkSpaces AWS Lambda
Amazon DocumentDB Машинное зрение Amazon Lookout Тонкий клиент Amazon WorkSpaces Менеджер лицензий AWS
Amazon DynamoDB Amazon Macie Amazon WorkSpaces Web Модернизация мэйнфреймов AWS
Ускоритель Amazon DynamoDB (DAX)[1]
Управляемый блокчейн Amazon AWS AppConfig Сетевой брандмауэр AWS
Магазин эластичных блоков Amazon (Amazon EBS) Управляемый сервис Amazon для
Prometheus
AWS AppFabric AWS Proton
Конструктор образов Amazon EC2 Управляемая потоковая передача Amazon для Kafka (Amazon MSK) Профилировщик затрат на приложения AWS Менеджер секретов AWS
Amazon EFS Управляемые рабочие процессы Amazon для Apache Airflow (Amazon MWAA) Сервис миграции приложений AWS (AWS MGN) AWS Snowball 
Эластичный реестр контейнеров Amazon (Amazon ECR) Amazon MemoryDB AWS App Runner Периферийный AWS Snowball
Эластичный сервис Amazon Kubernetes (EKS) Amazon Monitron Диспетчер аудита AWS AWS Snowcone
Amazon Elastic Transcoder Amazon MQ Резервное копирование AWS Шлюз хранилища AWS
Amazon ElastiCache Amazon Neptune Менеджер сертификатов AWS[1] Менеджер систем AWS
Amazon EMR Amazon Nimble Studio AWS Cloud9[1] Цепочка поставок AWS
Бессерверная конфигурация Amazon EMR Amazon OpenSearch AWS CloudHSM[2] Проверенный доступ AWS
Планировщик событий Amazon EventBridge Amazon Omics AWS CloudTrail AWS X-Ray
Amazon FinSpace Amazon Personalize AWS CodeArtifact  
Amazon Forecast База данных квантового реестра Amazon (Amazon QLDB) AWS CodeBuild  
Детектор мошенничества Amazon Amazon Redshift AWS CodeCommit[1]  

[1] Поддерживает только управляемые ключи AWS.

[2] AWS KMS поддерживает собственное хранилище ключей, для которого кластер AWS CloudHSM создает резервную копию.

[3] Класс хранилищ S3 Express One Zone не интегрирован с AWS KMS, но поддерживает шифрование на стороне сервера с помощью управляемых ключей Amazon S3 (SSE-S3). Подробнее об объектном шифровании S3 Express One Zone см. в разделе Защита и шифрование данных S3 Express One Zone.

[4] Список сервисов, интегрированных с KMS в регионе AWS Китай (Пекин) под управлением Sinnet и регионе AWS Китай (Нинся) под управлением NWCD, см. на странице интеграции AWS KMS с сервисами в Китае.

Сервисы AWS, которые не перечислены выше, шифруют данные клиента с помощью ключей, принадлежащих самому сервису и управляемых им же.