

# Creación de un proxy para Amazon RDS
<a name="rds-proxy-creating"></a>

Puede asociar un proxy con una instancia de base de datos de RDS para MariaDB, RDS para Microsoft SQL Server, RDS para MySQL o RDS para PostgreSQL. 

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

**Para crear un proxy**

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, seleccione **Proxies**. 

1. Elija **Create proxy (Crear proxy)**. 

1. Configure los siguientes ajustes para el proxy.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/UserGuide/rds-proxy-creating.html)

1.  Elija **Create proxy (Crear proxy)**. 

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

 Para crear un proxy utilizando el comando AWS CLI, llame al comando [create-db-proxy](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-proxy.html) con los siguientes parámetros requeridos: 
+ `--db-proxy-name`
+ `--engine-family`
+ `--role-arn`
+ `--vpc-subnet-ids`

El valor `--engine-family` distingue entre mayúsculas y minúsculas.

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

```
aws rds create-db-proxy \
    --db-proxy-name proxy_name \
    --engine-family { MYSQL | POSTGRESQL | SQLSERVER } \
    --role-arn iam_role \
    --vpc-subnet-ids space_separated_list \
    [--default-auth-scheme { NONE | IAM_AUTH }] \
    [--auth ProxyAuthenticationConfig_JSON_string] \
    [--vpc-security-group-ids space_separated_list] \
    [--require-tls | --no-require-tls] \
    [--idle-client-timeout value] \
    [--debug-logging | --no-debug-logging] \
    [--endpoint-network-type { IPV4 | IPV6 | DUAL }] \
    [--target-connection-network-type { IPV4 | IPV6 }] \
    [--tags comma_separated_list]
```
Para Windows:  

```
aws rds create-db-proxy ^
    --db-proxy-name proxy_name ^
    --engine-family { MYSQL | POSTGRESQL | SQLSERVER } ^
    --role-arn iam_role ^
    --vpc-subnet-ids space_separated_list ^
    [--default-auth-scheme { NONE | IAM_AUTH }] ^
    [--auth ProxyAuthenticationConfig_JSON_string] ^
    [--vpc-security-group-ids space_separated_list] ^
    [--require-tls | --no-require-tls] ^
    [--idle-client-timeout value] ^
    [--debug-logging | --no-debug-logging] ^
    [--endpoint-network-type { IPV4 | IPV6 | DUAL }] ^
    [--target-connection-network-type { IPV4 | IPV6 }] ^
    [--tags comma_separated_list]
```

A continuación se muestra un ejemplo del valor JSON para la opción `--auth`. Este ejemplo aplica un tipo de autenticación de cliente diferente a cada secreto.

```
[
  {
    "Description": "proxy description 1",
    "AuthScheme": "SECRETS",
    "SecretArn": "arn:aws:secretsmanager:us-west-2:123456789123:secret/1234abcd-12ab-34cd-56ef-1234567890ab",
    "IAMAuth": "DISABLED",
    "ClientPasswordAuthType": "POSTGRES_SCRAM_SHA_256"
  },
  
  {
    "Description": "proxy description 2",
    "AuthScheme": "SECRETS",
    "SecretArn": "arn:aws:secretsmanager:us-west-2:111122223333:secret/1234abcd-12ab-34cd-56ef-1234567890cd",
    "IAMAuth": "DISABLED",
    "ClientPasswordAuthType": "POSTGRES_MD5"
    
  },
  
  {
    "Description": "proxy description 3",
    "AuthScheme": "SECRETS",
    "SecretArn": "arn:aws:secretsmanager:us-west-2:111122221111:secret/1234abcd-12ab-34cd-56ef-1234567890ef",
    "IAMAuth": "REQUIRED"
  }
  
]
```

El parámetro `--endpoint-network-type` especifica la versión de IP del punto de conexión del proxy que los clientes utilizan para conectarse al proxy. Los valores válidos son:
+ `IPV4`: el punto de conexión del proxy utiliza solo direcciones IPv4 (predeterminado).
+ `IPV6`: el punto de conexión del proxy utiliza solo direcciones IPv6.
+ `DUAL`: el punto de conexión del proxy admite direcciones IPv4 y IPv6.

El parámetro `--target-connection-network-type` especifica la versión de IP que utiliza el proxy para conectarse a la base de datos de destino. Los valores válidos son:
+ `IPV4`: el proxy se conecta a la base de datos mediante direcciones IPv4 (predeterminado).
+ `IPV6`: el proxy se conecta a la base de datos mediante direcciones IPv6.

Para usar los tipos de redes de punto de conexión de IPv6 o de doble pila, la VPC y las subredes deben estar configuradas para admitir el tipo de red seleccionado. Para utilizar el tipo de red de conexión de destino de IPv6, la base de datos debe admitir el modo de doble pila.

**sugerencia**  
 Si aún no conoce los ID de subred que utilizar para el parámetro `--vpc-subnet-ids`, consulte [Configuración de requisitos previos de red para RDS Proxy](rds-proxy-network-prereqs.md) para ver ejemplos de cómo encontrarlos. 

**nota**  
Este grupo de seguridad debe permitir el acceso a la base de datos a la que se conecta el proxy. El mismo grupo de seguridad se utiliza para la entrada de las aplicaciones al proxy y para la salida del proxy a la base de datos. Por ejemplo, supongamos que utiliza el mismo grupo de seguridad para la base de datos y el proxy. En este caso, asegúrese de especificar que los recursos de ese grupo de seguridad pueden comunicarse con otros recursos del mismo grupo de seguridad.  
Cuando se utiliza una VPC compartida, no se puede utilizar el grupo de seguridad predeterminado para la VPC o uno que pertenezca a otra cuenta. Elija un grupo de seguridad que pertenezca a su cuenta. Si no existe uno, créelo. Para obtener más información acerca de esta limitación, consulte [Trabajar con VPC compartidas](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-sharing.html#vpc-share-limitations). 

 Para crear las asociaciones adecuadas para el proxy, utilice también el comando [register-db-proxy-targets](https://docs.aws.amazon.com/cli/latest/reference/rds/register-db-proxy-targets.html). Especifique el nombre de grupo de destino de `default`. El proxy de RDS crea automáticamente un grupo de destino con este nombre cuando crea cada proxy. 

```
aws rds register-db-proxy-targets
    --db-proxy-name value
    [--target-group-name target_group_name]
    [--db-instance-identifiers space_separated_list]  # rds db instances, or
    [--db-cluster-identifiers cluster_id]        # rds db cluster (all instances)
```

## API de RDS
<a name="rds-proxy-creating.API"></a>

 Para crear un proxy de RDS, llame a la operación de la API de Amazon RDS [CreateDBProxy](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBProxy.html). Transfiera un parámetro con la estructura de datos [AuthConfig](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_AuthConfig.html) . 

 El proxy de RDS crea automáticamente un grupo de destino denominado `default` cuando crea cada proxy. Se asocia una instancia de base de datos de RDS con el grupo de destino llamando a la función [RegisterDBProxyTargets](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RegisterDBProxyTargets.html). 

**importante**  
Al seleccionar la **autenticación de IAM** para el esquema de autenticación predeterminado:  
Debe habilitar la autenticación de la base de datos de IAM en las instancias o clústeres de la base de datos de destino para que el proxy pueda conectarse correctamente.
Si elige **Crear rol de IAM**, es obligatorio el campo **Cuentas de base de datos para la autenticación de IAM**.
Si selecciona un rol de IAM existente, la consola no actualiza automáticamente el rol con los permisos de conexión de base de datos. Compruebe que el rol tenga los permisos `rds-db:connect` necesarios.