Menyiapkan autentikasi Kerberos untuk klaster DB Aurora MySQL - Amazon Aurora

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

Menyiapkan autentikasi Kerberos untuk klaster DB Aurora MySQL

Gunakan AWS Managed Microsoft AD untuk menyiapkan autentikasi Kerberos untuk klaster DB Aurora MySQL. Untuk menyiapkan autentikasi Kerberos, lakukan langkah-langkah berikut.

Langkah 1: Buat direktori menggunakan AWS Managed Microsoft AD

AWS Directory Service membuat Active Directory yang dikelola penuh di AWS Cloud. Saat Anda membuat direktori AWS Managed Microsoft AD, AWS Directory Service membuat dua server pengendali domain dan Sistem Nama Domain (DNS) atas nama Anda. Server direktori dibuat di subnet berbeda di VPC. Redundansi ini membantu memastikan bahwa direktori Anda tetap dapat diakses meski terjadi kegagalan.

Saat Anda membuat direktori AWS Managed Microsoft AD, AWS Directory Service melakukan tugas berikut ini atas nama Anda:

  • Menyiapkan Active Directory dalam VPC.

  • Membuat akun administrator direktori dengan nama pengguna Admin dan kata sandi yang ditentukan. Anda menggunakan akun ini untuk mengelola direktori Anda.

    catatan

    Pastikan untuk menyimpan kata sandi ini. AWS Directory Service tidak menyimpannya. Anda dapat mengaturnya ulang, tetapi tidak dapat mengambilnya.

  • Membuat grup keamanan untuk pengendali direktori.

Saat Anda meluncurkan sebuah AWS Managed Microsoft AD, AWS membuat Unit Organisasi (OU) yang berisi semua objek direktori Anda. OU ini memiliki nama NetBIOS yang Anda masukkan saat membuat direktori Anda. OU ini berada di root domain, yang dimiliki dan dikelola oleh AWS.

Akun Admin yang dibuat dengan direktori AWS Managed Microsoft AD Anda memiliki izin untuk aktivitas administratif paling umum untuk OU Anda, termasuk:

  • Membuat, memperbarui, atau menghapus pengguna

  • Tambahkan sumber daya ke domain Anda, seperti server file atau server cetak, kemudian tetapkan izin untuk sumber daya itu kepada pengguna di OU Anda

  • Membuat OU dan kontainer tambahan

  • Mendelegasikan kewenangan

  • Memulihkan objek yang dihapus dari Keranjang Sampah Active Directory

  • Jalankan PowerShell modul AD dan DNS Windows pada Layanan Web Direktori Aktif

Akun Admin juga memiliki hak untuk melakukan aktivitas di seluruh domain berikut:

  • Mengelola konfigurasi DNS (menambahkan, menghapus, atau memperbarui catatan, zona, dan penerus)

  • Melihat log peristiwa DNS

  • Melihat log peristiwa keamanan

