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

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--Cluster mithilfe der IAM-Authentifizierung und AWS SDK for .NET

Sie können sich mit dem AWS SDK for .NET wie nachfolgend beschrieben mit einer Aurora-MySQL- oder Aurora-PostgreSQL-DB-Cluster verbinden.

Voraussetzungen

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

Beispiele

In den folgenden Beispielcodes wird gezeigt, wie Sie ein Authentifizierungstoken erzeugen und anschließend zum Verbinden mit einem DB-Cluster 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-Cluster 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 einem Aurora MySQL DB-Cluster her. Ändern Sie die Werte der folgenden Parameter nach Bedarf.

  • server – Der Endpunkt des DB--Clusters, 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--Cluster verwendet wird.

  • SslMode – Der zu verwendende SSL-Modus.

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

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

    Informationen zum Download eines Zertifikats finden Sie unter Verwenden vonSSL/TLSzum Verschlüsseln einer Verbindung zu einer .

Anmerkung

Sie können keinen benutzerdefinierten Route-53-DNS-Eintrag oder einen benutzerdefinierten Aurora-Endpunkt anstelle des DB-Cluster-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, "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(); } } }

Dieser Code stellt eine Verbindung mit einem Aurora PostgreSQL DB-Cluster her.

Ändern Sie die Werte der folgenden Parameter nach Bedarf.

  • Server – Der Endpunkt des DB--Clusters, 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--Cluster verwendet wird.

  • SSL Mode – Der zu verwendende SSL-Modus.

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

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

    Informationen zum Download eines Zertifikats finden Sie unter Verwenden vonSSL/TLSzum Verschlüsseln einer Verbindung zu einer .

Anmerkung

Sie können keinen benutzerdefinierten Route-53-DNS-Eintrag oder einen benutzerdefinierten Aurora-Endpunkt anstelle des DB-Cluster-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("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(); } } }

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