随着组织应对数字领域的复杂性,生成式人工智能已成为一股变革力量,使企业能够提高生产力、简化工作流程并推动创新。为了最大限度地发挥生成式人工智能生成的见解的价值,至关重要的是为用户提供使用电子邮件等常用工具保存和分享这些见解的简单方法。
亚马逊 Q 业务是一款基于人工智能的生成助手,可以根据企业系统中的数据和信息回答问题、提供摘要、生成内容并安全地完成任务。它正在重新定义企业处理数据驱动决策、内容生成和安全任务管理的方式。通过使用 Amazon Q Business 的自定义插件功能,您可以扩展其功能以支持直接从 Amazon Q 应用程序发送电子邮件,从而允许您存储和分享从与这个强大的 AI 助手的对话中收集的宝贵见解。
亚马逊简单电子邮件服务(Amazon SES) 是一家电子邮件服务提供商,为您提供一种简单且经济高效的方式,让您可以使用自己的电子邮件地址和域发送和接收电子邮件。Amazon SES 提供许多电子邮件工具,包括电子邮件发件人配置选项、电子邮件送达工具、灵活的电子邮件部署选项、发件人和身份管理、电子邮件安全、电子邮件发送统计数据、电子邮件信誉仪表板和入站电子邮件服务。
本文探讨了如何将 Amazon Q Business 与 Amazon SES 集成,以将对话通过电子邮件发送到指定的电子邮件地址。
解决方案概述
下图展示了该解决方案的架构。
工作流程包括以下步骤:
- 使用以下命令创建 Amazon Q Business 应用程序亚马逊简单存储服务(Amazon S3) 数据源。Amazon Q 使用检索增强生成 (RAG) 来回答用户问题。
- 配置一个AWS IAM 身份中心添加了用户和组的 Amazon Q Business 应用程序环境的实例。Amazon Q Business 支持组织级和账户级 IAM 身份中心实例。
- 创建一个调用 OpenAPI 架构的自定义插件亚马逊 API 网关该 API 向用户发送电子邮件。
- 将 OAuth 信息存储在AWS 秘密管理器并向插件提供秘密信息。
- 提供AWS Identity Manager 和访问管理(我是)角色访问 Secrets Manager 中的机密。
- 自定义插件将用户带到亚马逊认知登录页面。用户提供登录凭证。身份验证后,用户会话将存储在 Amazon Q Business 应用程序中以供后续 API 调用。
- 身份验证后,自定义插件会将令牌传递到 API 网关以调用 API。
- 您可以使用以下方法帮助保护 API Gateway REST API 免遭常见 Web 攻击,例如 SQL 注入和跨站点脚本 (XSS) 攻击AWS 网络应用防火墙。
- AWS Lambda主办于亚马逊虚拟私有云(Amazon VPC) 在内部调用 Amazon SES SDK。
- 拉姆达用途AWS 身份和访问管理(IAM) 对 Amazon SES 进行开发工具包调用的权限。
- Amazon SES 使用 SMTP 将电子邮件发送到用户提供的经过验证的电子邮件。
在以下部分中,我们将逐步介绍部署和测试解决方案的步骤。该解决方案仅支持美国东部1
AWS 区域。
先决条件
完成以下先决条件:
- 拥有有效的 AWS 账户。
- 启用 IAM 身份中心实例并从设置页面捕获 IAM Identity Center 实例的 Amazon 资源名称 (ARN)。
- 添加用户和团体到 IAM 身份中心。
- 在账户中拥有 IAM 角色,该角色具有足够的权限来创建必要的资源。如果您拥有该帐户的管理员访问权限,则无需执行任何操作。
- 使能够亚马逊 CloudWatch 日志对于 API 网关。有关更多信息,请参阅如何打开 CloudWatch Logs 来排查 API Gateway REST API 或 WebSocket API 问题?
- 有两个电子邮件地址用于发送和接收电子邮件,您可以使用发送给您的链接进行验证。请勿将 Amazon SES 中现有的已验证身份用于这些电子邮件地址。否则,AWS 云形成模板将失败。
- 拥有 Amazon Q Business Pro 订阅以创建 Amazon Q 应用程序。
- 具有服务相关的 IAM 角色
AWSServiceRoleForQBusiness
。如果你没有,创建它与 amazonaws.com 服务名称。 - 使能够AWS 云跟踪用于操作和风险审计的日志记录。有关说明,请参阅为您的 AWS 账户创建跟踪。
- 启用预算政策通知帮助防止不必要的计费。
部署解决方案资源
在此步骤中,我们使用 CloudFormation 模板来部署 Lambda 函数、配置 REST API 并创建身份。完成以下步骤:
- 打开 AWS CloudFormation 控制台
美国东部1
- 选择创建堆栈。
- 下载云形成模板并上传到指定模板
- 选择下一个。
- 为了堆栈名称,输入名称(例如,
Q与SES集成
)。 - 在参数部分,提供以下内容:
- 为了IDC实例Arn,输入您的 IAM Identity Center 实例 ARN。
- 为了Lambda名称,输入您的 Lambda 函数的名称。
- 为了发件人电子邮件地址,输入发送电子邮件的地址。
- 为了电子邮件地址,输入接收电子邮件的地址。
- 选择下一个。
- 其他值保持默认,然后选择我承认 AWS CloudFormation 可能会创建 IAM 资源在能力
- 选择提交创建 CloudFormation 堆栈。
- 堆栈部署成功后,在输出选项卡,记下值
apiGatewayInvokeURL
。稍后您将需要它来创建自定义插件。
验证电子邮件将发送至电子邮件地址
和发件人电子邮件地址
作为 CloudFormation 模板的输入提供的值。
- 核实使用电子邮件中的链接新创建的电子邮件身份。
本文不涉及 Lambda 函数的自动缩放。有关如何将 Lambda 与 Application Auto Scaling 集成的更多信息,请参阅AWS Lambda 和应用程序自动缩放。
要在 API Gateway 上配置 AWS WAF,请参阅使用 AWS WAF 保护 API Gateway 中的 REST API。
这是示例代码,用于非生产用途。在部署之前,您应与安全和法律团队合作,以满足组织的安全、监管和合规性要求。
创建 Amazon Cognito 用户
该解决方案使用 Amazon Cognito 授权用户调用 API Gateway。CloudFormation 模板创建一个新的 Amazon Cognito 用户池。
完成以下步骤在新创建的用户池中创建用户并捕获有关用户池的信息:
- 在 AWS CloudFormation 控制台上,导航到您创建的堆栈。上
- 资源选项卡,选择物理 ID 旁边的链接认知用户池
。
在 Amazon Cognito 控制台上,选择
- 用户管理和用户在导航窗格中。选择
- 创建用户。输入您选择的电子邮件地址和密码,然后选择
- 创建用户。在导航窗格中,选择
- 应用程序和应用程序客户端。捕获客户端 ID 和客户端密钥。
- 稍后在自定义插件开发过程中您将需要这些。
- 上登录页面选项卡,复制值允许的回调 URL。稍后在自定义插件开发过程中您将需要这些。
- 在导航窗格中,选择品牌推广。
- 捕获 Amazon Cognito 域。您将需要此信息来更新 OpenAPI 规范。
将文档上传到 Amazon S3
该解决方案使用完全托管的 Amazon S3 数据源无缝支持 RAG 工作流程,无需自定义集成和数据流管理。
对于这篇文章,我们使用样本文章上传到 Amazon S3。完成以下步骤:
- 在 AWS CloudFormation 控制台上,导航到您创建的堆栈。上
- 资源选项卡,选择物理 ID 的链接AmazonQDataSourceBucket
。
将示例文章文件上传到 S3 存储桶。
- 有关说明,请参阅上传对象。
将用户添加到 Amazon Q Business 应用程序
完成以下步骤将用户添加到新创建的 Amazon Q 业务应用程序:
- 在 Amazon Q Business 控制台上,选择应用领域在导航窗格中。
- 选择您使用 CloudFormation 模板创建的应用程序。
- 在下面用户访问, 选择管理用户访问。
- 上管理访问和订阅页面,选择添加组和用户。
- 选择分配现有用户和组,然后选择下一个。
- 搜索您的 IAM Identity Center 用户组。
- 选择组并选择分配添加组及其用户。
- 确保当前订阅是 Q Business Pro。
- 选择确认。
同步 Amazon Q 数据源
要同步数据源,请完成以下步骤:
- 在 Amazon Q Business 控制台上,导航到您的应用程序。
- 选择数据来源在下面增强功能在导航窗格中。
- 从数据来源列表中,选择您通过 CloudFormation 模板创建的数据源。
- 选择立即同步来同步数据源。
与数据源同步需要一些时间。等待直到同步状态变为完全的。
创建 Amazon Q 自定义插件
在本部分中,您将创建用于发送电子邮件的 Amazon Q 自定义插件。完成以下步骤:
- 在 Amazon Q Business 控制台上,导航到您的应用程序。
- 在下面增强功能在导航窗格中,选择插件。
- 选择添加插件。
- 选择创建自定义插件。
- 为了插件名称,输入名称(例如,
电子邮件插件
)。 - 为了描述,输入描述。
- 选择使用内联 OpenAPI 模式编辑器进行定义。
您还可以通过选择将 API 架构上传到 Amazon S3从S3中选择。这将是生产用例上传的最佳方式。
您的 API 架构必须具有自定义插件的 API 描述、结构和参数。
- 选择JSON对于模式格式。
- 输入以下架构,并提供您的 API Gateway 调用 URL 和 Amazon Cognito 域 URL:
{“openapi”:“3.0.0”,“信息”:{"title": "发送邮件API","description": "从 SES 发送电子邮件的 API",“版本”:“1.0.0”},“服务器”:[{“网址”:“<API网关调用地址>”}],“路径”:{“/”:{“邮政”: {"summary": "发送邮件给用户并返回成功信息","description": "发送邮件给用户并返回成功信息",“安全”: [{“OAuth2”:[“发送电子邮件/阅读”]}],“请求主体”:{“必需”:真实,“内容”: {“应用程序/json”:{“架构”:{"$ref": "#/components/schemas/sendEmailRequest"}}}},“回应”:{“200”:{"description": "响应成功",“内容”: {“应用程序/json”:{“架构”:{“$ref”:“#/components/schemas/sendEmailResponse”}}}}}}}},“成分”: {“模式”:{“发送电子邮件请求”:{“类型”:“对象”,“必需的”: [“电子邮件内容”,“至电子邮件地址”,“来自电子邮件地址”],“特性”: {“电子邮件内容”:{“类型”:“字符串”,“description”:“电子邮件正文。”},“至电子邮件地址”:{“类型”:“字符串”,"description": "发送至电子邮件地址。"},“来自电子邮件地址”:{“类型”:“字符串”,"description": "发送至电子邮件地址。"}}},“发送电子邮件响应”:{“类型”:“对象”,“特性”: {“信息”: {“类型”:“字符串”,"description": "成功或失败消息。"}}}},“安全方案”:{“OAuth2”:{“类型”:“oauth2”,"description": "OAuth2 客户端凭据流程。",“流动”:{“授权码”:{“授权网址”:“<认知域>/oauth2/授权”,“令牌网址”:“<认知域>/oauth2/令牌”,“范围”:{"email/read": "阅读电子邮件"}}}}}}}
- 在下面验证, 选择需要身份验证。
- 为了AWS Secrets Manager 秘密, 选择创建并添加新秘密。
- 在创建 AWS Secrets Manager 密钥在弹出窗口中,输入之前从 Amazon Cognito 捕获的以下值:
- 客户ID
- 客户秘密
- OAuth 回调 URL
- 为了选择授权 Amazon Q Business 的方法,保留默认选择创建并使用新的服务角色。
- 选择添加插件添加您的插件。
等待插件被创建并且构建状态显示为准备好。
JSON 或 YAML 格式的 OpenAPI 架构的最大大小为 1 MB。
要最大限度地提高 Amazon Q Business 自定义插件的准确性,请遵循配置 OpenAPI 架构定义的最佳实践用于自定义插件。
测试解决方案
要测试该解决方案,请完成以下步骤:
- 在 Amazon Q Business 控制台上,导航到您的应用程序。
- 在网络体验设置部分,找到部署的 URL。
- 打开 Web 体验部署的 URL。
- 使用之前在 IAM Identity Center 中创建的用户凭证登录 Web 体验。
- 选择所需的多重身份验证 (MFA) 设备进行注册。有关更多信息,请参阅为用户注册MFA设备。
- 登录门户网站后,选择适当的应用程序打开聊天界面。
- 在 Amazon Q 门户中,输入“总结公司的出勤和休假政策”。
Amazon Q Business 通过上传的文档提供问题的答案。
您现在可以使用之前构建的自定义插件通过电子邮件发送此对话。
- 在选项菜单(三个垂直点)上,选择使用插件查看之前创建的电子邮件插件。
- 选择电子邮件插件并输入“通过电子邮件发送本次对话的摘要”。
- Amazon Q 会要求您提供用于发送对话的电子邮件地址。提供配置为 CloudFormation 模板一部分的经过验证的身份。
- 输入电子邮件地址后,将出现授权页面。输入您的 Amazon Cognito 用户电子邮件 ID 和密码以进行身份验证并选择登入。
此步骤验证您是否是授权用户。
电子邮件将发送到指定的收件箱。
您可以使用以下方式进一步个性化电子邮件电子邮件模板。
确保解决方案安全
安全是一个共同责任模型您和 AWS 之间的关系,被描述为安全性的云与安全在云。请记住以下最佳实践:
- 要构建安全的电子邮件应用程序,我们建议您遵循以下最佳实践安全、身份与合规性帮助保护敏感信息并维护用户信任。
- 对于访问控制,我们建议您保护 AWS 账户凭证并使用 IAM Identity Center 或 IAM 设置个人用户。
- 您可以使用以下方式安全地存储客户数据并加密静态敏感信息AWS 托管密钥或者客户管理的密钥。
- 你可以实施记录和监控系统及时发现并应对可疑活动。
- 可以配置 Amazon Q Business 来帮助满足您的需求安全和合规目标。
- 您可以维护遵守通过实施适当的数据处理和保留政策,遵守相关的数据保护法规,例如 GDPR 或 CCPA。
- 你可以实施护栏为您的应用程序环境定义全局控制和主题级控制。
- 您可以启用AWS 盾在您的网络上帮助防止 DDOS 攻击。
- 您应该遵循 Amazon Q 访问控制列表 (ACL) 爬网的最佳实践,以帮助保护您的业务数据。有关更多详细信息,请参阅在 Amazon Q Business 中安全地启用或禁用 ACL 爬网。
- 我们建议使用
aws:来源Arn
和aws:源账户
资源策略中的全局条件上下文键用于限制 Amazon Q Business 向资源提供其他服务的权限。欲了解更多信息,请参阅跨服乱副防。
通过结合这些安全措施,您可以创建强大且值得信赖的应用程序,以保护您的企业和客户信息。
清理
为避免将来产生费用,请删除您创建的资源并清理您的帐户。完成以下步骤:
- 清空S3存储桶的内容它是作为 CloudFormation 堆栈的一部分创建的。
- 删除 Lambda 函数
更新KMSKeyPolicy函数
它是作为 CloudFormation 堆栈的一部分创建的。 - 删除 CloudFormation 堆栈。
- 删除身份在亚马逊 SES 中。
- 删除 Amazon Q Business 应用程序。
结论
Amazon Q Business(一款最先进的生成式 AI 支持助手)与 Amazon SES(一家强大的电子邮件服务提供商)的集成,为企业利用生成式 AI 的力量带来了新的可能性。通过无缝连接这些技术,组织不仅可以从业务数据中获得富有成效的见解,还可以通过电子邮件将其发送到收件箱。
准备好提高您团队的生产力了吗?立即使用 Amazon Q Business 为您的员工提供支持!释放自定义插件和无缝电子邮件集成的潜力。不要让有价值的对话溜走——您可以毫不费力地捕捉和分享见解。此外,探索我们的图书馆内置插件。
及时了解最新进展生成式人工智能并开始在 AWS 上构建。如果您正在寻求有关如何开始的帮助,请查看AWS 生成式 AI 创新中心。
关于作者
苏贾塔·丹图鲁里是 AWS 美国联邦民事团队中经验丰富的高级解决方案架构师,拥有二十多年支持商业和联邦政府客户的经验。她的专长在于构建关键任务解决方案并与客户密切合作以确保他们的成功。Sujatha 是一位出色的公共演讲家,经常在行业活动和会议上分享她的见解和知识。她为 IEEE 标准做出了贡献,并热衷于通过引人入胜的演讲和发人深省的想法为他人提供帮助。
纳迦·巴拉蒂·查拉是一名为 AWS 国防部团队提供支持的解决方案架构师。她与客户密切合作,在其任务用例中有效使用 AWS 服务,提供有关各种服务的架构最佳实践和指导。工作之余,她喜欢与家人共度时光并传播冥想的力量。
普拉尼特·拉杰是 AWS 印度团队的解决方案架构师。他与印度的 ISV 合作,帮助他们在 AWS 上进行创新。他专门研究 DevOps、卓越运营、基础设施即代码以及使用 DevSecOps 实践的自动化。工作之余,他喜欢与心爱的家人一起长途驾车、与他们共度时光以及看电影。
阿尼尔·吉里博士是 Amazon Web Services 的解决方案架构师。他与企业软件和 SaaS 客户合作,帮助他们构建生成式 AI 应用程序并在 AWS 上实施无服务器架构。他的重点是指导客户使用尖端的云技术创建创新、可扩展的解决方案。