Menghubungkan ke klaster DB menggunakan autentikasi IAM dan AWS SDK for .NET - Amazon Aurora

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menghubungkan ke klaster DB menggunakan autentikasi IAM dan AWS SDK for .NET

Anda dapat menghubungkan ke klaster DB Aurora MySQL atau Aurora PostgreSQL dengan AWS SDK for .NET seperti yang dijelaskan berikut ini.

Prasyarat

Berikut adalah prasyarat untuk menghubungkan ke instans DB menggunakan autentikasi IAM:

Contoh

Contoh kode berikut ini menunjukkan cara membuat token autentikasi, lalu menggunakannya untuk menghubungkan ke instans DB.

Untuk menjalankan contoh kode ini, Anda memerlukan AWS SDK for .NET, yang ada di situs AWS. Paket AWSSDK.CORE dan AWSSDK.RDS diperlukan. Untuk terhubung ke instans DB, gunakan konektor basis data .NET untuk mesin DB, seperti MySqlConnector for MariaDB atau MySQL, atau Npgsql for PostgreSQL.

Kode ini terhubung ke klaster DB Aurora MySQL. Ubah nilai variabel berikut sesuai kebutuhan:

  • server – Titik akhir instans DB yang ingin Anda akses

  • user – Akun basis data yang ingin Anda akses

  • database – Basis data yang ingin Anda akses

  • port – Nomor port yang digunakan untuk menghubungkan ke instans DB Anda

  • SslMode – Mode SSL yang akan digunakan

    Saat Anda menggunakan SslMode=Required, koneksi SSL memverifikasi titik akhir instans DB di sertifikat SSL.

  • SslCa – Jalur lengkap ke sertifikat SSL untuk Amazon Aurora

    Untuk mengunduh sertifikat SSL, lihat .

catatan

Anda tidak dapat menggunakan data DNS Route 53 kustom atau titik akhir kustom Aurora sebagai pengganti titik akhir instans DB untuk menghasilkan token autentikasi.

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

Kode ini terhubung ke klaster DB Aurora PostgreSQL.

Ubah nilai variabel berikut sesuai kebutuhan:

  • Server – Titik akhir instans DB yang ingin Anda akses

  • User ID – Akun basis data yang ingin Anda akses

  • Database – Basis data yang ingin Anda akses

  • Port – Nomor port yang digunakan untuk menghubungkan ke instans DB Anda

  • SSL Mode – Mode SSL yang akan digunakan

    Saat Anda menggunakan SSL Mode=Required, koneksi SSL memverifikasi titik akhir instans DB di sertifikat SSL.

  • Root Certificate – Jalur lengkap ke sertifikat SSL untuk Amazon Aurora

    Untuk mengunduh sertifikat SSL, lihat .

catatan

Anda tidak dapat menggunakan data DNS Route 53 kustom atau titik akhir kustom Aurora sebagai pengganti titik akhir instans DB untuk menghasilkan token autentikasi.

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

Jika Anda ingin terhubung ke klaster DB melalui proksi, lihat Terhubung ke sebuah proksi menggunakan autentikasi IAM.