

# Integração do Amazon Bedrock com o RDS para Oracle
<a name="Oracle.BedrockIntegration"></a>

O RDS para Oracle é compatível com a integração ao Amazon Bedrock, permitindo invocar modelos de base diretamente do banco de dados Oracle usando SQL. Com essa integração, é possível usar recursos de IA generativa, como geração de texto, resumo e geração de incorporações, sem mover os dados para fora do banco de dados.

**nota**  
A integração do Amazon Bedrock é compatível apenas com o Oracle Database 26ai.

**Topics**
+ [Requisitos para a integração do Bedrock](#Oracle.BedrockIntegration.requirements)
+ [Configurar a integração do Bedrock](#Oracle.BedrockIntegration.Configuring)
+ [Usar a integração com o Bedrock](#Oracle.BedrockIntegration.Using)

## Requisitos para a integração do Bedrock
<a name="Oracle.BedrockIntegration.requirements"></a>

Para usar a integração do Amazon Bedrock com o RDS para Oracle, os seguintes requisitos devem ser atendidos.

### Requisitos do banco de dados
<a name="Oracle.BedrockIntegration.requirements.Database"></a>
+ A instância de banco de dados deve executar o Oracle Database 26ai (26.0.0.0) ou superior.
+ O usuário do banco de dados que invoca os modelos do Bedrock deve ter o privilégio `EXECUTE` nos pacotes `DBMS_CLOUD` e `DBMS_CLOUD_AI`.
+ O banco de dados deve estar configurado com entradas de controle de acesso (ACEs) que permitam acesso HTTPS de saída ao endpoint de runtime do Bedrock. Para obter mais informações, consulte [Configurar a integração do Bedrock](#Oracle.BedrockIntegration.Configuring).

### Requisitos das credenciais da AWS
<a name="Oracle.BedrockIntegration.requirements.Credentials"></a>
+ Você deve ter um usuário ou um perfil do IAM com permissões para invocar os modelos de base desejados do Amazon Bedrock (as ações `bedrock:InvokeModel` e, opcionalmente, `bedrock:InvokeModelWithResponseStream`).
+ Você deve ter solicitado e recebido acesso aos modelos de base desejados usando o console do Amazon Bedrock. Consulte mais informações em [Acessar modelos de base no Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/model-access.html) no *Guia do usuário do Amazon Bedrock*.
+ Você deve ter chaves de acesso da AWS (ID da chave de acesso e chave de acesso secreta) para sua identidade do IAM a fim de armazená-las no banco de dados usando `DBMS_CLOUD.CREATE_CREDENTIAL`.

### Requisitos de rede da Amazon VPC
<a name="Oracle.BedrockIntegration.requirements.Network"></a>

A instância de banco de dados do RDS para Oracle deve conseguir acessar o endpoint de runtime do Amazon Bedrock (`bedrock-runtime.{{region}}.amazonaws.com`) pela porta 443 (HTTPS). É possível fazer isso de uma das seguintes maneiras.

**Opção 1: endpoint de interface da Amazon VPC (AWS PrivateLink) – recomendado**  
Crie um endpoint de interface da Amazon VPC para o serviço de runtime do Amazon Bedrock. Isso mantém todo o tráfego privado dentro da rede da AWS e não requer acesso à internet.

1. Crie um endpoint de interface da Amazon VPC usando o nome do serviço: `com.amazonaws.{{region}}.bedrock-runtime`.

1. Coloque o endpoint na mesma Amazon VPC e nas mesmas sub-redes da instância de banco de dados do Amazon RDS (ou em sub-redes com conectividade às sub-redes da instância de banco de dados).

1. Anexe ao endpoint um grupo de segurança que permita tráfego HTTPS de entrada (porta 443) proveniente do grupo de segurança da instância de banco de dados.

1. Habilite o DNS privado para o endpoint para que o nome de host padrão `bedrock-runtime.{{region}}.amazonaws.com` seja resolvido para o endereço IP privado do endpoint.

1. Confirme se o grupo de segurança da instância de banco de dados permite tráfego HTTPS de saída (porta 443) para o grupo de segurança do endpoint (ou para os endereços IP privados do endpoint).

**Opção 2: gateway NAT (rota pela internet)**  
Se você não usar um endpoint da Amazon VPC, a sub-rede da instância de banco de dados deverá ter uma rota para a internet por meio de um gateway NAT.

1. Confirme se a instância de banco de dados está em uma sub-rede privada com uma rota para um gateway NAT.

1. O gateway NAT deve estar em uma sub-rede pública com uma rota para um gateway da internet.

1. O grupo de segurança da instância de banco de dados deve permitir tráfego HTTPS de saída (porta 443) para `bedrock-runtime.{{region}}.amazonaws.com`.

1. Quaisquer ACLs de rede da Amazon VPC na sub-rede da instância de banco de dados devem permitir tráfego TCP de saída na porta 443 e o tráfego de retorno de entrada correspondente em portas efêmeras (TCP 1024–65535).

A tabela a seguir resume os caminhos de rede.


**Caminhos de rede para a integração do Bedrock**  

| Abordagem | Acesso à internet necessário | Caminho do tráfego | 
| --- | --- | --- | 
| Endpoint da Amazon VPC (AWS PrivateLink) | Não | Instância de banco de dados → Endpoint da Amazon VPC → Serviço Bedrock | 
| NAT gateway | Sim (somente saída) | Instância de banco de dados → Gateway NAT → Gateway da internet → Serviço Bedrock | 

## Configurar a integração do Bedrock
<a name="Oracle.BedrockIntegration.Configuring"></a>

Para configurar a integração do Amazon Bedrock para a instância de banco de dados do RDS para Oracle, conclua as seguintes etapas.

### Etapa 1: configurar a conectividade de rede da Amazon VPC
<a name="Oracle.BedrockIntegration.Configuring.Step1"></a>

Confirme se a instância de banco de dados consegue acessar o endpoint de runtime do Bedrock usando uma das opções de rede descritas em [Requisitos de rede da Amazon VPC](#Oracle.BedrockIntegration.requirements.Network). Para verificar a conectividade após a configuração, é possível fazer um teste a partir do banco de dados em uma etapa posterior.

### Etapa 2: obter credenciais da AWS com permissões do Bedrock
<a name="Oracle.BedrockIntegration.Configuring.Step2"></a>

Crie um usuário ou um perfil do IAM com a política a seguir (ou anexe-a a uma identidade existente).

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

Para restringir o acesso a modelos específicos, substitua o caractere curinga pelos ARNs dos modelos desejados, por exemplo:

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

Gere chaves de acesso para esse usuário do IAM no console do IAM. Você precisará do ID da chave de acesso e da chave de acesso secreta na próxima etapa.

### Etapa 3: conceder privilégios do banco de dados
<a name="Oracle.BedrockIntegration.Configuring.Step3"></a>

Conecte-se como DBA e conceda ao usuário da aplicação os privilégios necessários.

```
-- 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}};
```

### Etapa 4: conceder acesso à ACL de rede para o endpoint do Bedrock
<a name="Oracle.BedrockIntegration.Configuring.Step4"></a>

Conceda ao usuário do banco de dados acesso à ACL de rede para o endpoint de runtime do Bedrock.

```
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;
/
```

Substitua {{region}} pela sua região da AWS (por exemplo, `us-east-1`) e {{db\_user}} pelo usuário do banco de dados Oracle que invocará os modelos do Bedrock.

### Etapa 5: criar uma credencial no banco de dados
<a name="Oracle.BedrockIntegration.Configuring.Step5"></a>

Conecte-se como o usuário da aplicação e crie um objeto de credencial usando `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;
/
```

### Etapa 6: criar um perfil de IA para o Bedrock
<a name="Oracle.BedrockIntegration.Configuring.Step6"></a>

Crie um perfil de IA usando `DBMS_CLOUD_AI` que faça referência à sua credencial e especifique AWS como provedor.

```
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;
/
```

Para usar um endpoint de runtime do Amazon Bedrock em uma região diferente de `us-east-1`, inclua os atributos `region` e `target_language` no JSON de atributos do perfil. Defina `region` como a região em que o endpoint de runtime do Amazon Bedrock está localizado (por exemplo, `us-west-2`).

Se você definir `region`, também deverá incluir `target_language` ou `source_language`. É necessário definir ambos os atributos em conjunto, mesmo para ações que não usam tradução, como `chat` ou `runsql`.

O valor de `target_language` afeta apenas a ação `translate`. Se você incluir apenas `target_language` sem `region`, o perfil continuará usando `bedrock-runtime.us-east-1.amazonaws.com`.

**nota**  
É necessário definir `target_language` juntamente com `region` devido a uma limitação conhecida do pacote Oracle `DBMS_CLOUD_AI`.

O exemplo a seguir cria um perfil que usa a região `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;
/
```

É necessário especificar explicitamente o atributo `model`. Nenhum modelo padrão é fornecido para o provedor AWS. Para obter os IDs dos modelos, consulte as seguintes referências:
+ Modelos básicos: [IDs de modelos básicos do Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/model-ids.html).
+ Perfis de inferência entre regiões: [Regiões e modelos compatíveis com inferência entre regiões](https://docs.aws.amazon.com/bedrock/latest/userguide/cross-region-inference-support.html).
+ Throughput provisionado: especifique o ARN do throughput provisionado.
+ Modelos personalizados: adquira o Throughput provisionado e, em seguida, especifique o ARN do modelo provisionado resultante.

### Verificar a integração com o Bedrock
<a name="Oracle.BedrockIntegration.Configuring.Verifying"></a>

Teste a conectividade com um prompt simples.

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

Se a resposta for retornada com sucesso, a integração com o Bedrock estará configurada corretamente.

## Usar a integração com o Bedrock
<a name="Oracle.BedrockIntegration.Using"></a>

Depois de configurar a integração, é possível invocar modelos de base do Amazon Bedrock diretamente do banco de dados Oracle usando SQL com o Select AI.

Consulte exemplos completos de uso do Amazon Bedrock, incluindo ações `SELECT AI` (`runsql`, `showsql`, `narrate`, `chat` e `explainsql`), a função `DBMS_CLOUD_AI.GENERATE`, conversas de múltiplas interações e geração aumentada via recuperação (RAG), na seguinte documentação da Oracle:
+ [Example: Select AI with AWS](https://docs.oracle.com/en/cloud/paas/autonomous-database/serverless/adbsb/select-ai-examples.html#GUID-A2B7D8BB-5CBF-49D4-B12C-8AB54BA7D0A2)
+ [Manage AI Profiles – Use AWS](https://docs.oracle.com/en/cloud/paas/autonomous-database/serverless/adbsb/select-ai-manage-profiles.html#GUID-B71D2617-F079-4982-A979-6C1C8C58B577)
+ [DBMS\_CLOUD\_AI Package Reference](https://docs.oracle.com/en/database/oracle/oracle-database/26/arpls/dbms_cloud_ai1.html)