本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 JDBC 连接到您的数据库
本指南将引导您使用 Java 数据库连接 (JDBC) 将数据库连接到 Amazon Connect 决策。您需要为数据库凭证设置安全加密,并建立 Amazon Connect Decisions 可用于访问您的数据的连接。
什么是 JDBC 连接以及何时应该使用它?
JDBC 连接允许 Amazon Connect Decisions 连接到您的现有数据库以读取数据,而不必要求您导出和上传 CSV 文件或设置自己的提取、转换、加载 (ETL) 管道到 S3。在以下情况下,这种方法是理想的选择:
-
您的数据已存储在 AWS Glue-compatible 关系数据库中。有关兼容的数据库和版本,请参阅本指南。
-
您希望无需手动导出文件即可进行实时或近实时的数据访问
-
您的数据量很大,并且经常更新
-
您更愿意将数据保存在当前位置而不是复制
-
如果您使用的是较小的数据集或更喜欢基于文件的上传,那么标准的 CSV 上传过程可能会更简单地满足您的需求。有关此过程的更多详细信息,请参阅数据加载用户指南。
先决条件
在开始之前,请确保您满足以下条件:
-
一个有权创建 KMS 密钥和 Secrets Manager 资源的 AWS 账户
-
您的 AWS 账户 ID 以及 Amazon Connections 将运作的地区
-
数据库连接详细信息:主机名、端口、数据库名称和凭据
-
对您的数据库进行管理访问以验证连接
-
您的数据库已配置为接受来自 AWS 服务的连接
创建 Customer-Managed KMS 密钥
在将数据库连接到 Amazon Connect Decisions 之前,您需要为数据库凭证设置加密。AWS 密钥管理服务 (KMS) Management Service 提供了此安全层,可确保您的连接详细信息受到保护。
创建您的 KMS 密钥
-
导航到 AWS KMS 控制台
-
在浏览器中打开 AWS 管理控制台
-
在顶部的搜索栏中,键入 “KMS”,然后从结果中选择 “密钥管理服务”
-
这将打开 KMS 控制面板,您将在其中管理加密密钥
-
-
启动密钥创建
-
在 KMS 控制面板上,找到并单击右上角的创建密钥按钮
-
这将启动密钥创建向导,该向导将指导您完成设置过程
-
-
配置密钥类型和用法
-
在 “配置密钥” 页面上,选择 Symmetric 作为密钥类型(这是默认且推荐的选项)
-
保持 “密钥用法” 下的 “加密和解密” 处于选中状态
-
-
设置密钥识别详细信息
-
在 “别名” 字段中,输入密钥的描述性名称,例如
aws-supply-chain-database-key -
在 “描述” 字段中,添加诸如 “Amazon Connections 数据库凭证的加密密钥” 之类的上下文
-
(可选)添加标签以帮助组织和跟踪您的 AWS 资源(例如,密钥:“项目”,值:“Amazon Connections Decisions”)
-
-
定义密钥管理权限
-
选择应该能够管理此密钥(创建、删除、修改策略)的 IAM 用户或角色
-
至少要包括你自己的管理员角色,以确保你以后可以在需要时修改密钥
-
这些管理员可以管理密钥,但不会自动获得使用密钥的权限 encryption/decryption
-
在 “密钥删除” 部分,允许密钥管理员删除此密钥。 (这是默认和推荐的选项)
-
-
定义密钥使用权限
-
在此页面上,您将看到用于选择可以使用密钥的 IAM 用户和角色的选项
-
跳过此处选择特定用户的步骤,您将在下一步中配置服务权限
-
-
为 Amazon Connections 服务配置密钥策略
-
你会看到一个带有默认 JSON 的策略编辑器
-
在 KMS 密钥策略编辑器中,将以下语句附加到现有的 “声明” 数组中
-
该政策授予您的账户完全控制权,并允许 Amazon Connections 的服务(Secrets Manager 和 Glue)解密您的数据库凭证
{ "Sid": "Allow GDIS service to decrypt", "Effect": "Allow", "Principal": { "Service": "scn.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:DescribeKey", "kms:CreateGrant", "kms:GenerateDataKeyWithoutPlaintext" ], "Resource": "*" } -
-
审查并最终确定
-
在摘要页面上查看所有配置设置
-
验证您的别名、描述和政策是否正确
-
单击 “完成” 创建密钥
-
创建后,您将返回到 KMS 控制面板,您的新密钥将出现在列表中
-
会发生什么
立即创建密钥。创建后,您将在KMS控制台中看到您的新密钥列出,其状态为 “已启用”。密钥现已准备就绪,可以在 Secrets Manager 中加密你的数据库凭证。
配置 AWS Secrets Manager
现在,您已拥有 KMS 密钥,您将在 AWS Secrets Manager 中创建一个密钥来安全地存储您的数据库证书,然后配置一个允许 Amazon Connect Decisions 访问该密钥的资源策略。
创建你的秘密
-
导航到 AWS Secrets Manager
-
在 AWS 管理控制台的搜索栏中,键入 “Secrets Manager”
-
从结果中选择 “Secrets Manager” 以打开服务控制面板
-
-
开始创建新密钥
-
点击 “存储新秘密” 按钮
-
在 “选择密钥类型” 页面上,选择 “其他类型的密钥”(这使您可以灵活地构建凭据)
-
-
输入您的数据库凭证
-
在键值对部分,将您的数据库连接详细信息添加为字符串:
Key: username, Value: your database username Key: password, Value: your database password Key: host, Value: your database hostname (e.g., database.example.com) Key: port, Value: your database port (e.g., 3306 for MySQL) Key: database, Value: your database name -
-
选择您的加密密钥
-
在 “加密密钥” 下,选择选择 AWS KMS 密钥
-
从下拉列表中,选择您在步骤 1 中创建的 KMS 密钥(例如
aws-supply-chain-database-key) -
这样可以确保您的凭证使用客户管理的密钥进行加密
-
-
说出你的秘密
-
为您的密钥输入一个描述性名称,例如
aws-supply-chain-production-database -
(可选)添加诸如 “Amazon Connections 生产环境的数据库凭证” 之类的描述
-
如果组织需要,可以添加标签(例如,密钥:“环境”,值:“生产”)
-
-
添加资源权限
-
单击 “编辑权限”。在策略编辑器中,粘贴以下策略。该政策允许 Amazon Connections 的服务读取你的秘密
{ "Version" : "2012-10-17", "Statement" : [ { "Effect" : "Allow", "Principal" : { "Service" : "scn.amazonaws.com" }, "Action" : [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret" ], "Resource" : "<COPY-THE-SECRET-ARN-HERE-AFTER-CREATING>" } ] } -
-
保存政策
-
单击 “保存” 以应用资源策略
-
该政策现已生效,允许 Amazon Connections 检索您的数据库凭证
-
-
配置轮换(可选)
-
在此设置中,您可以通过选择 “禁用自动旋转” 来跳过自动旋转
-
如果您的安全策略需要,您可以稍后启用轮换
-
-
审核和创建
-
查看您的所有秘密信息
-
单击 “存储” 以创建密钥
-
你将返回到 Secrets Manager 控制面板
-
-
保存你的秘密 ARN
-
在密钥列表中找到你新创建的密钥
-
点击密钥名称可打开其详细信息页面
-
在顶部,你会看到秘密 ARN
-
复制并保存此 ARN
-
ARN 格式如下所示:
arn:aws:secretsmanager:us-east-1:123456789012:secret:aws-supply-chain-production-database-AbCdEf
-
-
编辑资源权限
-
点击 “编辑权限”
-
粘贴复制的密钥 ARN 并
<COPY-THE-SECRET-ARN-HERE-AFTER-CREATING>替换为复制的 ARN -
单击 “保存” 以附加策略
-
会发生什么
现在,您的密钥已安全存储并使用您的 KMS 密钥进行加密。Amazon Connect Decisions 的服务有权在建立数据库连接时检索证书,但证书在静态和传输过程中都保持加密状态。
将您的数据库与 Amazon Connect 决策联系起来
配置好您的 KMS 密钥和密钥后,您就可以在 Amazon Connections 中建立 JDBC 连接了。
配置您的 JDBC 连接
-
导航至 Amazon Connect 决策 > 数据管理
-
登录到你的 Amazon Connections 实例
-
从主导航栏中选择 “数据管理”
-
在选项卡导航中,导航到 “连接”
-
选择 “新建连接” 以创建新连接
-
-
输入您的连接详情
-
连接名称(必填):输入此连接的唯一标识符(例如,“生产数据库”)
-
描述(可选):添加有关此连接的目的和用法的详细信息,以帮助您的团队了解它访问了哪些数据
-
JDBC 网址(必填):按以下格式输入完整的 JDBC 连接字符串:
jdbc:<database-type>://<hostname>:<port>/<database>(例如,)jdbc:postgresql://db.example.com:5432/mydb -
架构名称(可选):根据需要指定数据库架构(例如,“public”、“dbo”、“myschema”)。留空以使用数据库的默认架构
-
秘密 ARN(必填):粘贴您在步骤 2 中保存的秘密 ARN。这允许 Amazon Connections 从 Secrets Manager 安全地检索您的数据库凭证。
-
强制执行 SSL 连接:选中此复选框(推荐)以要求对数据库连接进行 SSL/TLS 加密
-
VPC 终端节点服务名称(必填):输入通过 AWS 进行私有连接的 VPC 终端节点服务名称 PrivateLink (格式:
com.amazonaws.vpce.<region>.vpce-svc-xxxxxxxxx)
-
-
Connect 连接到您的数据库
-
单击 “Connect” 以测试并建立连接。Amazon Connect Decisions 将验证它是否可以使用提供的凭证成功连接到您的数据库。此步骤最多可能需要 2 分钟,因此请不要在连接期间离开此屏幕。
-
如果连接成功,您将自动导航到表格选择
-
如果连接失败:
-
查看您的连接详细信息以确保所有字段都准确无误:
-
验证您的密钥 ARN 是否正确
-
确认您的数据库凭证准确无误
-
检查您的 JDBC 网址格式是否正确
-
确保您的数据库已配置为接受来自 AWS 服务的连接
-
验证您的 KMS 密钥和 Secrets Manager 策略配置是否正确
-
-
您还可以使用聊天体验通过提问 “为什么我的数据库连接失败?” 之类的问题来帮助解决连接问题 或 “帮我调试我的 JDBC 连接”
-
-
-
选择要收录的表
-
连接后,您将看到 “选择表” 屏幕,其中显示了数据库中所有可用的表
-
选中要收录的每张表旁边的复选框
-
-
配置表格刷新计划
-
对于每个选定的表格,单击 “操作” 列中的三点菜单,然后选择 “计划刷新”
-
在配置负载详细信息对话框中,设置:
-
节奏:刷新频率(每小时、每天、每周或自定义)
-
开始时间:开始刷新的时间(以 UTC 和您的时区偏移量显示)
-
刷新类型:选择完成刷新(替换所有数据)或增量更新(向现有数据添加新数据;需要选择记录时间戳列)
-
根据需要对每张桌子重复此操作
-
-
配置完所有表后,单击 “开始映射”
-
-
继续进行数据映射
-
从现在开始,体验与我们的数据加载流程相同
-
按照《数据载入用户指南》的 “数据映射” 部分完成设置
-
会发生什么
建立连接并选择表后,Amazon Connect Decisions 就可以从您的数据库中读取数据。连接保持活跃和安全,证书通过 AWS Secrets Manager 进行加密和管理。您无需在 Amazon Connect 决策中手动更新凭证,您在 Secrets Manager 中所做的任何更改都将自动反映出来。
最佳实践
安全和访问管理
-
安全存储证书:始终使用 AWS Secrets Manager 存储数据库证书,切勿在连接字符串或配置文件中对证书进行硬编码
-
启用 SSL/TLS 加密:保持 “强制 SSL 连接” 选项处于启用状态,以确保传输过程中对数据进行加密
-
定期查看 KMS 和 Secrets Manager 政策:确保只有经过授权的服务和账户才能访问您的加密密钥和机密
-
使用最低权限访问权限:仅向数据库用户授予 Amazon Connect Decisions 用于连接的最低必要权限
连接配置
-
使用描述性连接名称:选择清晰、有意义的名称来表示环境和目的(例如,“production-inventory-db” 而不是 “db1”)
-
记录您的连接:使用描述字段记下连接访问了哪些数据、谁拥有这些数据以及任何特殊注意事项
-
在继续操作之前测试连接:在选择表格和配置刷新计划之前,请务必验证您的连接是否正常
-
验证 JDBC 网址格式: Double-check您的 JDBC 网址语法与您的数据库类型相匹配以避免连接错误
数据刷新策略
-
选择适当的刷新频率:根据源数据更改频率和业务需求选择刷新频率
-
在低活动期间安排刷新:在数据库负载较低时配置刷新时间,以最大限度地减少对性能的影响
-
尽可能使用增量更新:对于频繁更改的大型数据集,增量更新比完全刷新更有效
-
选择有意义的时间戳列:使用增量更新时,请选择能够准确反映记录创建或修改时间的列
使用聊天进行故障排除
-
具体说明您的请求:在寻求帮助以解决连接或映射问题时,请提供清晰的背景信息
-
询问解释:如果您不理解建议或生成的 SQL 查询,请要求澄清
-
在接受之前测试所有 SQL 更改:使用预览功能验证转换是否按预期使用实际数据
-
利用聊天进行故障排除:当连接失败或刷新遇到错误时,请询问诸如 “为什么我的连接失败?” 之类的诊断问题 或 “帮我理解这个刷新错误”
持续维护
-
定期监控刷新执行情况:检查数据管理中的 “目标” 和 “源” 选项卡,确保刷新成功完成
-
及时解决错误:当 Amazon Connect Decisions 提醒您刷新失败时,请快速调查和解决问题以避免数据缺口
-
安全地更新证书:当数据库密码更改时,在 AWS Secrets Manager 中对其进行更新,Amazon Connections 将自动使用新的证书
-
记录自定义配置:记下任何特殊的刷新计划、转换逻辑或连接要求以供团队参考
-
定期查看表选择:随着数据需求的变化,重新审视您正在采集哪些表,以及刷新计划是否仍然符合业务需求