RDS for Oracle 的 Amazon Bedrock 集成 - Amazon Relational Database Service

View a markdown version of this page

RDS for Oracle 的 Amazon Bedrock 集成 - Amazon Relational Database Service

RDS for Oracle 的 Amazon Bedrock 集成

RDS for Oracle 支持与 Amazon Bedrock 集成,使您能够使用 SQL 直接从 Oracle 数据库调用基础模型。通过这种集成,您可以使用生成式人工智能功能,例如文本生成、摘要和嵌入生成,而无需将数据移出数据库。

注意

仅 Oracle Database 26ai 支持 Amazon Bedrock 集成。

Bedrock 集成的要求

要使用 Amazon Bedrock 与 RDS for Oracle 的集成,请确保满足以下要求。

数据库要求

  • 您的数据库实例必须运行 Oracle Database 26ai(26.0.0.0)或更高版本。

  • 调用 Bedrock 模型的数据库用户必须对 DBMS_CLOUDDBMS_CLOUD_AI 软件包拥有 EXECUTE 权限。

  • 数据库必须配置了访问控制条目(ACE),以支持对 Bedrock 运行时端点进行出站 HTTPS 访问。有关更多信息,请参阅 配置 Bedrock 集成

AWS 凭证要求

  • 您必须拥有有权调用所需 Amazon Bedrock 基础模型(bedrock:InvokeModel 以及可选 bedrock:InvokeModelWithResponseStream 操作)的 IAM 用户或角色。

  • 您必须已通过 Amazon Bedrock 控制台请求并获得了对所需基础模型的访问权限。有关更多信息,请参阅《Amazon Bedrock 用户指南》中的访问 Amazon Bedrock 基础模型

  • 您必须拥有 AWS 访问密钥(访问密钥 ID 和秘密访问密钥),IAM 身份才能使用 DBMS_CLOUD.CREATE_CREDENTIAL 将其存储在数据库中。

Amazon VPC 网络要求

RDS for Oracle 数据库实例必须能够通过端口 443(HTTPS)到达 Amazon Bedrock 运行时端点 (bedrock-runtime.region.amazonaws.com)。您可以通过下列方式之一来实现此目的。

选项 1:Amazon VPC 接口端点(AWS PrivateLink):建议采用

为 Amazon Bedrock 运行时服务创建 Amazon VPC 接口端点。这样可以保持 AWS 网络内所有流量的私密性,并且不需要访问互联网。

  1. 使用服务名称 com.amazonaws.region.bedrock-runtime 创建 Amazon VPC 接口端点。

  2. 将端点放置在与您的 Amazon RDS 数据库实例相同的 Amazon VPC 和子网中(或与数据库实例子网相连的子网中)。

  3. 将安全组附加到端点,以支持来自数据库实例安全组的入站 HTTPS(端口 443)。

  4. 为端点启用私有 DNS,以便标准主机名 bedrock-runtime.region.amazonaws.com 解析为私有端点 IP 地址。

  5. 确保数据库实例的安全组支持出站 HTTPS(端口 443)到达端点的安全组(或到达端点的私有 IP 地址)。

选项 2:NAT 网关(互联网路由)

如果您不使用 Amazon VPC 端点,则数据库实例的子网必须具有通过 NAT 网关到互联网的路由。

  1. 确保数据库实例所处的私有子网具有到 NAT 网关的路由。

  2. NAT 网关所处的公有子网必须具有到互联网网关的路由。

  3. 数据库实例的安全组必须支持出站 HTTPS(端口 443)到达 bedrock-runtime.region.amazonaws.com

  4. 数据库实例的子网上的任何 Amazon VPC 网络 ACL 都必须支持出站 TCP 443 和相应的临时入站返回流量(TCP 端口 1024–65535)。

下表汇总了网络路径。

Bedrock 集成的网络路径
方法 需要访问互联网 流量路径

Amazon VPC 端点(AWS PrivateLink)

数据库实例 → Amazon VPC 端点 → Bedrock 服务

NAT 网关

是(仅限出站)

数据库实例 → NAT 网关 → 互联网网关 → Bedrock 服务

配置 Bedrock 集成

要为您的 RDS for Oracle 数据库实例配置 Amazon Bedrock 集成,请完成以下步骤。

步骤 1:配置 Amazon VPC 网络连接

使用 Amazon VPC 网络要求中描述的网络选项之一,确保您的数据库实例可以到达 Bedrock 运行时端点。要在配置后验证连接,可以在稍后的步骤中从数据库进行测试。

