Menghubungkan ke cluster DB Anda menggunakan otentikasi IAM dan AWS SDK untuk .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 cluster DB Anda menggunakan otentikasi IAM dan AWS SDK untuk .NET

Anda dapat terhubung ke dengan seperti yang dijelaskan berikut. AWS SDK untuk .NET

Prasyarat

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

Contoh

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

Untuk menjalankan contoh kode ini, Anda memerlukan AWS SDK untuk .NET, ditemukan di AWS situs. Paket AWSSDK.CORE dan AWSSDK.RDS diperlukan. Untuk terhubung ke cluster DB, gunakan konektor database.NET untuk mesin DB, seperti untuk MariaDB atau MySQL, atau Npgsql MySqlConnector untuk PostgreSQL.

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

  • server – Titik akhir klaster 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 klaster DB Anda

  • SslMode – Mode SSL yang akan digunakan

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

  • SslCa – Jalur lengkap ke sertifikat SSL untuk Amazon Aurora

    Untuk mengunduh sertifikat, lihat Menggunakan SSL/TLS untuk mengenkripsi koneksi ke .

catatan

Anda tidak dapat menggunakan data DNS Route 53 kustom sebagai pengganti titik akhir klaster 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 klaster 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 klaster DB Anda

  • SSL Mode – Mode SSL yang akan digunakan

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

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

    Untuk mengunduh sertifikat, lihat Menggunakan SSL/TLS untuk mengenkripsi koneksi ke .

catatan

Anda tidak dapat menggunakan data DNS Route 53 kustom sebagai pengganti titik akhir klaster 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 Menghubungkan ke database menggunakan otentikasi IAM.