

# Configurar uma instância de banco de dados para o Amazon RDS Custom para Oracle
<a name="custom-creating"></a>

Você pode criar uma instância de banco de dados do RDS Custom e, em seguida, conectar-se a ela via Secure Shell (SSH) ou AWS Systems Manager.

Consulte mais informações sobre como se conectar e fazer login em instância de banco de dados do RDS Custom para Oracle nos tópicos a seguir.
+ [Conectar-se à sua instância de banco de dados do RDS Custom usando o Session Manager](custom-creating.ssm.md)
+ [Conectar-se à sua instância de banco de dados do RDS Custom via SSH](#custom-creating.ssh)
+ [Fazer login no banco de dados do RDS Custom para Oracle como SYS](custom-creating.sysdba.md)

## Criar uma instância de banco de dados do RDS Custom for Oracle
<a name="custom-creating.create"></a>

Crie uma instância de banco de dados do Amazon RDS Custom for Oracle usando o Console de gerenciamento da AWS ou a AWS CLI. O procedimento é semelhante ao de criação de uma instância de banco de dados do Amazon RDS. Para ter mais informações, consulte [Criar uma instância de banco de dados do Amazon RDS](USER_CreateDBInstance.md).

Se você incluiu parâmetros de instalação em seu manifesto da CEV, sua instância de banco de dados usará a base do Oracle, o Oracle home e o ID e o nome do usuário e do grupo do UNIX/Linux que você especificou. O arquivo `oratab`, criado pelo banco de dados Oracle durante a instalação, aponta para o local real da instalação em vez de para um link simbólico. Quando o RDS Custom para Oracle executa comandos, ele o faz como o usuário configurado do sistema operacional e não como o usuário padrão `rdsdb`. Para obter mais informações, consulte [Etapa 5: Preparar o manifesto CEV](custom-cev.preparing.md#custom-cev.preparing.manifest).

Antes de tentar criar ou conectar-se a uma instância de banco de dados do RDS Custom, conclua as tarefas em [Configurar seu ambiente para o Amazon RDS Custom for Oracle](custom-setup-orcl.md).

### Console
<a name="custom-creating.console"></a>

**Para criar uma instância de banco de dados do RDS Custom for Oracle**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. No painel de navegação, escolha **Bancos de dados**.

1. Escolha **Create database (Criar banco de dados)**.

1. Em **Choose a database creation method** (Escolher um método de criação de banco de dados), selecione **Standard Create** (Criação padrão).

1. Na seção **Opções de mecanismo**, faça o seguinte:

   1. Para **Engine type** (Tipo de mecanismo), escolha **Oracle**.

   1. Para **Database management type** (Tipo de gerenciamento de banco de dados), escolha **Amazon RDS Custom**.

   1. Em **Configurações da arquitetura**, faça um dos seguintes procedimentos:
      + Selecione **Arquitetura multilocatário** para criar um banco de dados de contêiner (CDB). Na criação, o CDB contém uma semente de PDB e um PDB inicial.
**nota**  
A configuração **Arquitetura multilocatário** é compatível somente com o Oracle Database 19c.
      + Desmarque **Arquitetura multilocatário** para criar um não CDB. Um não CDB não pode conter PDBs.

   1. Em **Edição**, selecione **Oracle Enterprise Edition** ou **Oracle Standard Edition 2**.

   1. Para **Versão de mecanismo personalizada**, selecione uma versão de mecanismo personalizada do RDS Custom (CEV) existente. A CEV tem o seguinte formato: `major-engine-version.customized_string`. Um exemplo de identificador é `19.cdb_cev1`.

      Se você selecionou **Arquitetura multilocatário** na etapa anterior, só poderá especificar uma CEV que use o tipo de mecanismo `custom-oracle-ee-cdb` ou `custom-oracle-se2-cdb`. O console filtra as CEVs que foram criadas com diferentes tipos de mecanismo.

1. Em **Templates**, escolha **Production** (Produção).

1. Na seção **Configurações**, faça o seguinte:

   1. Em **Identificador da instância de banco de dados**, insira um nome exclusivo de sua instância de banco de dados.

   1. Em **Nome de usuário principal**, insira um nome de usuário. Você pode recuperar esse valor do console posteriormente. 

      Quando você se conecta a um não CDB, o usuário principal é o usuário do não CDB. Quando você se conecta a um CDB, o usuário principal é o usuário do CDB. Para se conectar à raiz do CDB, faça login no host, inicie um cliente SQL e crie um usuário administrativo com comandos SQL. 

   1. Desmarque a opção **Gerar automaticamente uma senha**.

1. Selecione uma **classe de instância de banco de dados**.

   Para saber as classes compatíveis, consulte . [Suporte a classes de instâncias de banco de dados do RDS Custom for Oracle](custom-oracle-feature-support.md#custom-reqs-limits.instances).

1. Na seção **Storage** (Armazenamento), faça o seguinte:

   1. Em **Tipo de armazenamento**, selecione um tipo de SSD: io1, io2, gp2 ou gp3. Você tem as seguintes opções adicionais:
      + Para io1, io2 ou gp3, selecione uma taxa para **IOPS provisionadas**. O padrão é mil para io1 e io2 e 12 mil para gp3.
      + Para gp3, selecione uma taxa para **Throughput de armazenamento**. O padrão é 500 MiBps.

   1. Em **Armazenamento alocado**, selecione um tamanho de armazenamento. O padrão é de 40 GiB.

1. Em **Conectividade**, especifique sua **nuvem privada virtual (VPC)**, **grupo de sub-rede de banco de dados** e **grupo de segurança VPC (firewall)**.

1. Para **RDS Custom security** (Segurança do RDS Custom), faça o seguinte:

   1. Para **IAM instance profile** (Perfil da instância do IAM), selecione o perfil da instância de banco de dados do RDS Custom for Oracle.

      O perfil da instância do IAM deve começar com `AWSRDSCustom`, por exemplo *AWSRDSCustomInstanceProfileForRdsCustomInstance*.

   1. Para **Encryption** (Criptografia), escolha **Enter a key ARN** (Insira um ARN chave) para listar as chaves do AWS KMS disponíveis. Em seguida, escolha sua chave na lista. 

      Uma chave do AWS KMS é necessária para o RDS Custom. Para ter mais informações, consulte [Etapa 1: Criar ou reutilizar uma chave AWS KMS de criptografia simétrica](custom-setup-orcl.md#custom-setup-orcl.cmk).

1. Em **Opções do banco de dados**, faça o seguinte:

   1. (Opcional) Em **ID do sistema (SID)**, insira um valor para o Oracle SID, que também é o nome do CDB. O SID é o nome da instância do banco de dados do Oracle que gerencia seus arquivos de banco de dados. Nesse contexto, o termo “instância de banco de dados Oracle” se refere exclusivamente à área global do sistema (SGA) e aos processos em segundo plano da Oracle. Se você não especificar um SID, o valor assumirá **RDSCDB** como padrão.

   1. (Opcional) Em **Nome do banco de dados inicial**, insira um nome. O valor padrão é **ORCL**. Na arquitetura multilocatário, o nome inicial do banco de dados é o nome do PDB.
**nota**  
O SID e o nome do PDB devem ser diferentes.

   1. Em **Grupo de opções**, selecione um grupo de opções ou aceite o padrão.
**nota**  
A única opção compatível com o RDS Custom para Oracle é `Timezone`. Para obter mais informações, consulte [Fuso horário da Oracle](custom-managing.timezone.md).

   1. Em **Período de retenção de backup**, selecione um valor. Você não pode selecionar **0 dias**.

   1. Nas seções restantes, especifique suas configurações preferenciais de instâncias de banco de dados do RDS Custom. Para obter informações sobre cada configuração, consulte [Configurações para instâncias de banco de dados](USER_CreateDBInstance.Settings.md). As configurações a seguir não têm suporte e não aparecem no console:
      + **Processor features (Recursos do processador**
      + **Storage autoscaling (Autoscaling do armazenamento**
      + Opção **Password and Kerberos authentication** (Senha e autenticação Kerberos) em **Database authentication** (Autenticação do banco de dados) (somente a **autenticação com senha** tem suporte)
      + **Performance Insights**
      + **Exportações de log**
      + **Habilitar a atualização automática da versão secundária**
      + **Proteção contra exclusão**

1. Selecione **Criar banco de dados**.
**Importante**  
Ao criar uma instância de banco de dados do RDS Custom para Oracle, você pode receber o seguinte erro: The service-linked role is in the process of being created (A função vinculada ao serviço está no processo de criação). Tente novamente mais tarde. Se você fizer isso, aguarde alguns minutos e tente recriar a instância de banco de dados.

   O botão **View credential details** (Visualizar detalhes de credenciais) aparece na página **Databases** (Bancos de dados).

   Para visualizar o nome de usuário primário e a senha da instância de banco de dados do RDS Custom, escolha **View credential details** (Visualizar detalhes de credenciais) .

   Para se conectar à instância de banco de dados como o usuário mestre, use o nome de usuário e a senha exibidos.
**Importante**  
Você não pode visualizar a senha do usuário principal novamente no console. Caso você não a registre, talvez seja necessário alterá-la. Para alterar a senha do usuário principal depois que a instância de banco de dados do RDS Custom estiver disponível, faça login no banco de dados e execute um comando `ALTER USER`. Você pode redefinir a senha usando a opção **Modificar** no console.

1. Escolha **Databases** (Bancos de dados) para visualizar a lista de instâncias de banco de dados do RDS Custom.

1. Escola a instância de banco de dados do RDS Custom que você acabou de criar.

   No console do RDS, os detalhes da nova instância de banco de dados do RDS Custom são exibidos:
   + A instância de banco de dados do RDS Custom apresenta o status **Creating** (Criando) até que esteja criada e pronta para uso. Quando o status muda para **available (disponível)**, você pode se conectar à instância de banco de dados. Dependendo da classe da instância e do armazenamento alocado, pode levar alguns minutos até que a nova instância de banco de dados fique disponível.
   + **Role** (Função) tem o valor **Instância (RDS Custom)**.
   + **RDS Custom automation mode** (Modo de automação do RDS Custom) tem o valor **Full automation** (Automação total). Essa configuração significa que a instância de banco de dados fornece monitoramento automático e recuperação de instâncias.

### AWS CLI
<a name="custom-creating.CLI"></a>

Você cria uma instância de banco de dados do RDS Custom utilizando o comando [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) da AWS CLI.

São necessárias as seguintes opções:
+ `--db-instance-identifier`
+ `--db-instance-class` (para obter uma lista de classes de instância de banco de dados com suporte, consulte [Suporte a classes de instâncias de banco de dados do RDS Custom for Oracle](custom-oracle-feature-support.md#custom-reqs-limits.instances))
+ `--engine engine-type`, em que o *tipo de mecanismo* é `custom-oracle-ee`, `custom-oracle-se2`, `custom-oracle-ee-cdb` ou `custom-oracle-se2-cdb`.
+ `--engine-version cev` (em que *`cev`* é o nome da versão de mecanismo personalizada que você especificou em [Criar um CEV](custom-cev.create.md))
+ `--kms-key-id my-kms-key`
+ `--backup-retention-period days` (em que *`days`* é um valor maior que `0`)
+ `--no-auto-minor-version-upgrade`
+ `--custom-iam-instance-profile AWSRDSCustomInstanceProfile-us-east-1` (em que *`region`* é a Região da AWS onde você está criando sua instância de banco de dados)

O exemplo a seguir cria uma instância de banco de dados do RDS Custom chamada `my-cfo-cdb-instance`. O banco de dados é um CDB com o nome não padrão *MYCDB*. O nome não padrão do PDB é *MYPDB*. Defina o período de retenção de backup como três dias.

**Example**  
Para Linux, macOS ou Unix:  

```
 1. aws rds create-db-instance \
 2.     --engine custom-oracle-ee-cdb \
 3.     --db-instance-identifier my-cfo-cdb-instance \
 4.     --engine-version 19.cdb_cev1 \
 5.     --db-name MYPDB \
 6.     --db-system-id MYCDB \
 7.     --allocated-storage 250 \
 8.     --db-instance-class db.m5.xlarge \
 9.     --db-subnet-group mydbsubnetgroup \
10.     --master-username myuser \
11.     --master-user-password mypassword \
12.     --backup-retention-period 3 \
13.     --port 8200 \
14.     --kms-key-id my-kms-key \
15.     --no-auto-minor-version-upgrade \
16.     --custom-iam-instance-profile AWSRDSCustomInstanceProfile-us-east-1
```
Para Windows:  

```
 1. aws rds create-db-instance ^
 2.     --engine custom-oracle-ee-cdb ^
 3.     --db-instance-identifier my-cfo-cdb-instance ^
 4.     --engine-version 19.cdb_cev1 ^
 5.     --db-name MYPDB ^
 6.     --db-system-id MYCDB ^
 7.     --allocated-storage 250 ^
 8.     --db-instance-class db.m5.xlarge ^
 9.     --db-subnet-group mydbsubnetgroup ^
10.     --master-username myuser ^
11.     --master-user-password mypassword ^
12.     --backup-retention-period 3 ^
13.     --port 8200 ^
14.     --kms-key-id my-kms-key ^
15.     --no-auto-minor-version-upgrade ^
16.     --custom-iam-instance-profile AWSRDSCustomInstanceProfile-us-east-1
```
Especifique uma senha diferente do prompt mostrado aqui como prática recomendada de segurança.

Obtenha detalhes sobre a sua instância com o comando da `describe-db-instances`.

**Example**  

```
1. aws rds describe-db-instances --db-instance-identifier my-cfo-cdb-instance
```
A saída parcial a seguir mostra o mecanismo, os grupos de parâmetros e outras informações.  

```
 1.         {   
 2.             "DBInstanceIdentifier": "my-cfo-cdb-instance",
 3.             "DBInstanceClass": "db.m5.xlarge",
 4.             "Engine": "custom-oracle-ee-cdb",
 5.             "DBInstanceStatus": "available",
 6.             "MasterUsername": "admin",
 7.             "DBName": "MYPDB",
 8.             "DBSystemID": "MYCDB",
 9.             "Endpoint": {
10.                 "Address": "my-cfo-cdb-instance.abcdefghijkl.us-east-1.rds.amazonaws.com",
11.                 "Port": 1521,
12.                 "HostedZoneId": "A1B2CDEFGH34IJ"
13.             },
14.             "AllocatedStorage": 100,
15.             "InstanceCreateTime": "2023-04-12T18:52:16.353000+00:00",
16.             "PreferredBackupWindow": "08:46-09:16",
17.             "BackupRetentionPeriod": 7,
18.             "DBSecurityGroups": [],
19.             "VpcSecurityGroups": [
20.                 {
21.                     "VpcSecurityGroupId": "sg-0a1bcd2e",
22.                     "Status": "active"
23.                 }
24.             ],
25.             "DBParameterGroups": [
26.                 {
27.                     "DBParameterGroupName": "default.custom-oracle-ee-cdb-19",
28.                     "ParameterApplyStatus": "in-sync"
29.                 }
30.             ],
31. ...
```

## Considerações sobre arquitetura multilocatário
<a name="custom-creating.overview"></a>

Se você criar uma instância de banco de dados do Amazon RDS Custom para Oracle com a arquitetura multilocatário Oracle (tipo de mecanismo `custom-oracle-ee-cdb` ou `custom-oracle-se2-cdb`), seu banco de dados será um banco de dados de contêiner (CDB). Se você não especificar a arquitetura multilocatário Oracle, seu banco de dados será não CDB tradicional que usa o tipo de mecanismo `custom-oracle-ee` ou `custom-oracle-se2`. Um não CDB não pode conter bancos de dados conectáveis (PDBs). Para obter mais informações, consulte [Arquitetura de banco de dados para o Amazon RDS Custom para Oracle](custom-oracle.db-architecture.md).

Ao criar uma instância de CDB do RDS Custom para Oracle, considere o seguinte:
+ Só é possível criar um banco de dados multilocatário usando uma CEV do Oracle Database 19c.
+ Só será possível criar uma instância de CDB se a CEV usar o tipo de mecanismo `custom-oracle-ee-cdb` ou `custom-oracle-se2-cdb`.
+ Se você criar uma instância de CDB usando a Standard Edition 2, o CDB poderá conter no máximo 3 PDBs.
+ Por padrão, seu CDB recebe o nome de `RDSCDB`, que também é o nome do ID do Oracle System (Oracle SID). Você pode selecionar um nome diferente.
+ O CDB contém somente um PDB inicial. O nome padrão do PDB é `ORCL`. Você pode selecionar um nome diferente para o PDB inicial, mas o Oracle SID e o nome do PDB não podem ser os mesmos.
+ O RDS Custom para Oracle não fornece APIs para PDBs. Para criar PDBs adicionais, use o comando `CREATE PLUGGABLE DATABASE` do Oracle SQL. O RDS Custom para Oracle não restringe o número de PDBs que você pode criar. Em geral, você é responsável por criar e gerenciar PDBs, como em uma implantação on-premises.
+ Não é possível usar as APIs do RDS para criar, modificar e excluir PDBs: é necessário usar as instruções SQL do Oracle. Se você criar um PDB usando o Oracle SQL, recomendamos gerar um snapshot manual posteriormente em caso de precisar fazer uma recuperação para um ponto no tempo (PITR).
+ Você não pode renomear PDBs existentes usando as APIs do Amazon RDS. Você também não pode renomear o CDB usando o comando `modify-db-instance`.
+ O modo aberto para a raiz do CDB é `READ WRITE` no banco de dados primário e `MOUNTED` em um banco de dados standby montado. O RDS Custom para Oracle tenta abrir todos os PDBs ao abrir o CDB. Se o RDS Custom para Oracle não conseguir abrir todos os PDBs, ele emitirá o evento `tenant database shutdown`.

## Função vinculada ao serviço do RDS Custom
<a name="custom-creating.slr"></a>

Uma *função vinculada ao serviço* concede ao Amazon RDS Custom acesso a recursos em sua Conta da AWS. Isso facilita a configuração do RDS Custom, pois você não precisa adicionar manualmente as permissões necessárias. O RDS Custom define as permissões de suas funções vinculadas a serviços e, exceto se definido de outra maneira, somente o RDS Custom pode assumir suas funções. As permissões definidas incluem a política de confiança e a política de permissões, e essa política de permissões não pode ser anexada a nenhuma outra entidade do IAM.

Quando você cria uma instância de banco de dados do RDS Custom, as funções vinculadas a serviços do Amazon RDS e do RDS Custom são criadas (se ainda não existirem) e utilizadas. Para ter mais informações, consulte [Usar funções vinculadas ao serviço do Amazon RDS](UsingWithRDS.IAM.ServiceLinkedRoles.md).

Ao criar uma instância de banco de dados do RDS Custom for Oracle pela primeira vez, você pode receber o seguinte erro: The service-linked role is in the process of being created (A função vinculada ao serviço está no processo de criação). Tente novamente mais tarde. Se você fizer isso, aguarde alguns minutos e tente recriar a instância de banco de dados.

## Instalar componentes de software adicionais em uma instância de banco de dados do RDS Custom para Oracle
<a name="custom-install-add-software"></a>

Em uma instância de banco de dados recém-criada, seu ambiente de banco de dados inclui binários Oracle, um banco de dados e um receptor de banco de dados. Talvez você queira instalar software adicional no sistema operacional host da instância de banco de dados. Por exemplo, talvez você queira instalar o Oracle Application Express (APEX), o agente do Oracle Enterprise Manager (OEM) ou o agente do Guardium S-TAP. Para obter diretrizes e instruções de alto nível, consulte a publicação detalhada no blog da AWS [Instalar componentes de software adicionais no Amazon RDS Custom para Oracle](https://aws.amazon.com//blogs/database/install-additional-software-components-on-amazon-rds-custom-for-oracle/).

# Conectar-se à sua instância de banco de dados do RDS Custom usando o Session Manager
<a name="custom-creating.ssm"></a>

Depois de criar sua instância de banco de dados do RDS Custom, você pode conectar-se a ela usando o AWS Systems Manager Session Manager. Essa é a técnica preferida quando sua instância de banco de dados não está acessível publicamente.

O Session Manager possibilita que você acesse instâncias do Amazon EC2 por meio de um shell baseado no navegador ou viaAWS CLI. Para ter mais informações, consulte o [AWS Systems Manager Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager.html).

## Console
<a name="custom-managing.ssm.console"></a>

**Para conectar-se à sua instância de banco de dados usando o Session Manager**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. No painel de navegação, escolha **Databases** (Bancos de dados) e a instância de banco de dados do RDS Custom à qual você deseja se conectar.

1. Escolher **configuração**.

1. Observe o **Resource ID** (ID do recurso) da instância de banco de dados. Por exemplo, o ID do recurso pode ser `db-ABCDEFGHIJKLMNOPQRS0123456`.

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação, escolha **Instances (Instâncias)**.

1. Procure o nome da sua instância do EC2 e depois clique no ID de instância associado a ela. Por exemplo, o ID da instância pode ser `i-abcdefghijklm01234`.

1. Selecione **Conectar**.

1. Escolha **Session Manager**.

1. Selecione **Conectar**.

   Uma janela é aberta para a sua sessão.

## AWS CLI
<a name="custom-managing.ssm.CLI"></a>

Você pode conectar-se à sua instância de banco de dados do RDS Custom usando a AWS CLI. Essa técnica requer o plugin Session Manager para a AWS CLI. Para saber como instalar o plugin, consulte [Instalar o plugin Session Manager para a AWS CLI](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html).

Para encontrar o ID de recurso de banco de dados da sua instância de banco de dados do RDS Custom, use `aws rds [describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html)`.

```
aws rds describe-db-instances \
    --query 'DBInstances[*].[DBInstanceIdentifier,DbiResourceId]' \
    --output text
```

A saída de exemplo a seguir mostra o ID de recurso da sua instância do RDS Custom. O prefixo é `db-`.

```
db-ABCDEFGHIJKLMNOPQRS0123456
```

Para encontrar o ID de instância do EC2 da sua instância de banco de dados, use `aws ec2 describe-instances`. O exemplo a seguir usa `db-ABCDEFGHIJKLMNOPQRS0123456` para o ID do recurso.

```
aws ec2 describe-instances \
    --filters "Name=tag:Name,Values=db-ABCDEFGHIJKLMNOPQRS0123456" \
    --output text \
    --query 'Reservations[*].Instances[*].InstanceId'
```

O exemplo de saída a seguir mostra o ID da instância do EC2.

```
i-abcdefghijklm01234
```

Use o comando `aws ssm start-session`, fornecendo o ID da instância do EC2 no parâmetro `--target`.

```
aws ssm start-session --target "i-abcdefghijklm01234"
```

Um resultado bem-sucedido tem a seguinte aparência.

```
Starting session with SessionId: yourid-abcdefghijklm1234
[ssm-user@ip-123-45-67-89 bin]$
```

## Conectar-se à sua instância de banco de dados do RDS Custom via SSH
<a name="custom-creating.ssh"></a>

O Secure Shell Protocol (SSH) é um protocolo de rede compatível com a comunicação criptografada em uma rede não segura. Depois de criar sua instância de banco de dados do RDS Custom, você pode se conectar a ela usando um cliente ssh. Para ter mais informações, consulte [Conexão à sua instância do Linux utilizando SSH](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html).

A técnica de conexão SSH depende de a instância de banco de dados ser privada, o que significa que ela não aceita conexões da Internet pública. Nesse caso, você deve usar o tunelamento SSH para conectar o utilitário ssh à sua instância. Essa técnica transporta dados com um fluxo de dados dedicado (túnel) dentro de uma sessão SSH existente. Você pode configurar o tunelamento SSH usando AWS Systems Manager.

**nota**  
Várias estratégias são compatíveis para acessar instâncias privadas. Para saber como conectar um cliente ssh a instâncias privadas usando bastion hosts, consulte [Linux Bastion Hosts na AWS](https://aws.amazon.com/solutions/implementations/linux-bastion/). Para saber como configurar o encaminhamento de portas, consulte [Encaminhamento de portas usando o AWS Systems Manager Session Manager](https://aws.amazon.com/blogs/aws/new-port-forwarding-using-aws-system-manager-sessions-manager/).

Se sua instância de banco de dados estiver em uma sub-rede pública e tiver a configuração disponível publicamente, nenhum tunelamento SSH será necessário. Você pode se conectar a SSH da mesma forma que faria com uma instância pública do Amazon EC2.

Para conectar um cliente ssh à sua instância de banco de dados, conclua as seguintes etapas:

1. [Etapa 1: Configurar sua instância de banco de dados para permitir conexões SSH](#custom-managing.ssh.port-22)

1. [Etapa 2: Recuperar sua chave secreta SSH e o ID da instância do EC2](#custom-managing.ssh.obtaining-key)

1. [Etapa 3: Conectar-se à sua instância do EC2 usando o utilitário ssh](#custom-managing.ssh.connecting)

### Etapa 1: Configurar sua instância de banco de dados para permitir conexões SSH
<a name="custom-managing.ssh.port-22"></a>

Para garantir que sua instância de banco de dados possa aceitar conexões SSH, faça o seguinte:
+ Certifique-se de que o grupo de segurança da instância de banco de dados permita conexões de entrada na porta 22 para TCP.

  Para saber mais sobre como configurar o grupo de segurança de sua instância de banco de dados, consulte [Controlar acesso com grupos de segurança](Overview.RDSSecurityGroups.md).
+ Se você não planeja usar o tunelamento SSH, sua instância de banco de dados deve residir em uma sub-rede pública e estar acessível publicamente.

  No console, o campo relevante é **Acessível publicamente** na guia **Conectividade e segurança** da página de detalhes do banco de dados. Para conferir suas configurações na CLI, execute o seguinte comando:

  ```
  aws rds describe-db-instances \
  --query 'DBInstances[*].{DBInstanceIdentifier:DBInstanceIdentifier,PubliclyAccessible:PubliclyAccessible}' \
  --output table
  ```

  Para alterar as configurações de acessibilidade de sua instância de banco de dados, consulte n[Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md).

### Etapa 2: Recuperar sua chave secreta SSH e o ID da instância do EC2
<a name="custom-managing.ssh.obtaining-key"></a>

Para conectar-se à instância de banco de dados usando SSH, você precisa do par de chaves associado a essa instância. O RDS Custom cria o par de chaves SSH em seu nome, usando a convenção de nomenclatura `do-not-delete-rds-custom-ssh-privatekey-resource_id-uuid` ou `rds-custom!oracle-do-not-delete-resource_id-uuid-ssh-privatekey`. O AWS Secrets Manager armazena sua chave privada SSH como um segredo.

Recupere sua chave secreta SSH usando o Console de gerenciamento da AWS ou a AWS CLI. Se sua instância tem um DNS público e você não pretende usar o tunelamento SSH, recupere também o nome do DNS. Você especifica o nome DNS para conexões públicas.

#### Console
<a name="custom-managing.ssh.obtaining-key.console"></a>

**Como recuperar a chave SSH secreta**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. No painel de navegação, escolha **Databases** (Bancos de dados) e a instância de banco de dados do RDS Custom à qual você deseja se conectar.

1. Escolher **configuração**.

1. Observe o valor de **Resource ID** (ID do recurso). Por exemplo, o ID do recurso de instância de banco de dados pode ser `db-ABCDEFGHIJKLMNOPQRS0123456`.

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação, escolha **Instances (Instâncias)**.

1. Localize o nome da sua instância do EC2 e escolha o ID de instância associado a ela. Por exemplo, o ID da instância do EC2 pode ser `i-abcdefghijklm01234`.

1. Em **Details** (Detalhes), localize **Key pair name** (Nome do par de chaves). O nome do par inclui o ID de recurso de instância de banco de dados. Por exemplo, o nome do par pode ser `do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c` ou `rds-custom!oracle-do-not-delete-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c-ssh-privatekey`.

1. Se sua instância do EC2 for pública, observe o **DNS IPv4 público**. Para o exemplo, o endereço do Sistema de Nomes de Domínio (DNS) público pode ser `ec2-12-345-678-901.us-east-2.compute.amazonaws.com`.

1. Abra o console do AWS Secrets Manager em [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/).

1. Escolha o segredo com nome idêntico ao seu par de chaves.

1. Escolha **Recuperar valor do segredo**.

1. Copie a chave privada SSH em um arquivo de texto e salve o arquivo com a extensão `.pem`. Por exemplo, salve o arquivo como `/tmp/do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c.pem` ou `/tmp/rds-custom!oracle-do-not-delete-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c-ssh-privatekey.pem`.

#### AWS CLI
<a name="custom-managing.ssh.obtaining-key.CLI"></a>

Para recuperar a chave privada SSH e salvá-la em um arquivo .pem, você pode usar a AWS CLI.

1. Encontre o ID de recurso de banco de dados de sua instância de banco de dados do RDS Custom usando `aws rds [describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html)`.

   ```
   aws rds describe-db-instances \
       --query 'DBInstances[*].[DBInstanceIdentifier,DbiResourceId]' \
       --output text
   ```

   A saída de exemplo a seguir mostra o ID de recurso da sua instância do RDS Custom. O prefixo é `db-`.

   ```
   db-ABCDEFGHIJKLMNOPQRS0123456
   ```

1. Encontre o ID de instância do EC2 da sua instância de banco de dados usando `aws ec2 describe-instances`. O exemplo a seguir usa `db-ABCDEFGHIJKLMNOPQRS0123456` para o ID do recurso.

   ```
   aws ec2 describe-instances \
       --filters "Name=tag:Name,Values=db-ABCDEFGHIJKLMNOPQRS0123456" \
       --output text \
       --query 'Reservations[*].Instances[*].InstanceId'
   ```

   O exemplo de saída a seguir mostra o ID da instância do EC2.

   ```
   i-abcdefghijklm01234
   ```

1. Para encontrar o nome da chave, especifique o ID da instância do EC2. O exemplo a seguir descreve a instância do EC2 `i-0bdc4219e66944afa`.

   ```
   aws ec2 describe-instances \
       --instance-ids i-0bdc4219e66944afa \
       --output text \
       --query 'Reservations[*].Instances[*].KeyName'
   ```

   A saída de exemplo a seguir mostra o nome da chave, que usa o formato de nomenclatura `do-not-delete-rds-custom-ssh-privatekey-resource_id-uuid` ou `rds-custom!oracle-do-not-delete-resource_id-uuid-ssh-privatekey`.

   ```
   do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c
   rds-custom!oracle-do-not-delete-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c-ssh-privatekey
   ```

1. Salve a chave privada em um arquivo .pem com o nome dessa chave usando `aws secretsmanager`. 

   O exemplo a seguir salva a chave `do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c` em um arquivo no diretório `/tmp`.

   ```
   aws secretsmanager get-secret-value \
       --secret-id do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c \
       --query SecretString \
       --output text >/tmp/do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c.pem
   ```

   O exemplo a seguir salva a chave `rds-custom!oracle-do-not-delete-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c-ssh-privatekey` em um arquivo no diretório `/tmp`.

   ```
   aws secretsmanager get-secret-value \
       --secret-id rds-custom!oracle-do-not-delete-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c-ssh-privatekey \
       --query SecretString \
       --output text >/tmp/rds-custom!oracle-do-not-delete-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c-ssh-privatekey.pem
   ```

### Etapa 3: Conectar-se à sua instância do EC2 usando o utilitário ssh
<a name="custom-managing.ssh.connecting"></a>

Sua técnica de conexão depende do fato de você estar se conectando a uma instância de banco de dados privada ou a uma instância pública. Uma conexão privada exige que você configure o tunelamento SSH por meio de AWS Systems Manager.

**Como se conectar à sua instância do EC2 usando o utilitário ssh**

1. Para conexões privadas, modifique seu arquivo de configuração SSH para comandos proxy para AWS Systems Manager Session Manager. Para conexões públicas, vá para a etapa 2.

   Adicione as linhas a seguir a `~/.ssh/config`. Essas linhas substituem comandos SSH para hosts cujos nomes começam com `i-` ou `mi-`.

   ```
   Host i-* mi-*
       ProxyCommand sh -c "aws ssm start-session --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p'"
   ```

1. Mude para o diretório que contém seu arquivo .pem. Usando `chmod`, defina as permissões como `400`.

   O exemplo a seguir muda para o diretório `/tmp` e define permissões para o arquivo .pem `do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c.pem`.

   ```
   cd /tmp
   chmod 400 do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c.pem
   ```

   O exemplo a seguir muda para o diretório `/tmp` e define permissões para o arquivo .pem `rds-custom!oracle-do-not-delete-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c-ssh-privatekey.pem`.

   ```
   cd /tmp
   chmod 400 rds-custom!oracle-do-not-delete-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c-ssh-privatekey.pem
   ```

1. Execute o utilitário ssh, especificando o arquivo .pem e o nome do DNS público (para conexões públicas) ou o ID da instância do EC2 (para conexões privadas). Faça login como usuário `ec2-user`.

   O exemplo a seguir estabelece conexão com uma instância pública usando o nome DNS `ec2-12-345-678-901.us-east-2.compute.amazonaws.com`.

   ```
   # .pem file using naming prefix do-not-delete
   ssh -i \
     "do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c.pem" \
     ec2-user@ec2-12-345-678-901.us-east-2.compute.amazonaws.com
   
   # .pem file using naming prefix rds-custom!oracle-do-not-delete
   ssh -i \
     "rds-custom!oracle-do-not-delete-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c-ssh-privatekey.pem" \
     ec2-user@ec2-12-345-678-901.us-east-2.compute.amazonaws.com
   ```

   O exemplo a seguir estabelece conexão com uma instância privada usando o ID de instância do EC2 `i-0bdc4219e66944afa`.

   ```
   # .pem file using naming prefix do-not-delete
   ssh -i \
     "do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c.pem" \
     ec2-user@i-0bdc4219e66944afa
   
   # .pem file using naming prefix rds-custom!oracle-do-not-delete
   ssh -i \
     "rds-custom!oracle-do-not-delete-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c-ssh-privatekey.pem" \
     ec2-user@i-0bdc4219e66944afa
   ```

# Fazer login no banco de dados do RDS Custom para Oracle como SYS
<a name="custom-creating.sysdba"></a>

Depois de criar sua instância de banco de dados do RDS Custom, você pode fazer login no banco de dados do Oracle como usuário`SYS`, o que confere a você privilégios `SYSDBA`. Você tem as seguintes opções de login:
+ Obtenha a senha `SYS` do Secrets Manager e especifique essa senha no seu cliente SQL.
+ Use a autenticação do sistema operacional para fazer login em seu banco de dados. Nesse caso, você não precisa de uma senha.

## Encontrar a senha do SYS para o banco de dados do RDS Custom para Oracle
<a name="custom-creating.sysdba.pwd"></a>

Você pode fazer login em seu banco de dados Oracle como `SYS` ou `SYSTEM` ou especificando o nome de usuário principal em uma chamada de API. A senha para `SYS` e `SYSTEM` é armazenada no Secrets Manager. 

O segredo usa o formato de nomenclatura `do-not-delete-rds-custom-resource_id-uuid` ou `rds-custom!oracle-do-not-delete-resource_id-uuid`. Você pode encontrar a senha usando o Console de gerenciamento da AWS.

### Console
<a name="custom-creating.sysdba.pwd.console"></a>

**Como encontrar a senha SYS para seu banco de dados no Secrets Manager**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. No console do RDS, conclua as seguintes etapas:

   1. No painel de navegação, escolha **Bancos de dados**.

   1. Selecione o nome da sua instância de banco de dados do RDS Custom para Oracle.

   1. Escolher **configuração**.

   1. Copie o valor abaixo do **ID do recurso**. Por exemplo, seu ID de recurso pode ser **db-ABC12CDE3FGH4I5JKLMNO6PQR7**.

1. Abra o console do Secrets Manager em [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/).

1. No console do Secrets Manager, conclua as seguintes etapas:

   1. No painel de navegação à esquerda, selecione **Segredos**.

   1. Filtre os segredos pelo ID do recurso que você copiou na Etapa 2.d.

   1. Escolha o segredo que usa o formato de nomenclatura **do-not-delete-rds-custom-*resource\$1id*-*uuid*** ou **rds-custom\$1oracle-do-not-delete-*resource\$1id*-*uuid***. O *resource\$1id* é o ID do recurso que você copiou na etapa 2.d.

      Por exemplo, se seu ID de recurso for **db-ABC12CDE3FGH4I5JKLMNO6PQR7** e seu UUID for **1234ab**, seu segredo será denominado **do-not-delete-rds-custom-db-ABC12CDE3FGH4I5JKLMNO6PQR7-1234ab** ou **rds-custom\$1oracle-do-not-delete-db-ABC12CDE3FGH4I5JKLMNO6PQR7-1234ab**.

   1. Na seção **Valor de segredo**, selecione **Recuperar o valor de segredo**.

   1. Em **Chave/valor**, copie o valor da **senha**.

1. Instale o SQL\$1Plus em sua instância de banco de dados e faça login em seu banco de dados como `SYS`. Para ter mais informações, consulte [Etapa 3: Conectar seu cliente SQL a uma instância de banco de dados Oracle.](CHAP_GettingStarted.CreatingConnecting.Oracle.md#CHAP_GettingStarted.Connecting.Oracle).

## Fazer login no banco de dados do RDS Custom para Oracle usando a autenticação do sistema operacional
<a name="custom-creating.sysdba.pwd"></a>

O usuário do sistema operacional `rdsdb` é responsável pelos binários do banco de dados Oracle. Você pode alternar para o usuário `rdsdb` e fazer login no seu banco de dados do RDS Custom para Oracle sem uma senha.

1. Conecte-se à sua instância de banco de dados com AWS Systems Manager. Para obter mais informações, consulte [Conectar-se à sua instância de banco de dados do RDS Custom usando o Session Manager](custom-creating.ssm.md).

1. Alterne para o usuário `rdsdb`.

   ```
   sudo su - rdsdb
   ```

1. Faça login em seu banco de dados usando a autenticação do sistema operacional. É possível usar `sqlplus / as sysdba` ou o alias `sql`.

   ```
   $ sqlplus / as sysdba
   
   SQL*Plus: Release 21.0.0.0.0 - Production on Wed Apr 12 20:11:08 2023
   Version 21.9.0.0.0
   
   Copyright (c) 1982, 2020, Oracle.  All rights reserved.
   
   
   Connected to:
   Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
   Version 19.10.0.0.0
   ```

   Você também pode usar o alias `sql`:

   ```
   $ sql
   ```