Conexión al clúster de base de datos mediante la autenticación de IAM y el AWS SDK for .NET - Amazon Aurora

Conexión al clúster de base de datos mediante la autenticación de IAM y el AWS SDK for .NET

Puede conectarse a un clúster de bases de datos de Aurora MySQL o Aurora PostgreSQL con el AWS SDK for .NET como se describe a continuación.

Requisitos previos

A continuación, se muestran requisitos previos para conectarse al clúster de de base de datos mediante la autenticación de IAM:

Ejemplos

En los siguientes ejemplos de código, se muestra cómo se genera un token de autenticación y cómo se utiliza para conectarse a un clúster de bases de datos.

Para ejecutar este ejemplo de código, necesita AWS SDK for .NET, que se encuentra en el sitio de AWS. Los paquetes AWSSDK.CORE y AWSSDK.RDS son necesarios. Para conectarse a un clúster de base de datos, use el conector de base de datos .NET para el motor de base de datos, como MySqlConnector para MariaDB o MySQL, o Npgsql para PostgreSQL.

Este código se conecta a un clúster de bases de datos de Aurora MySQL. Modifique los valores de las siguientes variables según sea necesario:

  • server: el punto de enlace del clúster de bases de datos que desea acceder

  • user: la cuenta de base de datos a la que desea acceder.

  • database: la base de datos a la que desea obtener acceso.

  • port: el número de puerto que se utiliza para conectarse al clúster de bases de datos.

  • SslMode: el modo de SSL que se debe utilizar.

    Cuando se utiliza SslMode=Required, la conexión SSL verifica el punto de conexión del clúster de bases de datos con respecto al punto de enlace del certificado SSL.

  • SslCa: la ruta completa al certificado SSL de Amazon Aurora

    Para descargar un certificado, consulte Uso de SSL/TLS para cifrar una conexión a un clúster de base de datos.

nota

No puede utilizar un registro DNS personalizado de Route 53 ni un punto de conexión personalizado de Aurora en lugar del punto de conexión del clúster de base de datos para generar el token de autenticación.

using System; using System.Data; using MySql.Data; using MySql.Data.MySqlClient; using Amazon; namespace ubuntu { class Program { static void Main(string[] args) { var pwd = Amazon.RDS.Util.RDSAuthTokenGenerator.GenerateAuthToken(RegionEndpoint.USEast1, "mysqlcluster.cluster-123456789012.us-east-1.rds.amazonaws.com", 3306, "jane_doe"); // for debug only Console.Write("{0}\n", pwd); //this verifies the token is generated MySqlConnection conn = new MySqlConnection($"server=mysqlcluster.cluster-123456789012.us-east-1.rds.amazonaws.com;user=jane_doe;database=mydB;port=3306;password={pwd};SslMode=Required;SslCa=full_path_to_ssl_certificate"); conn.Open(); // Define a query MySqlCommand sampleCommand = new MySqlCommand("SHOW DATABASES;", conn); // Execute a query MySqlDataReader mysqlDataRdr = sampleCommand.ExecuteReader(); // Read all rows and output the first column in each row while (mysqlDataRdr.Read()) Console.WriteLine(mysqlDataRdr[0]); mysqlDataRdr.Close(); // Close connection conn.Close(); } } }

Este código se conecta a un clúster de bases de datos de Aurora PostgreSQL.

Modifique los valores de las siguientes variables según sea necesario:

  • Server: el punto de enlace del clúster de bases de datos que desea acceder

  • User ID: la cuenta de base de datos a la que desea acceder.

  • Database: la base de datos a la que desea obtener acceso.

  • Port: el número de puerto que se utiliza para conectarse al clúster de bases de datos.

  • SSL Mode: el modo de SSL que se debe utilizar.

    Cuando se utiliza SSL Mode=Required, la conexión SSL verifica el punto de conexión del clúster de bases de datos con respecto al punto de enlace del certificado SSL.

  • Root Certificate: la ruta completa al certificado SSL de Amazon Aurora

    Para descargar un certificado, consulte Uso de SSL/TLS para cifrar una conexión a un clúster de base de datos.

nota

No puede utilizar un registro DNS personalizado de Route 53 ni un punto de conexión personalizado de Aurora en lugar del punto de conexión del clúster de base de datos para generar el token de autenticación.

using System; using Npgsql; using Amazon.RDS.Util; namespace ConsoleApp1 { class Program { static void Main(string[] args) { var pwd = RDSAuthTokenGenerator.GenerateAuthToken("postgresmycluster.cluster-123456789012.us-east-1.rds.amazonaws.com", 5432, "jane_doe"); // for debug only Console.Write("{0}\n", pwd); //this verifies the token is generated NpgsqlConnection conn = new NpgsqlConnection($"Server=postgresmycluster.cluster-123456789012.us-east-1.rds.amazonaws.com;User Id=jane_doe;Password={pwd};Database=mydb;SSL Mode=Require;Root Certificate=full_path_to_ssl_certificate"); conn.Open(); // Define a query NpgsqlCommand cmd = new NpgsqlCommand("select count(*) FROM pg_user", conn); // Execute a query NpgsqlDataReader dr = cmd.ExecuteReader(); // Read all rows and output the first column in each row while (dr.Read()) Console.Write("{0}\n", dr[0]); // Close connection conn.Close(); } } }

Si desea conectarse a un clúster de base de datos a través de un proxy, consulte Conexión a un proxy mediante autenticación de IAM.