作者:Sherry Ding Brijesh Pati Mia Chang Rui Cardoso Suyin Wang 和 Tim Condello时间:2023年11月22日发布于: Amazon Comprehend Amazon Textract AWS WellArchitected永久链接
在构建生产就绪的AWS解决方案时,需要在资源、时间、客户期望和业务结果之间进行权衡。AWS的良好架构框架可以帮助您理解在AWS上构建工作负载时所做决策的好处和风险。通过使用此框架,您可以了解当前关于设计和运营可靠、安全、高效、具有成本效益和可持续工作负载的操作和架构建议。
智能文档处理IDP项目通常结合了光学字符识别OCR和自然语言处理NLP,以读取和理解文档并提取特定实体或短语。此IDP良好架构自定义视图提供了指导,以应对我们在实践中看到的常见挑战。通过在此自定义视图中回答一系列问题,您将识别潜在风险并能够通过改善计划来解决它们。
本文将重点讨论IDP解决方案的安全性支柱。从安全性支柱和设计原则的介绍开始,我们将探讨解决方案设计和实施的四个重点领域:访问控制、数据保护、密钥与秘密管理,以及工作负载配置。通过阅读本文,您将了解良好架构框架中的安全性支柱,以及其在IDP解决方案中的应用。
安全性支柱涵盖了IDP解决方案保护输入文档、文档处理系统和输出资产的能力,同时利用AWS技术在智能处理文档时提高安全性。
所有在IDP解决方案中使用的AWS AI服务例如,Amazon Textract、Amazon Comprehend、或Amazon Comprehend Medical都属于完全托管的AI服务,AWS负责其物理基础设施、API端点、操作系统和应用程序代码,并处理给定区域内的服务弹性和故障转移。因此,作为AWS客户,您可以专注于使用这些服务完成IDP任务,而不是对这些元素进行安全保护。以下是一些可以帮助您加强IDP工作负载安全性的设计原则:
实施强大的身份基础 实施最低权限原则,并通过适当的授权强制执行职责分离。集中身份管理,努力消除对长期静态凭证的依赖。保持可追溯性 IDP中使用的AI服务与AWS CloudTrail集成,允许您以低延迟监控、警报和审计IDP环境中的操作和更改。它们与Amazon CloudWatch的集成使您可以将日志和指标收集与IDP系统集成,以自动进行调查和采取行动。自动执行当前安全建议 自动化的软件基础安全机制提高了您安全扩展的能力,且成本效益高。创建安全的IDP架构,包括通过使用AWS CloudFormation以代码形式定义和管理的控件实施。保护传输中和静态数据 所有IDP所需的AI服务默认支持传输中的加密。注意保护静态数据及在IDP输出中生成的数据。将数据分类为敏感级别,并在适当情况下使用加密、令牌化和访问控制等机制。授予最低权限访问权限 IDP在很大程度上减少了对文件直接访问和人工处理的需求。仅涉及必要的人员进行案例验证或增强任务可以降低处理敏感数据时文档处理不当和人为错误的风险。为安全事件做准备 通过制定符合组织需求的事件管理和调查政策和流程来为事件做好准备。进行事件响应模拟,并使用自动化工具提高您检测、调查和恢复的速度。在架构IDP工作负载之前,您需要实施能够满足安全要求的实践。本文重点介绍安全性支柱的四个重点领域:
访问控制 在IDP应用程序中,访问控制是确保信息安全的关键部分。它不仅涉及确保只有授权用户可以访问应用程序,还涉及确保其他服务能够以适当安全的方式访问环境并彼此交互。数据保护 由于所有IDP所需的AI服务默认支持传输中的数据加密,因此IDP应用程序中的数据保护更侧重于保护静态数据和管理敏感信息,例如个人可识别信息PII。密钥与秘密管理 用于保护IDP工作流的加密方法可能包括不同的密钥,以在多个服务和相关系统之间加密数据和授权用户。实施全面的密钥和秘密管理系统提供强大而安全的机制,以进一步保护您的IDP应用及数据。工作负载配置 工作负载配置涉及多个设计原则,包括利用监控和审计服务保持IDP工作负载中事务和数据的可追溯性、建立事件响应程序,并将不同的IDP工作负载分开。在访问控制的重点领域,考虑以下当前建议:
使用VPC端点与与IDP相关的服务建立私有连接 您可以通过世界可路由的网络使用Amazon Textract、Amazon Comprehend和Amazon Simple Storage ServiceAmazon S3API,或通过使用VPC端点将网络流量保持在AWS网络内。为遵循当前的安全建议,您应该将IDP流量保持在您的VPC内,并通过创建接口VPC端点在VPC和Amazon Textract或Amazon Comprehend之间建立私有连接。您还可以通过网关VPC端点从您的VPC访问Amazon S3。设置集中身份提供者 对于用户和系统的身份验证,设置集中身份提供者使管理多个IDP应用程序和服务的访问变得更容易。这减少了多重凭证的需求,并提供了与现有人力资源HR流程集成的机会。对于与单独AWS账户的联合,您可以使用基于SAML 20的集中身份为AWS提供身份与访问管理IAM。对于多个账户的联合,您可以在AWS IAM身份中心中配置身份源,并指定用户和组的管理位置。使用IAM角色控制访问并强制实施最低权限 为了管理用户对IDP服务的访问,您应为用户访问IDP应用程序的服务创建IAM角色,并附加适当的策略和标签以实现最低权限访问。角色应分配给在身份提供者中管理的适当组。您还可以使用IAM角色分配服务使用权限,从而利用AWS安全令牌服务STS为调用服务API提供临时凭证。如果AWS服务需要从未在AWS上运行的系统调用IDP服务,请使用AWS IAM Roles Anywhere获取运行在AWS之外的工作负载临时安全凭证。保护您账户中的Amazon Textract和Amazon Comprehend以防止跨服务模拟 IDP应用程序通常使用多个AWS服务,其中一个服务可能调用另一个服务。因此,您需要防止跨服务的“困惑代理”场景。我们建议在资源策略中使用[awsSourceArn](https//docsawsamazoncom/IAM/latest/UserGuide/referencepoliciesconditionkeyshtml#conditionkeyssourcearn)和[awsSourceAccount](https//docsawsamazoncom/IAM/latest/UserGuide/referencepoliciesconditionkeyshtml#conditionkeyssourceaccount)全局条件上下文键来限制Amazon Textract或Amazon Comprehend给予其他服务的资源权限。以下是一些当前的建议,以帮助您保护数据:
遵循当前建议以保护数据存储中的敏感数据 IDP通常涉及多个数据存储。这些数据存储中的敏感数据需要得到保护。当前的安全建议包括定义IAM控制、实施数据库的多种侦测控制、通过网络流控制加强数据周围的基础设施安全,以及通过加密和令牌化实施数据保护。对Amazon Textract中的数据进行静态加密 Amazon Textract使用传输层安全性TLS和VPC端点来加密传输中的数据。使用Amazon Textract时,静态数据的加密方式是服务器端加密。您可以选择以下选项:使用Amazon S3的服务器端加密SSES3 当您使用Amazon S3托管的密钥时,每个对象都使用唯一密钥进行加密。作为额外的保障,这种方法将密钥本身使用定期旋转的主密钥加密。使用AWS KMS的服务器端加密SSEKMS 对AWS密钥管理服务AWS KMS密钥的使用有单独的权限,以防止未授权访问Amazon S3中的对象。SSEKMS还提供CloudTrail的审计追踪,显示了您的KMS密钥何时被使用以及由谁使用。此外,您可以创建和管理唯一于您、您的服务和您的区域的KMS密钥。在自定义S3桶中加密Amazon Textract异步API的输出 当您通过调用StartDocumentTextDetection或StartDocumentAnalysis开始异步Amazon Textract作业时,API操作中的一个可选参数为OutputConfig。此参数允许您指定存储输出的S3桶。另一个可选输入参数KMSKeyId允许您指定用于加密输出的KMS客户管理密钥CMK。在Amazon Comprehend中使用AWS KMS加密 Amazon Comprehend与AWS KMS协作,以提供数据的增强加密。与AWS KMS的集成使您能够为Start和Create作业在存储卷中加密数据,并使用您自己的KMS密钥为Start作业的输出结果加密。在通过AWS管理控制台使用时,Amazon Comprehend使用自己的KMS密钥加密自定义模型。在通过AWS命令行界面AWS CLI使用时,Amazon Comprehend可以使用其自身的KMS密钥或提供的CMK加密自定义模型,我们建议后者。在IDP输出中保护PII 对于包括PII的文档,IDP输出中的任何PII也需要被保护。您可以选择在数据存储中保护输出的PII,或在IDP输出中删除PII。如果您需要在IDP下游存储PII,请考虑定义IAM控制、在数据库上实施保护性和侦测性控制、通过网络流控制加强数据周围的基础设施安全,并通过加密和令牌化实施数据保护。如果您不需要在IDP下游存储PII,请考虑在IDP输出中删除PII。您可以在IDP工作流中设计一个使用Amazon Comprehend进行PII删除的步骤。考虑以下当前的建议来管理密钥和秘密:
使用AWS KMS实施加密密钥的安全管理 您需要定义一种加密方法,包括密钥的存储、旋转和访问控制,从而帮助保护您的内容。AWS KMS帮助您管理加密密钥并与许多AWS服务集成。它为您的KMS密钥提供耐用、安全和冗余的存储。使用AWS Secrets Manager实施秘密管理 IDP工作流中可能存在多个服务或阶段的秘密例如,数据库凭证。您需要一个工具来存储、管理、检索和可能旋转这些秘密。AWS Secrets Manager帮助您管理、检索和旋转数据库凭证、应用程序凭证以及其他秘密。在Secrets Manager中存储凭证有助于降低任何可以检查应用程序代码的人员可能提取凭证的风险。为了配置工作负载,请遵循以下当前建议:
使用不同的AWS账户分离多个IDP工作负载 我们建议通过多账户策略在环境例如生产、开发和测试和工作负载之间建立共同的保护措施和隔离。AWS提供工具以通过多账户策略管理工作负载以建立这一隔离边界。当您有多个AWS账户处于集中管理下时,账户应按组织单位OUs的分组定义的层次结构进行组织。安全控制可以组织并应用于这些OUs及其成员账户,从而在组织内对成员账户建立一致的预防性控制。使用CloudTrail记录Amazon Textract和Amazon Comprehend的API调用 Amazon Textract和Amazon Comprehend与CloudTrail集成。捕获的调用包括来自服务控制台的调用和从您自己的代码调用服务API端点的调用。建立事件响应程序 即使有全面的预防性和侦测性控制,您的组织仍应具备应对和减轻安全事件潜在影响的流程。在发生安全事件之前,搭建工具和控制,然后通过模拟定期练习事件响应,有助于您验证环境是否能够支持及时调查和恢复。
在本文中,我们分享了构建良好架构IDP解决方案的安全性支柱的设计原则和当前建议。
要了解有关IDP良好架构自定义视图的更多信息,请浏览该系列中的以下帖子:
利用自定义视图构建良好的IDP解决方案 第1部分:运营卓越利用自定义视图构建良好的IDP解决方案 第2部分:安全性利用自定义视图构建良好的IDP解决方案 第3部分:可靠性利用自定义视图构建良好的IDP解决方案 第4部分:性能效率利用自定义视图构建良好的IDP解决方案 第5部分:成本优化利用自定义视图构建良好的IDP解决方案 第6部分:可持续性接下来的步骤是了解更多有关AWS良好架构框架的信息,并参考我们关于AWS上智能文档处理的指南来设计和构建您的IDP应用程序。请随时与您的账户团队联系,以对您的IDP工作负载进行良好架构审查。如果您需要额外的专家建议,请联系您的AWS账户团队以联系IDP专门的解决方案架构师。
蘑菇加速器pcAWS致力于将IDP良好架构视图作为一个活文档。随着IDP解决方案和相关的AWS AI服务的不断发展,我们将相应地更新IDP良好架构视图。
Sherry Ding 是亚马逊网络服务AWS的高级人工智能AI和机器学习ML专家解决方案架构师。她在机器学习方面具有丰富的经验,并获得计算机科学的博士学位。她主要与公共部门客户合作,解决各种AI/ML相关的业务挑战,帮助他们加速在AWS云上的机器学习旅程。在帮助客户的同时,她喜欢户外活动。
![Brijesh Pati](https//d2908q01