

# Configuración de Extensiones de lenguaje de confianza en su clúster de base de datos de Aurora PostgreSQL
<a name="PostgreSQL_trusted_language_extension-setting-up"></a>

En los pasos siguientes se supone que su clúster de base de datos de Aurora PostgreSQL está asociado a un grupo de parámetros de clúster de base de datos personalizado. Puede utilizar la Consola de administración de AWS o la AWS CLI para estos pasos.

Al configurar Extensiones de lenguaje de confianza en su clúster de base de datos de Aurora PostgreSQL, las instala en una base de datos específica para que las usen los usuarios de la base de datos que tienen permisos en esa base de datos. 

## Consola
<a name="PostgreSQL_trusted_language_extension-setting-up.CON"></a>

**Para configurar Extensiones de lenguaje de confianza**

Realice los siguientes pasos con una cuenta que sea miembro del grupo (rol) `rds_superuser`.

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 la instancia de escritor del clúster de base de datos de Aurora PostgreSQL .

1. Abra la pestaña **Configuration** (Configuración) para su instancia de escritor del clúster de base de datos de Aurora PostgreSQL.  Entre los detalles de la instancia, busque el enlace del **grupo de parámetros**.

1. Elija el enlace para abrir los parámetros personalizados asociados al clúster de base de datos de Aurora PostgreSQL. 

1. En el campo de búsqueda **Parametes** (Parámetros), escriba `shared_pre` para buscar el parámetro `shared_preload_libraries`.

1. Seleccione **Edit parameters** (Editar parámetros) para acceder a los valores de las propiedades.

1. Añada `pg_tle` a la lista en el campo **Values** (Valores). Utilice una coma para separar los elementos de la lista de valores.  
![\[Imagen del parámetro shared_preload_libraries con pg_tle añadido.\]](http://docs.aws.amazon.com/es_es/AmazonRDS/latest/AuroraUserGuide/images/apg_rpg_shared_preload_pg_tle.png)

1. Reinicie la instancia de escritor de su clúster de base de datos de Aurora PostgreSQL para que surta efecto el cambio en el parámetro `shared_preload_libraries`.

1. Cuando la instancia esté disponible, verifique si se ha inicializado `pg_tle`. Use `psql` para conectarse  a la instancia de escritor de su clúster de bases de datos Aurora PostgreSQL, y, a continuación, ejecute el siguiente comando.

   ```
   SHOW shared_preload_libraries;
   shared_preload_libraries 
   --------------------------
   rdsutils,pg_tle
   (1 row)
   ```

1. Con la extensión `pg_tle` inicializada, ahora ya puede crear la extensión. 

   ```
   CREATE EXTENSION pg_tle;
   ```

   Para comprobar que la extensión esté instalada, use el metacomando `psql`.

   ```
   labdb=> \dx
                            List of installed extensions
     Name   | Version |   Schema   |                Description
   ---------+---------+------------+--------------------------------------------
    pg_tle  | 1.0.1   | pgtle      | Trusted-Language Extensions for PostgreSQL
    plpgsql | 1.0     | pg_catalog | PL/pgSQL procedural language
   ```

1. Asigne el rol `pgtle_admin` al nombre de usuario principal que creó para el clúster de base de datos de Aurora PostgreSQL al configurarla. Si ha aceptado el valor predeterminado, es `postgres`. 

   ```
   labdb=> GRANT pgtle_admin TO postgres;
   GRANT ROLE
   ```

   Puede comprobar si se ha realizado la concesión con el metacomando `psql`, tal como se muestra en el siguiente ejemplo. Solo los roles `pgtle_admin` y `postgres` se muestran en el resultado. Para obtener más información, consulte [Descripción de los roles y permisos de PostgreSQL](Appendix.PostgreSQL.CommonDBATasks.Roles.md). 

   ```
   labdb=> \du
                             List of roles
       Role name    |           Attributes            |               Member of
   -----------------+---------------------------------+-----------------------------------
   pgtle_admin     | Cannot login                     | {}
   postgres        | Create role, Create DB          +| {rds_superuser,pgtle_admin}
                   | Password valid until infinity    |...
   ```

1. Cierre la sesión de `psql` con el metacomando `\q`.

   ```
   \q
   ```

Para empezar a crear extensiones TLE, consulte [Ejemplo: creación de una extensión de lenguaje de confianza mediante SQL](PostgreSQL_trusted_language_extension-creating-TLE-extensions.md#PostgreSQL_trusted_language_extension-simple-example). 

## AWS CLI
<a name="PostgreSQL_trusted_language_extension-setting-up-CLI"></a>

Puede evitar especificar el argumento `--region` al utilizar los comandos de la CLI al configurar su AWS CLI con su Región de AWS predeterminada. Para obtener más información, consulte [Fundamentos de configuración](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-config) en la *Guía del usuario de AWS Command Line Interface*.

**Para configurar Extensiones de lenguaje de confianza**

1. Use el comando [modify-db-cluster-parameter-group](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-parameter-group.html) de AWS CLI para añadir `pg_tle` al parámetro `shared_preload_libraries`.

   ```
   aws rds modify-db-parameter-group \
      --db-parameter-group-name custom-param-group-name \
      --parameters "ParameterName=shared_preload_libraries,ParameterValue=pg_tle,ApplyMethod=pending-reboot" \
      --region aws-region
   ```

1. Use el comando [reboot-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/reboot-db-instance) de AWS CLI para reiniciar la instancia de escritor del clúster de base de datos de Aurora PostgreSQL e inicialice la biblioteca de `pg_tle`.

   ```
   aws rds reboot-db-instance \
       --db-instance-identifier writer-instance \
       --region aws-region
   ```

1. Cuando la instancia esté disponible, puede verificar si `pg_tle` se ha inicializado. Use `psql` para conectarse  a la instancia de escritor de su clúster de bases de datos Aurora PostgreSQL, y, a continuación, ejecute el siguiente comando.

   ```
   SHOW shared_preload_libraries;
   shared_preload_libraries 
   --------------------------
   rdsutils,pg_tle
   (1 row)
   ```

   Con `pg_tle` inicializado, ahora ya puede crear la extensión.

   ```
   CREATE EXTENSION pg_tle;
   ```

1. Asigne el rol `pgtle_admin` al nombre de usuario principal que creó para el clúster de base de datos de Aurora PostgreSQL al configurarla. Si ha aceptado el valor predeterminado, es `postgres`.

   ```
   GRANT pgtle_admin TO postgres;
   GRANT ROLE
   ```

1. Cierre la sesión de `psql` de la siguiente manera.

   ```
   labdb=> \q
   ```

Para empezar a crear extensiones TLE, consulte [Ejemplo: creación de una extensión de lenguaje de confianza mediante SQL](PostgreSQL_trusted_language_extension-creating-TLE-extensions.md#PostgreSQL_trusted_language_extension-simple-example). 