Untuk membuat direktori dengan AWS Managed Microsoft AD
  1. Masuk ke AWS Management Console dan buka konsol AWS Directory Service di https://console.aws.amazon.com/directoryservicev2/.

  2. Di panel navigasi, pilih Direktori, lalu pilih Siapkan Direktori.

  3. Pilih AWS Managed Microsoft AD. AWS Managed Microsoft AD adalah satu-satunya opsi yang saat ini dapat Anda gunakan dengan Amazon RDS.

  4. Masukkan informasi berikut:

    Nama DNS Direktori

    Nama yang sepenuhnya memenuhi syarat direktori, seperti corp.example.com.

    Nama NetBIOS direktori

    Nama singkat direktori, seperti CORP.

    Deskripsi direktori

    (Opsional) Deskripsi direktori.

    Kata sandi admin

    Kata sandi untuk administrator direktori. Proses pembuatan direktori menciptakan akun administrator dengan nama pengguna Admin dan kata sandi ini.

    Kata sandi administrator direktori dan tidak boleh menyertakan kata “admin”. Kata sandi peka terhadap huruf besar/kecil dan harus terdiri dari 8-64 karakter. Kata sandi juga harus berisi setidaknya satu karakter dari tiga di antara empat kategori berikut:

    • Huruf kecil (a-z)

    • Huruf besar (A-Z)

    • Angka (0–9)

    • Karakter non-alfanumerik (~!@#$%^&*_-+=`|\(){}[]:;"'<>,.?/)

    Konfirmasikan kata sandi

    Kata sandi administrator dimasukkan kembali.

  5. Pilih Selanjutnya.

  6. Masukkan informasi berikut di bagian Jaringan, lalu pilih Berikutnya:

    VPC

    VPC untuk direktori. Buat klaster DB Aurora MySQL di VPC yang sama ini.

    Subnet

    Subnet untuk server direktori. Kedua subnet harus berada di Zona Ketersediaan yang berbeda.

  7. Tinjau informasi direktori dan buat perubahan yang diperlukan. Jika informasi sudah benar, pilih Buat direktori.

    Halaman detail direktori selama pembuatan

Dibutuhkan beberapa menit untuk membuat direktori. Setelah direktori berhasil dibuat, nilai Status berubah menjadi Aktif.

Untuk melihat informasi tentang direktori Anda, pilih nama direktori di daftar direktori. Catat nilai ID Direktori karena Anda memerlukan nilai ini saat membuat atau memodifikasi klaster DB Aurora MySQL Anda.

ID Direktori di halaman detail Direktori

Langkah 2: (Opsional) Buat kepercayaan untuk Active Directory on-premise

Jika Anda tidak berencana menggunakan Microsoft Active Directory on-premise Anda sendiri, langsung lompat ke Langkah 3: Buat peran IAM untuk digunakan oleh Amazon Aurora.

Untuk menggunakan autentikasi Kerberos dengan Active Directory on-premise, Anda perlu membuat hubungan domain tepercaya menggunakan kepercayaan forest antara Microsoft Active Directory on-premise Anda dan direktori AWS Managed Microsoft AD (dibuat di Langkah 1: Buat direktori menggunakan AWS Managed Microsoft AD). Kepercayaan dapat bersifat satu arah, dimana direktori AWS Managed Microsoft AD mempercayai Microsoft Active Directory on-premise. Kepercayaan juga dapat bersifat dua arah, yang mana kedua Active Directory saling percaya. Untuk informasi selengkapnya tentang menyiapkan kepercayaan menggunakan AWS Directory Service, lihat Kapan membuat hubungan kepercayaan dalam Panduan Administrasi AWS Directory Service.

catatan

Jika Anda menggunakan Microsoft Active Directory on-premise:

  • Klien Windows harus terhubung menggunakan nama domain AWS Directory Service di titik akhir, bukan rds.amazonaws.com. Untuk informasi selengkapnya, lihat Membuat koneksi dengan Aurora MySQL lewat autentikasi Kerberos.

  • Klien Windows tidak dapat terhubung menggunakan titik akhir kustom Aurora. Untuk mempelajari selengkapnya, lihat Manajemen koneksi Amazon Aurora.

  • Untuk basis data global:

    • Klien Windows dapat terhubung menggunakan titik akhir instans atau titik akhir klaster di Wilayah AWS utama basis data global saja.

    • Klien Windows tidak dapat terhubung menggunakan titik akhir klaster di Wilayah AWS sekunder.

Pastikan bahwa nama domain Microsoft Active Directory on-premise Anda mencakup perutean sufiks DNS yang sesuai dengan hubungan kepercayaan yang baru dibuat. Tangkapan layar berikut menunjukkan sebuah contoh.

Perutean DNS sesuai dengan kepercayaan yang dibuat

Langkah 3: Buat peran IAM untuk digunakan oleh Amazon Aurora

Agar Amazon Aurora memanggil AWS Directory Service untuk Anda, Anda memerlukan peran AWS Identity and Access Management (IAM) yang menggunakan kebijakan IAM terkelola AmazonRDSDirectoryServiceAccess. Peran ini memungkinkan Aurora untuk melakukan panggilan ke AWS Directory Service.

Ketika Anda membuat klaster DB menggunakan AWS Management Console, dan Anda memiliki izin iam:CreateRole, konsol akan membuat peran ini secara otomatis. Dalam hal ini, nama perannya adalah rds-directoryservice-kerberos-access-role. Jika tidak, Anda harus membuat peran IAM secara manual. Saat Anda membuat peran IAM ini, pilih Directory Service, lalu lampirkan kebijakan terkelola AWS AmazonRDSDirectoryServiceAccess ke peran itu.

Lihat informasi yang lebih lengkap tentang membuat peran IAM untuk sebuah layanan di Membuat peran untuk melimpahkan izin ke layanan AWS dalam Panduan Pengguna IAM.

Anda memiliki opsi untuk membuat kebijakan dengan izin yang diperlukan alih-alih menggunakan kebijakan IAM yang dikelola AmazonRDSDirectoryServiceAccess. Untuk melakukannya, peran IAM harus memiliki kebijakan kepercayaan IAM berikut.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "directoryservice.rds.amazonaws.com", "rds.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }

Peran ini juga harus memiliki kebijakan peran IAM berikut.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ds:DescribeDirectories", "ds:AuthorizeApplication", "ds:UnauthorizeApplication", "ds:GetAuthorizedApplicationDetails" ], "Effect": "Allow", "Resource": "*" } ] }

Langkah 4: Buat dan konfigurasikan pengguna

Anda dapat membuat pengguna dengan alat Pengguna Active Directory dan Komputer. Alat ini adalah bagian dari alat Active Directory Domain Services dan Active Directory Lightweight Directory Services. Pengguna mewakili orang atau entitas individual yang memiliki akses ke direktori Anda.

Untuk membuat pengguna di direktori AWS Directory Service, Anda menggunakan instans on-premise atau Amazon EC2 berdasarkan Microsoft Windows yang digabungkan ke direktori AWS Directory Service Anda. Anda harus login ke instans sebagai pengguna yang memiliki hak istimewa untuk membuat pengguna. Untuk informasi selengkapnya, lihat Mengelola pengguna dan grup di AWS Managed Microsoft AD di Panduan Administrasi Layanan Direktori AWS.

Langkah 5: Buat atau modifikasi klaster DB Aurora MySQL

Buat atau modifikasi klaster DB Aurora MySQL untuk penggunaan dengan direktori Anda. Anda dapat menggunakan konsol, AWS CLI, atau API RDS untuk mengaitkan klaster DB dengan direktori. Anda dapat melakukan tugas ini dengan salah satu cara berikut:

Autentikasi Kerberos hanya didukung untuk klaster DB Aurora MySQL dalam VPC. Klaster DB boleh berada dalam VPC yang sama dengan direktori, atau dalam VPC yang berbeda. VPC klaster DB harus memiliki grup keamanan VPC yang memungkinkan komunikasi keluar ke direktori Anda.

Saat Anda menggunakan konsol untuk membuat, memodifikasi, atau memulihkan klaster DB, pilih Autentikasi Kerberos di bagian Autentikasi basis data. Pilih Jelajah Direktori lalu pilih direktori, atau pilih Buat direktori baru.

Pengaturan autentikasi Kerberos saat membuat klaster DB

Saat Anda menggunakan AWS CLI atau API RDS, kaitkan klaster DB dengan direktori. Parameter berikut diperlukan agar klaster DB dapat menggunakan direktori domain yang Anda buat:

  • Untuk parameter , gunakan pengidentifikasi domain (pengidentifikasi "d-*") yang dihasilkan saat Anda membuat direktori.

  • Untuk parameter --domain-iam-role-name, gunakan peran yang Anda buat yang menggunakan kebijakan IAM terkelola AmazonRDSDirectoryServiceAccess.

Misalnya, perintah CLI berikut memodifikasi klaster DB untuk menggunakan direktori.

Untuk Linux, macOS, atau Unix:

aws rds modify-db-cluster \ --db-cluster-identifier mydbcluster \ --domain d-ID \ --domain-iam-role-name role-name

Untuk Windows:

aws rds modify-db-cluster ^ --db-cluster-identifier mydbcluster ^ --domain d-ID ^ --domain-iam-role-name role-name
penting

Jika Anda memodifikasi klaster DB untuk mengaktifkan autentikasi Kerberos, lakukan boot ulang terhadap instans DB pembaca setelah melakukan perubahan.

Langkah 6: Buat pengguna MySQL Aurora yang menggunakan autentikasi Kerberos

Klaster DB digabungkan ke domain AWS Managed Microsoft AD. Jadi, Anda dapat membuat pengguna Aurora MySQL dari pengguna Active Directory di domain Anda. Izin basis data dikelola melalui izin Aurora MySQL standar yang diberikan kepada dan dicabut dari pengguna ini.

Anda dapat mengizinkan pengguna Active Directory untuk mengautentikasi dengan Aurora MySQL. Untuk melakukannya, pertama-tama gunakan kredensial pengguna primer Amazon RDS untuk terhubung ke klaster DB Aurora MySQL seperti klaster DB lainnya. Setelah Anda login, buat pengguna yang diautentikasi secara eksternal dengan autentikasi Kerberos di Aurora MySQL seperti yang ditunjukkan di sini:

CREATE USER user_name@'host_name' IDENTIFIED WITH 'authentication_kerberos' BY 'realm_name';
  • Ganti user_name dengan nama pengguna. Pengguna (baik manusia maupun aplikasi) dari domain Anda sekarang dapat terhubung ke klaster DB dari mesin klien yang digabungkan ke domain menggunakan autentikasi Kerberos.

  • Ganti host_name dengan nama host. Anda dapat menggunakan % sebagai wildcard. Anda juga dapat menggunakan alamat IP tertentu untuk nama host.

  • Ganti realm_name dengan nama realm direktori domain. Nama realm biasanya sama dengan nama domain DNS dalam huruf besar, seperti CORP.EXAMPLE.COM. Realm adalah sekelompok sistem yang menggunakan Pusat Distribusi Kunci Kerberos yang sama.

Contoh berikut ini menciptakan pengguna basis data dengan nama Admin yang mengautentikasi terhadap Active Directory dengan nama realm MYSQL.LOCAL.

CREATE USER Admin@'%' IDENTIFIED WITH 'authentication_kerberos' BY 'MYSQL.LOCAL';

Memodifikasi login Aurora MySQL yang ada

Anda juga dapat memodifikasi login Aurora MySQL yang ada untuk menggunakan autentikasi Kerberos dengan menggunakan sintaks berikut:

ALTER USER user_name IDENTIFIED WITH 'authentication_kerberos' BY 'realm_name';

Langkah 7: Konfigurasi klien MySQL

Untuk mengonfigurasi klien MySQL, lakukan langkah-langkah berikut:

  1. Buat file krb5.conf (atau yang setara) untuk menunjuk ke domain.

  2. Periksa bahwa lalu lintas dapat mengalir antara host klien dan AWS Directory Service. Gunakan utilitas jaringan seperti Netcat, untuk tugas-tugas berikut:

    • Periksa lalu lintas atas DNS untuk port 53.

    • Memeriksa lalu lintas melalui TCP/UDP untuk port 53 dan untuk Kerberos, yang mencakup port 88 dan 464 untuk AWS Directory Service.

  3. Periksa bahwa trafik dapat mengalir antara host klien dan instans basis data melalui port basis data. Misalnya, gunakan mysql untuk menghubungkan dan mengakses basis data.

Berikut ini adalah contoh konten krb5.conf untuk AWS Managed Microsoft AD.

[libdefaults] default_realm = EXAMPLE.COM [realms] EXAMPLE.COM = { kdc = example.com admin_server = example.com } [domain_realm] .example.com = EXAMPLE.COM example.com = EXAMPLE.COM

Berikut ini adalah contoh konten krb5.conf untuk Microsoft Active Directory on-premise.

[libdefaults] default_realm = EXAMPLE.COM [realms] EXAMPLE.COM = { kdc = example.com admin_server = example.com } ONPREM.COM = { kdc = onprem.com admin_server = onprem.com } [domain_realm] .example.com = EXAMPLE.COM example.com = EXAMPLE.COM .onprem.com = ONPREM.COM onprem.com = ONPREM.COM .rds.amazonaws.com = EXAMPLE.COM .amazonaws.com.cn = EXAMPLE.COM .amazon.com = EXAMPLE.COM

Langkah 8: (Opsional) Lakukan konfigurasi perbandingan nama pengguna yang tidak peka huruf besar/kecil

Secara default, huruf besar/kecil nama pengguna basis data MySQL harus sesuai dengan login Active Directory. Namun, Anda sekarang dapat menggunakan perbandingan nama pengguna yang tidak peka huruf besar/kecil dengan plugin authentication_kerberos. Untuk melakukannya, Anda mengatur parameter klaster DB authentication_kerberos_caseins_cmp ke true.

Menggunakan perbandingan nama pengguna yang tidak peka huruf besar/kecil
  1. Buat grup parameter klaster DB kustom. Ikuti prosedur di Membuat grup parameter klaster DB.

  2. Edit grup parameter baru untuk mengatur nilai authentication_kerberos_caseins_cmp ke true. Ikuti prosedur di Mengubah parameter dalam grup parameter klaster DB.

  3. Kaitkan grup parameter klaster DB dengan klaster DB Aurora MySQL Anda. Ikuti prosedur di Mengaitkan grup parameter klaster DB dengan klaster DB.

  4. Boot ulang klaster DB.