Создание хорошо спроектированных решений для ИДП с настраиваемым объективом – Часть 2 Безопасность

Создание безопасных и эффективных решений с настраиваемым объективом для Интернета вещей – Часть 2 Безопасность

Построение готового к производству решения в AWS включает в себя ряд компромиссов между ресурсами, временем, ожиданиями клиента и бизнес-результатом. AWS Well-Architected Framework помогает вам понять пользу и риски принимаемых вами решений при создании рабочих нагрузок в AWS. Используя этот Фреймворк, вы узнаете текущие операционные и архитектурные рекомендации для проектирования и эксплуатации надежных, защищенных, эффективных, экономически эффективных и устойчивых рабочих нагрузок в AWS.

Проект интеллектуальной обработки документов (IDP) обычно объединяет распознавание оптического текста (OCR) и обработку естественного языка (NLP) для чтения и понимания документа и извлечения конкретных сущностей или фраз. IDP Well-Architected Custom Lens помогает справиться с общими проблемами, с которыми мы сталкиваемся на практике. Ответив на ряд вопросов в этом пользовательском объективе, вы сможете выявить потенциальные риски и устранить их, следуя плану улучшения.

Этот пост фокусируется на столпе Security (Безопасность) решения IDP. Начиная с введения в столп Security и принципов проектирования, мы затем рассмотрим дизайн и реализацию решения с четырьмя основными аспектами: контроль доступа, защита данных, управление ключами и секретами, а также конфигурация рабочей нагрузки. Изучив этот пост, вы узнаете о столпе Security в Well-Architected Framework и его применении к решениям IDP.

Принципы проектирования

Столп Security охватывает возможность решения IDP защищать входные документы, системы обработки документов и выходные активы, используя возможности AWS для повышения безопасности при интеллектуальной обработке документов.

Все сервисы искусственного интеллекта AWS (например, Amazon Textract, Amazon Comprehend или Amazon Comprehend Medical), используемые в решениях IDP, являются полностью управляемыми сервисами искусственного интеллекта, где AWS обеспечивает безопасность физической инфраструктуры, точек доступа к API, ОС и приложений, а также обеспечивает устойчивость сервиса и отказоустойчивость в пределах определенного региона. Как клиент AWS, вы можете сосредоточиться на использовании этих сервисов для выполнения ваших задач IDP, а не на обеспечении безопасности этих элементов. Есть несколько принципов проектирования, которые могут помочь вам укрепить безопасность вашей рабочей нагрузки IDP:

  • Реализация надежной идентификационной базы – Реализуйте принцип наименьших привилегий и обеспечьте разделение обязанностей с помощью соответствующей авторизации для каждого взаимодействия с вашими ресурсами AWS в приложениях IDP. Централизуйте управление идентификацией и стремитесь избавиться от зависимости от долгосрочных статических учетных данных.
  • Обеспечение трассируемости – Сервисы искусственного интеллекта, используемые в IDP, интегрированы с AWS CloudTrail, что позволяет вам отслеживать, оповещать и аудировать действия и изменения в вашей среде IDP с низкой задержкой. Их интеграция с Amazon CloudWatch позволяет вам интегрировать сбор журналов и метрик с вашей системой IDP для автоматического расследования и принятия мер.
  • Автоматизация текущих рекомендаций по безопасности – Автоматизированные механизмы безопасности на основе программного обеспечения повышают вашу способность к безопасному масштабированию более быстро и экономично. Создайте защищенные архитектуры IDP, включая реализацию контролов, определенных и управляемых как код в шаблонах управления версиями с использованием AWS CloudFormation.
  • Защита данных в пути и в покое – Шифрование в пути поддерживается по умолчанию для всех сервисов искусственного интеллекта, необходимых для IDP. Обращайте внимание на защиту данных в покое и данных, полученных в выходных данных IDP. Классифицируйте данные на уровни конфиденциальности и используйте механизмы, такие как шифрование, токенизация и контроль доступа в соответствующих случаях.
  • Предоставление наименьших привилегий доступа людям – IDP в значительной степени устраняет необходимость в прямом доступе и ручной обработке документов. Вовлечение только необходимых людей для валидации или задач по дополнению делает риск неправильной обработки документов и человеческой ошибки при работе с конфиденциальными данными минимальным.
  • Подготовка к событиям безопасности – Подготовьтесь к инциденту, имея политику и процессы управления инцидентами и расследования, соответствующие требованиям вашей организации. Проводите симуляции реагирования на инциденты и используйте инструменты с автоматизацией, чтобы увеличить скорость обнаружения, расследования и восстановления.

