Herstellen einer Verbindung zu Ihrem DB-Instance- mithilfe der IAM-Authentifizierung und AWS SDK for .NET - Amazon Relational Database Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Herstellen einer Verbindung zu Ihrem DB-Instance- mithilfe der IAM-Authentifizierung und AWS SDK for .NET

Sie können sich mit dem AWS SDK for .NET wie nachfolgend beschrieben mit einer RDS-für-MariaDB-, RDS-für-MySQL- oder RDS-für-PostgreSQL-DB-Instance verbinden.

Voraussetzungen

Die folgenden Voraussetzungen gelten für die Verbindung mit Ihrem DB-Instance- mithilfe der IAM-Authentifizierung:

Beispiele

In den folgenden Beispielcodes wird gezeigt, wie Sie ein Authentifizierungstoken erzeugen und anschließend zum Verbinden mit einer DB-Instance verwenden.

Um dieses Codebeispiel auszuführen, benötigen Sie das AWS SDK for .NET, das sich auf der AWS-Seite befindet. Die AWSSDK.CORE- und die AWSSDK.RDS-Pakete sind erforderlich. Um eine Verbindung mit einer DB-Instance herzustellen, verwenden Sie den .NET-Datenbankkonnektor für die DB-Engine, z. B. MySqlConnector für MariaDB oder MySQL oder Npgsql für PostgreSQL.

Dieser Code stellt eine Verbindung mit einer MariaDB- oder MySQL-DB-Instance her. Ändern Sie die Werte der folgenden Parameter nach Bedarf.

  • server – Der Endpunkt des DB-Instance-, auf den Sie zugreifen möchten.

  • user – Das Datenbankkonto, auf das Sie zugreifen möchten.

  • database – Die Datenbank, auf die Sie zugreifen möchten.

  • port – Die Nummer des Ports, der für die Verbindung mit dem DB-Instance- verwendet wird.

  • SslMode – Der zu verwendende SSL-Modus.

    Wenn Sie SslMode=Required verwenden, prüft die SSL-Verbindung den Endpunkt der DB-Instance gegen den Endpunkt des SSL-Zertifikats.

  • SslCa – Der vollständige Pfad zum SSL-Zertifikat für Amazon RDS

    Informationen zum Download eines Zertifikats finden Sie unter .

Anmerkung

Sie können keinen benutzerdefinierten Route-53-DNS-Eintrag anstelle des DB-Instance-Endpunkts verwenden, um das Authentifizierungstoken zu generieren.

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, "mysqldb.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=mysqldb.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(); } } }

Dieser Code stellt eine Verbindung zu einer PostgreSQL-DB-Instance her.

Ändern Sie die Werte der folgenden Parameter nach Bedarf.

  • Server – Der Endpunkt des DB-Instance-, auf den Sie zugreifen möchten.

  • User ID – Das Datenbankkonto, auf das Sie zugreifen möchten.

  • Database – Die Datenbank, auf die Sie zugreifen möchten.

  • Port – Die Nummer des Ports, der für die Verbindung mit dem DB-Instance- verwendet wird.

  • SSL Mode – Der zu verwendende SSL-Modus.

    Wenn Sie SSL Mode=Required verwenden, prüft die SSL-Verbindung den Endpunkt der DB-Instance gegen den Endpunkt des SSL-Zertifikats.

  • Root Certificate – Der vollständige Pfad zum SSL-Zertifikat für Amazon RDS

    Informationen zum Download eines Zertifikats finden Sie unter .

Anmerkung

Sie können keinen benutzerdefinierten Route-53-DNS-Eintrag anstelle des DB-Instance-Endpunkts verwenden, um das Authentifizierungstoken zu generieren.

using System; using Npgsql; using Amazon.RDS.Util; namespace ConsoleApp1 { class Program { static void Main(string[] args) { var pwd = RDSAuthTokenGenerator.GenerateAuthToken("postgresmydb.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=postgresmydb.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(); } } }

Informationen dazu, wie Sie über einen Proxy eine Verbindung mit einer DB-Instance herstellen, finden Sie unter Herstellen einer Verbindung mit einem Proxy mithilfe der IAM-Authentifizierung.