

# Configuración de una instancia de base de datos para Amazon RDS Custom para Oracle
<a name="custom-creating"></a>

Puede crear una instancia de base de datos de RDS Custom y luego conectarse a ella mediante Secure Shell (SSH) o AWS Systems Manager.

Para obtener más información sobre la conexión y el inicio de sesión en una instancia de base de datos de RDS Custom para Oracle, consulte los siguientes temas.
+ [Conexión a su instancia de base de datos de RDS Custom mediante Session Manager](custom-creating.ssm.md)
+ [Conexión a la instancia de base de datos de RDS Custom mediante SSH](#custom-creating.ssh)
+ [Inicio de sesión en la base de datos de RDS Custom para Oracle como SYS](custom-creating.sysdba.md)

## Creación de una instancia de base de datos de RDS Custom for Oracle
<a name="custom-creating.create"></a>

Cree una instancia de base de datos de Amazon RDS Custom for Oracle mediante la Consola de administración de AWS o la AWS CLI. El procedimiento es similar al que se debe seguir para crear una instancia de base de datos de Amazon RDS. Para obtener más información, consulte [Creación de una instancia de base de datos de Amazon RDS](USER_CreateDBInstance.md).

Si ha incluido parámetros de instalación en el manifiesto CEV, la instancia de base de datos utilizará la base de Oracle, el directorio raíz de Oracle y el ID y el nombre del usuario y grupo de UNIX/Linux que especificó. El archivo `oratab`, que Oracle Database crea durante la instalación, apunta a la ubicación real de la instalación en lugar de a un enlace simbólico. Cuando RDS Custom para Oracle ejecuta comandos, los ejecuta como el usuario del sistema operativo configurado en lugar de como el usuario `rdsdb` predeterminado. Para obtener más información, consulte [Paso 5: preparar el manifiesto de la CEV](custom-cev.preparing.md#custom-cev.preparing.manifest).

Antes de que pueda crear o conectarse a una instancia de base de datos de RDS Custom, asegúrese de completar las tareas en [Configuración del entorno para Amazon RDS Custom for Oracle](custom-setup-orcl.md).

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

**Para crear una instancia de base de datos de RDS Custom for Oracle**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. En el panel de navegación, elija **Databases** (Bases de datos).

1. Elija **Create database (Crear base de datos)**.

1. En **Choose a database creation method** (Elegir un método de creación de base de datos), seleccione **Standard Create** (Creación estándar).

1. En la sección **Opciones de motor**, haga lo siguiente:

   1. En **Engine type** (Tipo de motor), elija **Oracle**.

   1. Para **Database management type** (Tipo de administración de base de datos), elija **Amazon RDS Custom**.

   1. En **Configuración de la arquitectura**, realice una de las siguientes operaciones:
      + Seleccione **Arquitectura multiinquilino** para crear una base de datos de contenedores (CDB). En el momento de la creación, su CDB contiene un origen de PDB y una PDB inicial.
**nota**  
La configuración **Arquitectura multitenencia** solo se admite para Oracle Database 19c.
      + Desmarque **Arquitectura multiinquilino** para crear una arquitectura que no sea CDB. Un producto que no sea CDB no puede contener PDB.

   1. En **Edición**, elija **Oracle Enterprise Edition** o **Oracle Standard Edition 2**.

   1. En **Versión del motor personalizada**, elija una versión del motor personalizada de RDS Custom (CEV). Una CEV tiene el siguiente formato: `major-engine-version.customized_string`. Un identificador de ejemplo es `19.cdb_cev1`.

      Si ha elegido **Arquitectura multitenencia** en el paso anterior, solo puede especificar una CEV que use el tipo de motor `custom-oracle-ee-cdb` o `custom-oracle-se2-cdb`. La consola filtra las CEV que se crearon con los diferentes tipos de motor.

1. En **Templates** (Plantillas), elija **Production** (Producción).

1. En la sección **Settings**, realice lo siguiente:

   1. En **Identificador de instancias de bases de datos**, escriba el nombre único de la instancia de base de datos.

   1. En **Nombre de usuario maestro**, escriba un nombre de usuario. Puede recuperar este valor de la consola más adelante. 

      Si se conecta a una base de datos no CDB, el usuario maestro es el usuario de una base de datos no CDB. Si se conecta a una CDB, el usuario maestro es el usuario de la PDB. Para conectarse a la raíz de la CDB, inicie sesión en el host, inicie un cliente SQL y cree un usuario administrativo con comandos SQL. 

   1. Desmarque **Generar automáticamente una contraseña**.

1. Seleccione su **Clase de instancia de base de datos**.

   Para ver las clases compatibles, consulte . [Compatibilidad de clases de instancias de base de datos con RDS Custom para Oracle](custom-oracle-feature-support.md#custom-reqs-limits.instances).

1. En la sección **Almacenamiento**, haga lo siguiente:

   1. En **Tipo de almacenamiento**, elija un tipo de SSD: io1, io2, gp2 o gp3. Dispone de las siguientes opciones adicionales:
      + Para io1, io2 o gp3, elija una tasa para las **IOPS aprovisionadas**. El valor predeterminado es 1000 para io1 e io2 y 12 000 para gp3.
      + Para gp3, elija una tasa de **Rendimiento de almacenamiento**. El valor predeterminado es 500 MiBps.

   1. En **Almacenamiento asignado**, elija un tamaño de almacenamiento. El valor predeterminado es 40 GiB.

1. En **Conectividad**, especifique su **Nube privada virtual (VPC)**, el **Grupo de subred de base de datos** y el **Grupo de seguridad de VPC (firewall)**.

1. Para **RDS Custom security** (Seguridad de RDS Custom), realice una de las siguientes opciones:

   1. Para **IAM instance profile** (Perfil de instancias de IAM), elija el perfil de instancias para la instancia de base de datos de RDS Custom for Oracle.

      El perfil de instancias de IAM debe comenzar con `AWSRDSCustom`, por ejemplo, *WSRDSCustomInstanceProfileForRdsCustomInstance*.

   1. Para **Encryption** (Cifrado), elija **Enter a key ARN** (Ingresar una ARN de clave) para enumerar las claves de AWS KMS disponibles. A continuación, elija la clave de la lista. 

      Se requiere una clave AWS KMS para RDS Custom. Para obtener más información, consulte [Paso 1: crear o reutilizar una clave AWS KMS de cifrado simétrica](custom-setup-orcl.md#custom-setup-orcl.cmk).

1. En **Opciones de la base de datos**, haga lo siguiente:

   1. (Opcional) En **ID del sistema (SID)**, introduzca un valor para el SID de Oracle, que también es el nombre de su CDB. El SID es el nombre de la instancia de base de datos de Oracle que administra los archivos de la base de datos. En este contexto, el término «instancia de base de datos de Oracle» se refiere exclusivamente al área global del sistema (SGA) y a los procesos en segundo plano de Oracle. Si no especifica un valor de SID, se utiliza el valor predeterminado de **RDSCDB**.

   1. (Opcional) En **Nombre de base de datos inicial**, escriba un nombre. El valor predeterminado es **ORCL**. En la arquitectura multiinquilino, el nombre de base de datos inicial es el nombre de PDB.
**nota**  
Los nombres de SID y PDB deben ser diferentes.

   1. En **Grupo de opciones**, elija un grupo de opciones o acepte el predeterminado.
**nota**  
La única opción admitida en RDS Custom para Oracle es `Timezone`. Para obtener más información, consulte [Zona horaria Oracle](custom-managing.timezone.md).

   1. En **Periodo de retención de copia de seguridad**, elija un valor. No se puede elegir **0 días**.

   1. Para las secciones restantes, especifique la configuración de la instancia de base de datos de RDS Custom que prefiera. Para obtener más información acerca de cada configuración, consulte [Configuración de instancias de base de datos](USER_CreateDBInstance.Settings.md). La siguiente configuración no aparece en la consola y no se admite:
      + **Processor features (Características del procesador**
      + **Storage autoscaling (Escalado automático de almacenamiento**
      + Opción de **Password and Kerberos authentication** (autenticación de Contraseña y Kerberos) en la **Database authentication** (Autenticación de base de datos) (solo se admite **Password authentication** [Autenticación de contraseña])
      + **Performance Insights (Información sobre rendimiento**
      + **Log exports (Exportaciones de registros**
      + **Enable auto minor version upgrade (Habilitar la actualización automática de la versión secundaria**
      + **Deletion protection (Protección contra eliminación**

1. Elija **Creación de base de datos**.
**importante**  
Al crear una instancia de base de datos de RDS Custom para Oracle, podría recibir el siguiente error: The service-linked role is in the process of being created. (El rol vinculado al servicio está en proceso de creación). Inténtelo de nuevo más tarde. Si lo hace, espere unos minutos e intente crear la instancia de base de datos de nuevo.

   El botón **View credential details** (Ver detalles de la credencial) aparece en la página **Databases** (Bases de datos).

   Para ver el nombre de usuario y la contraseña maestros para la instancia de base de datos de RDS Custom, elija **View credential details** (Ver detalles de credenciales).

   Para conectarse a la instancia de base de datos como usuario maestro, utilice el nombre de usuario y la contraseña que aparecen.
**importante**  
No puede ver la contraseña de usuario maestro de nuevo en la consola. Si no la registra, es posible que tenga que cambiarla. Para cambiar la contraseña del usuario maestro una vez que la instancia de base de datos de RDS Custom esté disponible, inicie sesión en la base de datos y ejecute un comando `ALTER USER`. No puede restablecer la contraseña mediante la opción **Modificar** en la consola.

1. Elija **Databases** (Bases de datos) para ver la lista de instancias de base de datos de RDS Custom.

1. Elija la instancia de base de datos de RDS Custom que acaba de crear.

   En la consola de RDS, aparecen los detalles de la nueva instancia de base de datos de RDS Custom:
   + La instancia de base de datos tiene un estado de **creating** (creación) hasta que la instancia de base de datos de RDS Custom se crea y está lista para su uso. Cuando el estado cambie a **available** (disponible), podrá conectarse a la instancia de base de datos. En función de la clase de instancia y el almacenamiento asignado, la nueva instancia de base de datos puede tardar varios minutos en estar disponible.
   + El **Role** (Rol) tiene el valor **Instance (RDS Custom)** [Instancia (RDS Custom]).
   + El **RDS Custom automation mode** (Modo de automatización de RDS Custom) tiene el valor **Full automation** (Automatización completa). Esta configuración significa que la instancia de base de datos proporciona monitoreo automático y recuperación de instancias.

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

Puede crear una instancia de base de datos de RDS Custom mediante el comando AWS CLI [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html).

Se requieren las siguientes opciones:
+ `--db-instance-identifier`
+ `--db-instance-class` (para obtener una lista de clases de instancias admitidas, consulte [Compatibilidad de clases de instancias de base de datos con RDS Custom para Oracle](custom-oracle-feature-support.md#custom-reqs-limits.instances))
+ `--engine engine-type`, donde *engine-type* es `custom-oracle-ee`, `custom-oracle-se2`, `custom-oracle-ee-cdb` o `custom-oracle-se2-cdb`
+ `--engine-version cev` (donde *`cev`* es el nombre de la versión del motor personalizada que especificó en [Creación de una CEV](custom-cev.create.md))
+ `--kms-key-id my-kms-key`
+ `--backup-retention-period days` (donde *`days`* es un valor mayor que `0`)
+ `--no-auto-minor-version-upgrade`
+ `--custom-iam-instance-profile AWSRDSCustomInstanceProfile-us-east-1` (donde *`region`* es la Región de AWS donde está creando su instancia de base de datos)

El siguiente ejemplo crea una instancia de base de datos de RDS Custom denominada `my-cfo-cdb-instance`. La base de datos es una CDB con el nombre no predeterminado *MYCDB*. El nombre de PDB no predeterminado es *MYPDB*. El periodo de retención de copia de seguridad es de tres días.

**Example**  
Para Linux, macOS o 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 una contraseña distinta de la que se muestra aquí como práctica recomendada de seguridad.

Obtenga detalles sobre la instancia mediante el comando `describe-db-instances`.

**Example**  

```
1. aws rds describe-db-instances --db-instance-identifier my-cfo-cdb-instance
```
En la siguiente salida parcial se muestra el motor, los grupos de parámetros y otra información.  

```
 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. ...
```

## Consideraciones sobre la arquitectura multitenencia
<a name="custom-creating.overview"></a>

Si crea una instancia de base de datos de Amazon RDS Custom para Oracle con la arquitectura multitenencia de Oracle (tipo de motor `custom-oracle-ee-cdb` o `custom-oracle-se2-cdb`), la base de datos es una base de datos de contenedores (CDB). Si no especifica la arquitectura multitenencia de Oracle, la base de datos será una base de datos tradicional no CDB que utiliza el tipo de motor `custom-oracle-ee` o `custom-oracle-se2`. Una base de datos que no es CDB no puede contener bases de datos conectables (PDB, por sus siglas en inglés). Para obtener más información, consulte [Arquitectura de base de datos de Amazon RDS Custom para Oracle](custom-oracle.db-architecture.md).

Al crear una instancia de CDB de RDS Custom para Oracle, tenga en cuenta lo siguiente:
+ Puede crear una base de datos multitenencia únicamente a partir de un CEV de base de datos Oracle 19c.
+ Puede crear una instancia de CDB solo si la CEV usa el tipo de motor `custom-oracle-ee-cdb` o `custom-oracle-se2-cdb`.
+ Si crea una instancia de CDB con Standard Edition 2, la CDB puede contener un máximo de 3 PDB.
+ De forma predeterminada, la CDB se denomina `RDSCDB`, que también es el nombre del ID del sistema de Oracle (SID de Oracle). Puede elegir un nombre diferente.
+ Su CDB contiene solo una PDB inicial. El nombre predeterminado de la PDB es `ORCL`. Puede elegir un nombre diferente para su PDB inicial, pero el SID de Oracle y el nombre de PDB no pueden ser idénticos.
+ RDS Custom para Oracle no proporciona API para PDB. Para crear PDB adicionales, utilice el comando `CREATE PLUGGABLE DATABASE` de  Oracle SQL. RDS Custom para Oracle no restringe la cantidad de PDB que puede crear. En general, usted es responsable de crear y administrar las PDB, como en una implementación local.
+ No puede usar las API de RDS para crear, modificar ni eliminar PDB: debe usar instrucciones SQL de Oracle. Al crear una PDB mediante Oracle SQL, se recomienda realizar una instantánea manual después en caso de que tenga que realizar una recuperación en un momento dado (PITR).
+ No puede cambiar el nombre de las PDB existentes mediante las API de Amazon RDS. Tampoco puede cambiar el nombre de la CDB con el comando `modify-db-instance`.
+ El modo abierto de la raíz de la CDB es `READ WRITE` en la base de datos principal y `MOUNTED` en una base de datos en espera montada. RDS Custom para Oracle intenta abrir todas las PDB al abrir la CDB. Si RDS Custom para Oracle no puede abrir todas las PDB, emite el evento `tenant database shutdown`.

## Rol vinculado al servicio de RDS Custom
<a name="custom-creating.slr"></a>

Un *service-linked role* (rol vinculado al servicio) le otorga a Amazon RDS Custom acceso a los recursos de su Cuenta de AWS. Facilita el uso de RDS Custom porque no tiene que agregar manualmente los permisos necesarios. RDS Custom define los permisos de sus roles vinculados al servicio y, a menos que se defina lo contrario, solo RDS Custom puede asumir sus roles. Los permisos definidos incluyen las políticas de confianza y de permisos, y que la política de permisos no se puede asociar a ninguna otra entidad de IAM.

Cuando crea una instancia de base de datos de RDS Custom, se crean y utilizan los roles vinculados a servicios de Amazon RDS y RDS Custom (si aún no existen). Para obtener más información, consulte [Uso de roles vinculados a servicios de Amazon RDS](UsingWithRDS.IAM.ServiceLinkedRoles.md).

La primera vez que crea una instancia de base de datos de RDS Custom for Oracle, podría recibir el siguiente error: he service-linked role is in the process of being created. (El rol vinculado al servicio está en proceso de creación). Inténtelo de nuevo más tarde. Si lo hace, espere unos minutos e intente crear la instancia de base de datos de nuevo.

## Instalación de componentes de software adicionales en su instancia de base de datos RDS Custom para Oracle
<a name="custom-install-add-software"></a>

En una instancia de base de datos recién creada, el entorno de base de datos incluye archivos binarios de Oracle, una base de datos y un oyente de bases de datos. Puede que desee instalar software adicional en el sistema operativo host de la instancia de base de datos. Por ejemplo, puede que desee instalar Oracle Application Express (APEX), el agente Oracle Enterprise Manager (OEM) o el agente Guardium S-TAP. Para obtener pautas e instrucciones detalladas, consulte la entrada de blog AWS detallada [Install additional software components on Amazon RDS Custom for Oracle](https://aws.amazon.com//blogs/database/install-additional-software-components-on-amazon-rds-custom-for-oracle/).

# Conexión a su instancia de base de datos de RDS Custom mediante Session Manager
<a name="custom-creating.ssm"></a>

Una vez que haya creado la instancia de base de datos de RDS Custom, puede conectarse a ella mediante AWS Systems Manager Session Manager. Esta es la técnica preferida que se utiliza cuando no se puede acceder a la instancia de base de datos de forma pública.

Session Manager permite acceder a las instancias de Amazon EC2 a través de un intérprete de comandos basado en navegador o mediante la AWS CLI. Para obtener más información, consulte [AWSSystems Manager Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager.html).

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

**Para conectarse a su instancia de base de datos mediante Session Manager**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. En el panel de navegación, elija **Databases** (Bases de datos) y, a continuación, seleccione la instancia de base de datos de RDS Custom que desea detener.

1. Elija **Configuration (Configuración)**.

1. Tenga en cuenta el **Resource ID** (ID de recurso) para la instancia de base de datos. Por ejemplo, el ID del recurso puede ser `db-ABCDEFGHIJKLMNOPQRS0123456`.

1. Abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. En el panel de navegación, seleccione **Instances** (Instancia[s]).

1. Busque el nombre de la instancia EC2 y, a continuación, haga clic en el ID de instancia asociado a ella. Por ejemplo, el ID de instancia puede ser `i-abcdefghijklm01234`.

1. Elija **Connect** (Conectar).

1. Elija **Session Manager**.

1. Elija **Conectar**.

   Se abre una ventana para la sesión.

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

Puede conectarse a la instancia de base de datos de RDS Custom mediante la AWS CLI. Esta técnica requiere el complemento Session Manager para la AWS CLI. Para obtener información sobre cómo instalar el complemento, consulte [Install the Session Manager plugin for the AWS CLI](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html) (Instale el complemento Session Manager).

Para encontrar el ID de recurso de base de datos de la instancia de base de datos de RDS Custom, utilice `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
```

En el siguiente ejemplo de resultado se muestra el ID de recurso de la instancia de RDS Custom. El prefijo es `db-`.

```
db-ABCDEFGHIJKLMNOPQRS0123456
```

Para buscar el ID de instancia EC2 de la instancia de base de datos, utilice `aws ec2 describe-instances`. El siguiente ejemplo utiliza `db-ABCDEFGHIJKLMNOPQRS0123456` para el ID del recurso.

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

El siguiente ejemplo muestra el ID de instancia EC2.

```
i-abcdefghijklm01234
```

Use el comando `aws ssm start-session`, proporcionando el ID de instancia EC2 en el parámetro `--target`.

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

Una conexión exitosa sería como la siguiente.

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

## Conexión a la instancia de base de datos de RDS Custom mediante SSH
<a name="custom-creating.ssh"></a>

El protocolo Secure Shell Protocol (SSH) es un protocolo de red que admite la comunicación cifrada a través de una red no segura. Después de crear la instancia de base de datos de RDS Custom, puede conectarse a ella mediante un cliente ssh. Para obtener más información, consulte [Connecting to your Linux instance using SSH](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html) (Conexión a la instancia de Linux mediante SSH).

La técnica de conexión SSH depende de si la instancia de base de datos es privada, lo que significa que no acepta conexiones de la Internet pública. En este caso, debe usar el túnel SSH para conectar la utilidad ssh a su instancia. Esta técnica transporta datos con un flujo de datos dedicado (túnel) dentro de una sesión SSH existente. Puede configurar los túneles SSH mediante AWS Systems Manager.

**nota**  
Se admiten varias estrategias para acceder a las instancias privadas. Para aprender a conectar un cliente ssh a instancias privadas mediante hosts bastión, consulte [Hosts bastión de Linux en AWS](https://aws.amazon.com/solutions/implementations/linux-bastion/). Para obtener información sobre cómo configurar el reenvío de puertos, consulte [Reenvío de puertos mediante AWS Systems Manager Session Manager](https://aws.amazon.com/blogs/aws/new-port-forwarding-using-aws-system-manager-sessions-manager/).

Si la instancia de base de datos se encuentra en una subred pública y tiene la configuración de disponibilidad pública, no se requiere ningún túnel SSH. Puede conectarse con SSH del mismo modo que lo haría con una instancia pública de Amazon EC2.

Para conectar un cliente ssh a la instancia de base de datos, siga estos pasos:

1. [Paso 1: configurar la instancia de base de datos para permitir conexiones SSH](#custom-managing.ssh.port-22)

1. [Paso 2: recuperar la clave secreta SSH y el identificador de instancia de EC2](#custom-managing.ssh.obtaining-key)

1. [Paso 3: conectarse a la instancia de EC2 mediante la utilidad ssh](#custom-managing.ssh.connecting)

### Paso 1: configurar la instancia de base de datos para permitir conexiones SSH
<a name="custom-managing.ssh.port-22"></a>

Para asegurarse de que la instancia de base de datos pueda aceptar conexiones SSH, realice el siguiente procedimiento:
+ Asegúrese de que el grupo de seguridad de instancias de base de datos permita conexiones entrantes en el puerto 22 para TCP.

  Para aprender a configurar el grupo de seguridad de la instancia de base de datos, consulte [Control de acceso con grupos de seguridad](Overview.RDSSecurityGroups.md).
+ Si no piensa utilizar túneles SSH, asegúrese de que la instancia de base de datos reside en una subred pública y es de acceso público.

  En la consola, se **puede acceder públicamente** al campo correspondiente en la pestaña **Conectividad y seguridad** de la página de detalles de la base de datos. Para comprobar la configuración en la CLI, ejecute el siguiente comando:

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

  Para modificar la configuración de accesibilidad de la instancia de base de datos, consulte [Modificación de una instancia de base de datos de Amazon RDS](Overview.DBInstance.Modifying.md).

### Paso 2: recuperar la clave secreta SSH y el identificador de instancia de EC2
<a name="custom-managing.ssh.obtaining-key"></a>

Para conectarse a la instancia de base de datos mediante SSH, necesita el par de claves SSH asociado a la instancia. RDS Custom crea el par de claves SSH automáticamente, mediante la convención de nomenclatura `do-not-delete-rds-custom-ssh-privatekey-resource_id-uuid` o `rds-custom!oracle-do-not-delete-resource_id-uuid-ssh-privatekey`. AWS Secrets Manager almacena la clave privada SSH como un secreto.

Recupere la clave secreta mediante la Consola de administración de AWS o la AWS CLI. Si su instancia tiene un DNS público y no tiene pensado utilizar túneles SSH, recupere también el nombre de DNS. Especifique el nombre de DNS para las conexiones públicas.

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

**Para recuperar la clave SSH secreta**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. En el panel de navegación, elija **Databases** (Bases de datos) y, a continuación, seleccione la instancia de base de datos de RDS Custom que desea detener.

1. Elija **Configuración**.

1. Tenga en cuenta el valor de **Resource ID** (ID de recurso). Por ejemplo, el ID del recurso de la instancia de base de datos puede ser `db-ABCDEFGHIJKLMNOPQRS0123456`.

1. Abra la consola de Amazon EC2 en [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. En el panel de navegación, seleccione **Instances (Instancias)**.

1. Busque el nombre de la instancia EC2 y elija el ID de instancia asociado a ella. Por ejemplo, el ID de instancia EC2 puede ser `i-abcdefghijklm01234`.

1. En **Details** (Detalles), busque el **Key pair name** (Nombre del par de claves). El nombre del par incluye el ID del recurso de la instancia de base de datos. Por ejemplo, el nombre del par puede ser `do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c` o `rds-custom!oracle-do-not-delete-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c-ssh-privatekey`.

1. Si la instancia de EC2 es pública, anote el **DNS IPv4 público**. Para el ejemplo, la dirección pública del Sistema de nombres de dominio (DNS) puede ser `ec2-12-345-678-901.us-east-2.compute.amazonaws.com`.

1. Abra la consola de AWS Secrets Manager en [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/).

1. Elija el secreto que tiene el mismo nombre que su par de claves.

1. Elija **Retrieve secret value** (Recuperar valor secreto).

1. Copie la clave SSH privada en un archivo de texto y, a continuación, guarde el archivo con la extensión `.pem`. Por ejemplo, guarde el archivo como `/tmp/do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c.pem` o `/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 la clave SSH privada y guardarla en un archivo.pem, puede utilizar la AWS CLI.

1. Busque el ID del recurso de base de datos de la instancia de RDS Custom con `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
   ```

   En el siguiente ejemplo de resultado se muestra el ID de recurso de la instancia de RDS Custom. El prefijo es `db-`.

   ```
   db-ABCDEFGHIJKLMNOPQRS0123456
   ```

1. Busque el ID de instancia de EC2 de la instancia de base de datos con `aws ec2 describe-instances`. El siguiente ejemplo utiliza `db-ABCDEFGHIJKLMNOPQRS0123456` para el ID del recurso.

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

   El siguiente ejemplo muestra el ID de instancia EC2.

   ```
   i-abcdefghijklm01234
   ```

1. Para buscar el nombre de la clave, especifique el ID de instancia EC2. En el siguiente ejemplo, se describe la instancia de EC2 `i-0bdc4219e66944afa`.

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

   En el siguiente ejemplo de salida se muestra el nombre de la clave, que utiliza el formato de nomenclatura `do-not-delete-rds-custom-ssh-privatekey-resource_id-uuid` o `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. Guarde la clave privada en un archivo .pem que lleva el nombre de la clave con `aws secretsmanager`. 

   En el siguiente ejemplo, se guarda la clave `do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c` en un archivo en el directorio `/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
   ```

   En el siguiente ejemplo, se guarda la clave `rds-custom!oracle-do-not-delete-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c-ssh-privatekey` en un archivo en el directorio `/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
   ```

### Paso 3: conectarse a la instancia de EC2 mediante la utilidad ssh
<a name="custom-managing.ssh.connecting"></a>

La técnica de conexión depende de si se conecta a una instancia de base de datos privada o pública. Una conexión privada requiere configurar el túnel de SSH mediante AWS Systems Manager.

**Para conectarse a una instancia de EC2 mediante la utilidad ssh**

1. Para conexiones privadas, modifique su archivo de configuración de SSH para que utilice comandos de proxy en AWS Systems Manager Session Manager. Para las conexiones públicas, vaya al paso 2.

   Añada las líneas siguientes a `~/.ssh/config`. Estas líneas envían comandos SSH a hosts cuyos nombres comienzan por `i-` o `mi-`.

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

1. Cambie al directorio que contiene el archivo .pem. Mediante `chmod`, establezca los permisos en `400`.

   En el siguiente ejemplo, se cambia al directorio `/tmp` y establece los permisos para el archivo .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
   ```

   En el siguiente ejemplo, se cambia al directorio `/tmp` y establece los permisos para el archivo .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. Ejecute la utilidad ssh y especifique el archivo .pem y el nombre de DNS público (para conexiones públicas) o el identificador de instancia de EC2 (para conexiones privadas). Inicie sesión como el usuario `ec2-user`.

   En el siguiente ejemplo, se conecta a una instancia pública mediante el nombre de 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
   ```

   En el siguiente ejemplo, se conecta a una instancia privada mediante el ID de instancia de 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
   ```

# Inicio de sesión en la base de datos de RDS Custom para Oracle como SYS
<a name="custom-creating.sysdba"></a>

Después de crear la instancia de base de datos de RDS Custom, puede iniciar sesión en la base de datos Oracle como usuario `SYS`, lo que le da privilegios `SYSDBA`. Dispone de estas opciones de inicio de sesión:
+ Obtenga la contraseña `SYS` de Secrets Manager y especifíquela en su cliente SQL.
+ Utilice la autenticación del sistema operativo para iniciar sesión en la base de datos. En este caso, no es necesario introducir una contraseña.

## Búsqueda de la contraseña de SYS para la base de datos RDS Custom para Oracle
<a name="custom-creating.sysdba.pwd"></a>

Puede iniciar sesión en su base de datos Oracle como `SYS` o `SYSTEM`, o bien especificando el nombre de usuario maestro en una llamada a la API. La contraseña de `SYS` y `SYSTEM` se almacena en Secrets Manager. 

El secreto usa el formato de nomenclatura `do-not-delete-rds-custom-resource_id-uuid` o `rds-custom!oracle-do-not-delete-resource_id-uuid`. Puede encontrar la contraseña utilizando la Consola de administración de AWS.

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

**Para encontrar la contraseña de SYS de su base de datos en Secrets Manager**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. En la consola de RDS, realice los siguientes pasos:

   1. En el panel de navegación, elija **Databases** (Bases de datos).

   1. Elija el nombre de la instancia de base de datos de RDS Custom para Oracle.

   1. Elija **Configuración**.

   1. Copie el valor debajo de **ID de recurso**. Por ejemplo, el ID de su recurso podría ser **db-abc12cde3fgh4i5jklMno6pqr7**.

1. Abra la consola de Secrets Manager en [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/).

1. En la consola de Secrets Manager, siga estos pasos:

   1. En el panel de navegación de la izquierda, elija **Secretos**.

   1. Filtre los secretos por el ID del recurso que copió en el paso 2.d.

   1. Elija el secreto que utilice el formato de nomenclatura **do-not-delete-rds-custom-*resource\$1id*-*uuid*** o **rds-custom\$1oracle-do-not-delete-*resource\$1id*-*uuid***. El *resource\$1id* es el ID del recurso que copió en el paso 2.d.

      Por ejemplo, si el ID de recurso es **db-ABC12CDE3FGH4I5JKLMNO6PQR7** y el UUID es **1234ab**, su secreto se denominará **do-not-delete-rds-custom-db-ABC12CDE3FGH4I5JKLMNO6PQR7-1234ab** o **rds-custom\$1oracle-do-not-delete-db-ABC12CDE3FGH4I5JKLMNO6PQR7-1234ab**.

   1. En la sección **Valor del secreto**, elija **Recuperar valor del secreto**.

   1. En **Clave-valor**, copie el valor de la **contraseña**.

1. Instale SQL\$1Plus en su instancia de base de datos e inicie sesión en su base de datos como `SYS`. Para obtener más información, consulte [Paso 3: conectar el cliente de SQL a una instancia de base de datos de Oracle](CHAP_GettingStarted.CreatingConnecting.Oracle.md#CHAP_GettingStarted.Connecting.Oracle).

## Inicio de sesión en la base de datos RDS Custom para Oracle mediante la autenticación del sistema operativo
<a name="custom-creating.sysdba.pwd"></a>

El usuario del sistema operativo `rdsdb` es propietario de los archivos binarios de la base de datos Oracle. Puede cambiar al usuario `rdsdb` e iniciar sesión en su base de datos RDS Custom para Oracle sin contraseña.

1. Conéctese a la instancia de base de datos con AWS Systems Manager. Para obtener más información, consulte [Conexión a su instancia de base de datos de RDS Custom mediante Session Manager](custom-creating.ssm.md).

1. Cambie al usuario `rdsdb`.

   ```
   sudo su - rdsdb
   ```

1. Inicie sesión en la base de datos utilizando la autenticación del sistema operativo. Puede utilizar `sqlplus / as sysdba` o el 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
   ```

   También puede utilizar el alias `sql`:

   ```
   $ sql
   ```