Основные направления

Прежде чем разрабатывать рабочую нагрузку IDP, вам необходимо создать практики, чтобы удовлетворить требования безопасности. Этот пост фокусируется на столпе безопасности с четырьмя основными направлениями:

  • Управление доступом – В приложении IDP, управление доступом является ключевой частью для обеспечения безопасности информации. Это связано не только с тем, чтобы гарантировать, что только авторизованные пользователи могут получить доступ к приложению, но также с тем, чтобы гарантировать, что другие службы могут получать доступ к окружению и взаимодействовать друг с другом в соответствующе безопасном режиме.
  • Защита данных – Поскольку шифрование данных в пути поддерживается по умолчанию для всех сервисов искусственного интеллекта, необходимых для IDP, защита данных в приложении IDP сконцентрирована больше на шифровании данных в покое и управлении конфиденциальной информацией, такой как лично идентифицируемая информация (PII).
  • Управление ключами и секретами – Подход к шифрованию, который вы используете для обеспечения безопасности вашего рабочего процесса IDP, может включать разные ключи для шифрования данных и авторизации пользователей в различных службах и связанных системах. Применение комплексной системы управления ключами и секретами предоставляет надежные и безопасные механизмы для дальнейшей защиты вашего приложения и данных IDP.
  • Конфигурация рабочей нагрузки – Конфигурация рабочей нагрузки включает в себя несколько принципов проектирования, включая использование сервисов мониторинга и аудита для поддержания проследимости транзакций и данных в вашей рабочей нагрузке IDP, настройку процедур реагирования на инциденты и разделение различных рабочих нагрузок IDP друг от друга.

Управление доступом

При рассмотрении направления управления доступом учитывайте следующие текущие рекомендации:

  • Использование точек подключения VPC для установления частного соединения с сервисами, связанными с IDP – Вы можете использовать сервисы Amazon Textract, Amazon Comprehend и Amazon Simple Storage Service (Amazon S3) через глобально доступную сеть или ограничить ваш сетевой трафик в пределах сети AWS, используя точки подключения VPC. Чтобы следовать текущим рекомендациям безопасности, вы должны ограничить трафик IDP в пределах ваших VPC и установить частное подключение между вашей VPC и Amazon Textract или Amazon Comprehend, создав интерфейсные точки подключения VPC. Вы также можете получить доступ к Amazon S3 из вашей VPC, используя точки подключения VPC шлюза.
  • Настройка централизованного поставщика идентичности – Для аутентификации пользователей и систем в вашем приложении IDP, настройка централизованного поставщика идентичности упрощает управление доступом в нескольких приложениях и сервисах IDP. Это позволяет избежать необходимости использования нескольких наборов учетных данных и предоставляет возможность интеграции с существующими процессами управления человеческими ресурсами (HR).
    • Для федерации с отдельными учетными записями AWS вы можете использовать централизованные идентичности для AWS с поставщиком на основе протокола SAML 2.0 с AWS Identity and Access Management (IAM).
    • Для федерации с несколькими учетными записями в вашей организации AWS вы можете настроить ваш источник идентичности в AWS IAM Identity Center и указать, где управляются ваши пользователи и группы.
  • Использование ролей IAM для контроля доступа и применения привилегий с наименьшим уровнем доступа – Для управления доступом пользователей к сервисам IDP, нужно создать роли IAM для доступа пользователей к сервисам в приложении IDP и присоединить соответствующие политики и теги, чтобы достичь привилегированного доступа с наименьшим уровнем привилегий. Затем роли должны быть назначены соответствующим группам, управляемым вашим поставщиком идентичности. Вы также можете использовать роли IAM для назначения разрешений на использование сервисов, используя временные учетные данные AWS Security Token Service (STS) для вызова сервисных API. В случаях, когда сервисам AWS необходимо вызываться для целей IDP с систем, не работающих на AWS, используйте AWS IAM Roles Anywhere для получения временных учетных данных безопасности в IAM для рабочих процессов, выполняющихся за пределами AWS.
  • Защитите Amazon Textract и Amazon Comprehend в вашей учетной записи от подделки межсервисной идентификации – В приложении IDP обычно используются несколько сервисов AWS, так что один сервис может вызывать другой сервис. Поэтому вам необходимо предотвратить ситуации перекрестной межсервисной подделки («confused deputy»). Мы рекомендуем использовать глобальные контекстные ключи условий aws:SourceArn и aws:SourceAccount в политиках ресурсов, чтобы ограничить разрешения, которые Amazon Textract или Amazon Comprehend дают другому сервису к ресурсу.