步骤 2:获取具有 Bedrock 权限的 AWS 凭证

使用以下策略创建 IAM 用户或角色(或将其附加到现有身份)。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "BedrockInvoke", "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": [ "arn:aws:bedrock:region::foundation-model/*" ] } ] }

要限制对特定模型的访问,请将通配符替换为特定的模型 ARN,例如:

"arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-sonnet-4-5-20250929-v1:0"

从 IAM 控制台为此 IAM 用户生成访问密钥。下一步需要访问密钥 ID 和秘密访问密钥。

步骤 3:授予数据库权限

以 DBA 身份进行连接,并向应用程序用户授予必要的权限。

-- Grant EXECUTE on DBMS_CLOUD and DBMS_CLOUD_AI GRANT EXECUTE ON DBMS_CLOUD TO db_user; GRANT EXECUTE ON DBMS_CLOUD_AI TO db_user;

步骤 4:授予对 Bedrock 端点的网络 ACL 访问权限

向数据库用户授予对 Bedrock 运行时端点的网络 ACL 访问权限。

BEGIN DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE( host => 'bedrock-runtime.region.amazonaws.com', ace => xs$ace_type( privilege_list => xs$name_list('http'), principal_name => 'db_user', principal_type => xs_acl.ptype_db) ); END; /

region 替换为您的 AWS 区域(例如 us-east-1),并将 db_user 替换为将调用 Bedrock 模型的 Oracle 数据库用户。

步骤 5:在数据库中创建凭证

以应用程序用户身份进行连接,并使用 DBMS_CLOUD 创建凭证对象。

BEGIN DBMS_CLOUD.CREATE_CREDENTIAL( credential_name => 'AWS_BEDROCK_CRED', username => 'your_AWS_access_key_id', password => 'your_AWS_secret_access_key' ); END; /

步骤 6:为 Bedrock 创建人工智能配置文件

使用 DBMS_CLOUD_AI 创建人工智能配置文件,该配置文件引用您的凭证并将 AWS 指定为提供商。

BEGIN DBMS_CLOUD_AI.CREATE_PROFILE( profile_name => 'BEDROCK_PROFILE', attributes => '{"provider": "aws", "credential_name": "AWS_BEDROCK_CRED", "model": "us.anthropic.claude-sonnet-4-5-20250929-v1:0", "object_list": [{"owner": "schema", "name": "table1"}, {"owner": "schema", "name": "table2"}] }' ); END; /

要在 us-east-1 以外的区域使用 Amazon Bedrock 运行时端点,请在配置文件属性 JSON 中包含 regiontarget_language 属性。将 region 设置为您的 Amazon Bedrock 运行时端点所在的区域(例如 us-west-2)。

如果设置了 region,则还必须包含 target_languagesource_language。即使对于不使用翻译的操作(例如 chatrunsql),也必须同时设置这两个属性。

target_language 值仅影响 translate 操作。如果仅包含 target_language 而不包含 region,则配置文件将继续使用 bedrock-runtime.us-east-1.amazonaws.com

注意

由于 Oracle DBMS_CLOUD_AI 软件包存在一个已知的限制,因此必须将 target_languageregion 一起设置。

以下示例创建一个使用 us-west-2 区域的配置文件。

BEGIN DBMS_CLOUD_AI.CREATE_PROFILE( profile_name => 'BEDROCK_PROFILE_USW2', attributes => '{"provider": "aws", "credential_name": "AWS_BEDROCK_CRED", "region": "us-west-2", "target_language": "en", "model": "us.anthropic.claude-sonnet-4-5-20250929-v1:0", "object_list": [{"owner": "schema", "name": "table1"}, {"owner": "schema", "name": "table2"}] }' ); END; /

您必须显式指定 model 属性。没有为 AWS 提供商提供默认模型。有关模型 ID,请参阅以下参考资料:

验证 Bedrock 集成

使用简单的提示测试连接性。

EXEC DBMS_CLOUD_AI.SET_PROFILE('BEDROCK_PROFILE'); SELECT AI chat what is Amazon RDS;

如果响应成功返回,则说明您的 Bedrock 集成配置正确。

使用 Bedrock 集成

配置集成后,您可以使用 SQL 和 Select AI 从 Oracle 数据库中调用 Amazon Bedrock 基础模型。

有关 Amazon Bedrock 的完整用法示例,包括 SELECT AI 操作(runsqlshowsqlnarratechatexplainsql)、DBMS_CLOUD_AI.GENERATE 函数、多回合对话和检索增强生成(RAG),请参阅以下 Oracle 文档: