使用 IAM 身分驗證和 AWS SDK for .NET 連線至資料庫叢集 - Amazon Aurora

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 IAM 身分驗證和 AWS SDK for .NET 連線至資料庫叢集

您可以如下所述使用 AWS SDK for .NET,連線至 Aurora MySQL 或 Aurora PostgreSQL 資料庫叢集

先決條件

以下是使用 IAM 身分驗證連線至資料庫叢集的先決條件:

範例

以下程式碼範例顯示如何產生身分驗證字符,然後用來連線至資料庫叢集

若要執行此程式碼範例,您必須從 AWS SDK for .NET 網站上取得 AWSAWSSDK.COREAWSSDK.RDS 套件是必需的。若要連接到資料庫叢集,請使用資料庫引擎的 .NET 資料庫連接器,例如 MariaDB 或 MySQL 的 MySqlConnector 或 PostgreSQL 的 Npgsql。

此程式碼連接到一個 Aurora MySQL 資料庫叢集。視需要修改下列變數的值:

  • server – 您想要存取之資料庫叢集的端點

  • user – 您想要存取的資料庫帳戶

  • database – 您想要存取的資料庫

  • port – 用於連線資料庫叢集的連接埠號碼

  • SslMode – 要使用的 SSL 模式

    當您使用 SslMode=Required 時,SSL 連線會根據 SSL 憑證中的端點來驗證資料庫叢集端點。

  • SslCaAmazon Aurora 之 SSL 憑證的完整路徑

    若要下載憑證,請參閱使用 SSL/TLS 加密與資料庫叢集的連線

注意

您無法使用自訂 Route 53 DNS 記錄或 Aurora 自訂端點替代資料庫叢集端點來產生身分驗證字符。

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(); } } }

此程式碼連接到一個 Aurora PostgreSQL 資料庫叢集。

視需要修改下列變數的值:

  • Server – 您想要存取之資料庫叢集的端點

  • User ID – 您想要存取的資料庫帳戶

  • Database – 您想要存取的資料庫

  • Port – 用於連線資料庫叢集的連接埠號碼

  • SSL Mode – 要使用的 SSL 模式

    當您使用 SSL Mode=Required 時,SSL 連線會根據 SSL 憑證中的端點來驗證資料庫叢集端點。

  • Root CertificateAmazon Aurora 之 SSL 憑證的完整路徑

    若要下載憑證,請參閱使用 SSL/TLS 加密與資料庫叢集的連線

注意

您無法使用自訂 Route 53 DNS 記錄或 Aurora 自訂端點替代資料庫叢集端點來產生身分驗證字符。

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(); } } }

如果要透過 Proxy 連線到資料庫叢集,請參閱 使用 IAM 身分驗證連線到代理