Защита данных

Вот несколько актуальных рекомендаций, которые следует учитывать для защиты данных:

  • Следуйте текущим рекомендациям по обеспечению безопасности конфиденциальных данных в хранилищах данных – IDP обычно включает несколько хранилищ данных. Конфиденциальные данные в этих хранилищах должны быть защищены. Актуальные рекомендации в этой области включают определение контролов IAM, несколько способов реализации контролов-детекторов на базах данных, укрепление безопасности инфраструктуры вокруг ваших данных с помощью контроля потока сети и защиты данных с помощью шифрования и токенизации.
  • Шифруйте данные в покое в Amazon Textract – Amazon Textract использует защиту транспортного уровня (TLS) и конечные точки VPC для шифрования данных в передаче. Метод шифрования данных в покое для использования Amazon Textract – это шифрование на стороне сервера. Вы можете выбрать из следующих вариантов:
    • Шифрование на стороне сервера с помощью Amazon S3 (SSE-S3) – При использовании управляемых ключей Amazon S3 каждый объект шифруется с помощью уникального ключа. Кроме того, этот метод шифрует сам ключ с помощью основного ключа, который регулярно поворачивается, для обеспечения дополнительной защиты.
    • Шифрование на стороне сервера с помощью AWS KMS (SSE-KMS) – Существуют отдельные разрешения для использования ключа службы управления ключами (AWS KMS), которые обеспечивают защиту от несанкционированного доступа к вашим объектам в Amazon S3. SSE-KMS также предоставляет вам журнал аудита в CloudTrail, который показывает, когда ваш ключ KMS был использован и кем. Кроме того, вы можете создавать и управлять KMS-ключами, которые уникальны для вас, вашего сервиса и вашего региона.
  • Шифруйте результаты асинхронного API Amazon Textract в пользовательском бакете S3 – При запуске асинхронного задания Amazon Textract, вызывая StartDocumentTextDetection или StartDocumentAnalysis, существует дополнительный параметр в действии API – OutputConfig. Этот параметр позволяет указать бакет S3 для сохранения результатов. Другой необязательный входной параметр KMSKeyId позволяет указать управляемый клиентский ключ KMS (CMK) для шифрования результатов.
  • Используйте шифрование AWS KMS в Amazon Comprehend – Amazon Comprehend работает с AWS KMS для предоставления расширенного шифрования для ваших данных. Интеграция с AWS KMS позволяет шифровать данные в том хранилище для задач Start* и Create*, а также шифровать результаты задач Start* с использованием вашего собственного ключа KMS.
    • Для использования через консоль управления AWS Amazon Comprehend шифрует свои собственные пользовательские модели своим собственным ключом KMS.
    • Для использования с помощью интерфейса командной строки AWS (AWS CLI) Amazon Comprehend может шифровать пользовательские модели с помощью собственного ключа KMS или предоставленного CMK, и мы рекомендуем использовать последний.
  • Защитите PII в выводе IDP – Для документов, содержащих PII, необходимо также защищать любые PII в выходных данных IDP. Вы можете либо защитить PII в выходных данных, сохраняя его в вашем хранилище данных, либо замаскировать PII в выходных данных IDP.
    • Если вам необходимо сохранить PII с последующим использованием в IDP, изучите определение контролов IAM, реализацию контролов-детекторов на базах данных, укрепление безопасности инфраструктуры вокруг ваших данных с помощью контроля потока сети и реализацию защиты данных с помощью шифрования и токенизации.
    • Если вам не нужно хранить PII в вашем последующем использовании IDP, рассмотрите возможность замаскировать PII в выходных данных IDP. Вы можете создать этап замаскировки PII с использованием Amazon Comprehend в вашем рабочем процессе IDP.

Управление ключами и секретами

Рассмотрите следующие актуальные рекомендации по управлению ключами и секретами:

  • Используйте AWS KMS для реализации безопасного управления ключами шифрования – Вам необходимо определить подход к шифрованию, который включает хранение, поворот и контроль доступа к ключам, который помогает обеспечить защиту вашего контента. AWS KMS помогает вам управлять ключами шифрования и интегрируется с многими службами AWS. Он обеспечивает надежное, безопасное и избыточное хранение ваших ключей KMS.
  • Используйте AWS Secrets Manager для реализации управления секретами – Рабочий процесс IDP может содержать секреты, такие как учетные данные для баз данных в нескольких службах или этапах. Вам нужен инструмент для хранения, управления, извлечения и, возможно, поворота этих секретов. AWS Secrets Manager помогает вам управлять, извлекать и поворачивать учетные данные для баз данных, учетные данные приложений и другие секреты на протяжении их жизненного цикла. Хранение учетных данных в Secrets Manager помогает снизить риск возможного извлечения учетных данных любым человеком, который может проверить ваш код приложения.

Конфигурация рабочей нагрузки

Для настройки рабочей нагрузки следуйте текущим рекомендациям:

  • Разделите несколько нагрузок IDP с помощью разных учетных записей AWS – Мы рекомендуем установить общие ограничения и изоляцию между средами (такими как производство, разработка и тестирование) и нагрузками с помощью стратегии мультиаккаунта. AWS предоставляет инструменты для управления вашими нагрузками масштаба через стратегию мультиаккаунта для установления этой границы изоляции. Когда у вас есть несколько учетных записей AWS под центральным управлением, ваши учетные записи должны быть организованы в иерархии, определенной группировками организационных единиц (ОЕ). Затем могут быть организованы и применены средства обеспечения безопасности к ОЕ и учетным записям-членам для установления последовательных предотвратительных мер в отношении учетных записей-членов в организации.
  • Включите логирование вызовов API Amazon Textract и Amazon Comprehend с помощью CloudTrail – Amazon Textract и Amazon Comprehend интегрируются с CloudTrail. Включены вызовы, включая вызовы из консоли службы и вызовы из вашего собственного кода к конечным точкам API служб.
  • Установите процедуры реагирования на инциденты – Даже при наличии всеобъемлющих предотвратительных и обнаружительных мер управления, ваша организация всё равно должна иметь процессы для реагирования и смягчения потенциального воздействия инцидентов безопасности. Установка инструментов и средств контроля перед наступлением инцидента безопасности, а затем регулярное практикование реагирования на инциденты через симуляции поможет вам проверить, что ваша среда способна поддерживать своевременное расследование и восстановление.

Заключение

В этом посте мы поделились принципами проектирования и текущими рекомендациями для столпа безопасности при создании хорошо архитектурированных решений IDP.

Чтобы узнать больше о пользовательском объективе Well-Architected для IDP, ознакомьтесь с следующими постами в этой серии:

Производительность](https://aws.amazon.com/blogs/machine-learning/build-well-architected-idp-solutions-with-a-custom-lens-part-3-reliability/) – Создание хорошо архитектурированных решений IDP с использованием персонализированной перспективы – Часть 4: Эффективность выполненияСоздание хорошо архитектурированных решений IDP с использованием персонализированной перспективы – Часть 5: Оптимизация стоимостиСоздание хорошо архитектурированных решений IDP с использованием персонализированной перспективы – Часть 6: Устойчивость

Для следующих шагов вы можете узнать больше о фреймворке AWS Well-Architected и обратиться к нашему Руководству по интеллектуальной обработке документов на AWS, чтобы разработать и создать ваше приложение IDP. Также обратитесь к вашей команде учетной записи для проведения анализа Well-Architected для вашей рабочей нагрузки IDP. Если вам требуется дополнительное экспертное руководство, свяжитесь со специалистом-архитектором решений IDP вашей команды AWS.

AWS обязуется поддерживать объектив Well-Architected для IDP как живой инструмент. По мере развития решений IDP и связанных сервисов искусственного интеллекта AWS мы будем обновлять объектив Well-Architected для IDP соответственно.