Menyiapkan autentikasi Kerberos untuk klaster DB PostgreSQL - 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 PostgreSQL

Untuk menyiapkan autentikasi Kerberos, lakukan langkah berikut.

Langkah 1: Buat direktori menggunakan AWS Managed Microsoft AD

AWS Directory Service membuat Direktori Aktif yang dikelola sepenuhnya di AWS Cloud. Saat Anda membuat AWS Managed Microsoft AD direktori, AWS Directory Service buat dua pengontrol domain dan server DNS untuk Anda. Server-server direktori dibuat di subnet yang berbeda di VPC. Redundansi ini membantu memastikan bahwa direktori Anda tetap dapat diakses meskipun terjadi kegagalan.

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

  • Menyiapkan Active Directory di dalam VPC Anda.

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

    penting

    Pastikan untuk menyimpan kata sandi ini. AWS Directory Service tidak menyimpan kata sandi ini, dan tidak dapat diambil atau diatur ulang.

  • Membuat grup keamanan untuk pengendali direktori. Grup keamanan harus mengizinkan komunikasi dengan klaster DB PostgreSQL.

Saat Anda meluncurkan AWS Directory Service for Microsoft Active Directory, AWS buat Unit Organisasi (OU) yang berisi semua objek direktori Anda. OU ini memiliki nama NetBIOS yang Anda masukkan saat membuat direktori, dan terletak di root domain. Root domain dimiliki dan dikelola oleh AWS.

AdminAkun yang dibuat dengan AWS Managed Microsoft AD direktori Anda memiliki izin untuk kegiatan administratif yang paling umum untuk OU Anda:

  • Membuat, memperbarui, atau menghapus pengguna

  • Menambahkan sumber daya ke domain Anda seperti server file atau cetak, lalu menetapkan izin untuk sumber daya tersebut kepada pengguna di OU Anda

  • Buat tambahan OUs dan wadah

  • Melimpahkan kewenangan

  • Memulihkan objek-objek yang dihapus dari Keranjang Sampah Active Directory

  • Jalankan modul Active Directory dan Domain Name Service (DNS) untuk Windows PowerShell pada Layanan Active Directory Web

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. Di panel navigasi konsol AWS Directory Service, pilih Direktori, lalu pilih Siapkan direktori.

  2. Pilih AWS Managed Microsoft AD. AWS Managed Microsoft AD adalah satu-satunya pilihan yang saat ini didukung untuk digunakan dengan Amazon Aurora RDS.

  3. Pilih Berikutnya.

  4. Di halaman Masukkan informasi direktori, berikan informasi berikut:

    Edisi

    Pilih edisi sesuai kebutuhan Anda.

    Nama DNS direktori

    Nama berkualifikasi penuh untuk direktori, seperti corp.example.com.

    Nama NetBIOS direktori

    Nama pendek opsional untuk direktori, seperti CORP.

    Deskripsi direktori

    Deskripsi opsional untuk direktori.

    Kata sandi admin

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

    Kata sandi administrator direktori 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 (~!@#$%^&*_-+=`|\(){}[]:;"'<>,.?/)

    Konfirmasi kata sandi

    Ketik ulang kata sandi administrator.

    penting

    Pastikan Anda menyimpan kata sandi ini. AWS Directory Service tidak menyimpan kata sandi ini, dan tidak dapat diambil atau diatur ulang.

  5. Pilih Berikutnya.

  6. Di halaman Pilih VPC dan subnet, berikan informasi berikut:

    VPC

    Pilih VPC untuk direktori. Anda dapat membuat klaster DB PostgreSQL dalam VPC yang sama ini atau dalam VPC yang berbeda.

    Subnet

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

  7. Pilih Berikutnya.

  8. Tinjau informasi direktori. Jika ada yang perlu diubah, pilih Sebelumnya dan lakukan perubahan. Jika informasi sudah benar, pilih Buat direktori.

    Halaman detail direktori

Pembuatan direktori memerlukan waktu beberapa menit. Setelah berhasil dibuat, nilai Status berubah menjadi Aktif.

Untuk melihat informasi tentang direktori Anda, pilih ID direktori di daftar direktori. Buat catatan tentang nilai ID Direktori. Anda memerlukan nilai ini saat membuat atau mengubah instans DB PostgreSQL.

Gambar halaman detail

Langkah 2: (Opsional) Buat hubungan kepercayaan antara Active Directory on-premise Anda dan AWS Directory Service

Jika Anda tidak berencana untuk menggunakan Microsoft Active Directory on-premise Anda sendiri, langsung ke Langkah 3: Buat peran IAM untuk Amazon RDS untuk mengakses AWS Directory Service.

Untuk mendapatkan autentikasi Kerberos menggunakan Active Directory lokal, Anda perlu membuat relasi domain kepercayaan menggunakan trust hutan antara Microsoft Active Directory lokal dan direktori (dibuat di AWS Managed Microsoft AD ). Langkah 1: Buat direktori menggunakan AWS Managed Microsoft AD Kepercayaan bisa satu arah, di mana AWS Managed Microsoft AD direktori mempercayai Microsoft Active Directory lokal. Kepercayaan juga dapat bersifat dua arah, di mana kedua Active Directory saling mempercayai. Untuk informasi selengkapnya tentang menyiapkan trust menggunakan AWS Directory Service, lihat Kapan membuat hubungan kepercayaan di Panduan AWS Directory Service Administrasi.

catatan

Jika Anda menggunakan Microsoft Active Directory on-premise:

  • Klien Windows harus terhubung menggunakan nama domain AWS Directory Service di titik akhir daripada rds.amazonaws.com. Untuk informasi selengkapnya, lihat Menghubungkan ke PostgreSQL dengan autentikasi Kerberos.

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

  • Untuk basis data global:

    • Klien Windows dapat terhubung menggunakan titik akhir instance atau titik akhir cluster di primer Wilayah AWS database global saja.

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

Pastikan bahwa nama domain Microsoft Active Directory on-premise Anda mencakup perutean akhiran 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 Amazon RDS untuk mengakses AWS Directory Service

Agar Amazon Aurora Amazon memanggil AWS Directory Service Anda, AWS akun Anda memerlukan peran IAM yang menggunakan kebijakan IAM terkelola. AmazonRDSDirectoryServiceAccess Peran ini membuat Amazon Aurora dapat melakukan panggilan ke AWS Directory Service. (Perhatikan bahwa peran IAM ini untuk mengakses berbeda dari peran IAM yang digunakan.) AWS Directory Service Autentikasi basis data IAM

Saat Anda membuat instans DB menggunakan AWS Management Console dan akun pengguna konsol Anda memiliki iam:CreateRole izin, konsol akan membuat peran IAM yang diperlukan 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, pilihDirectory Service, dan lampirkan kebijakan AWS terkelola AmazonRDSDirectoryServiceAccess padanya.

Untuk informasi selengkapnya tentang membuat peran IAM untuk layanan, lihat Membuat peran untuk mendelegasikan izin ke AWS layanan di Panduan Pengguna IAM.

catatan

Peran IAM yang digunakan untuk Autentikasi Windows untuk RDS for Microsoft SQL Server tidak dapat digunakan untuk Amazon Aurora.

Sebagai alternatif untuk menggunakan kebijakan terkelola AmazonRDSDirectoryServiceAccess, Anda dapat membuat kebijakan dengan izin yang diperlukan. Dalam hal ini, peran IAM harus memiliki kebijakan kepercayaan IAM berikut.

JSON
{ "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.

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

Untuk keikutsertaan Wilayah AWS, gunakan prinsip layanan khusus Wilayah dalam kebijakan kepercayaan peran IAM. Saat Anda membuat kebijakan kepercayaan untuk layanan di Wilayah ini, tentukan kode Wilayah di prinsipal layanan.

Contoh berikut menunjukkan kebijakan kepercayaan yang mencakup prinsip layanan khusus Wilayah:

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

Ganti REGION-CODE dengan kode untuk Wilayah spesifik Anda. Misalnya, gunakan prinsip layanan berikut untuk Wilayah Asia Pasifik (Melbourne):

"Service": [ "directoryservice.rds.ap-southeast-4.amazonaws.com", "rds.ap-southeast-4.amazonaws.com" ]

Langkah 4: Buat dan konfigurasikan pengguna

Anda dapat membuat pengguna dengan alat Active Directory Users and Computers. Alat ini merupakan salah satu alat Active Directory Domain Services dan Active Directory Lightweight Directory Services. Untuk informasi selengkapnya, lihat Add Users and Computers to the Active Directory domain dalam dokumentasi Microsoft. Dalam hal ini, pengguna adalah individu atau entitas lain, seperti komputer mereka yang merupakan bagian dari domain dan yang identitasnya dipertahankan dalam direktori.

Untuk membuat pengguna di AWS Directory Service direktori, Anda harus terhubung ke EC2 instance Amazon berbasis Windows yang merupakan anggota direktori. AWS Directory Service Pada saat yang sama, Anda harus masuk sebagai pengguna yang memiliki hak untuk membuat pengguna. Untuk informasi selengkapnya, lihat Membuat pengguna dalam Panduan Administrasi AWS Directory Service .

Langkah 5: Aktifkan lalu lintas antar-VPC antara direktori dan instans DB

Jika Anda ingin menemukan direktori dan klaster DB dalam VPC yang sama, lewati langkah ini dan lanjutkan ke Langkah 6: Buat atau modifikasi klaster DB PostgreSQL.

Jika Anda berencana untuk menemukan direktori dan instans DB yang berbeda VPCs, konfigurasikan lalu lintas lintas VPC menggunakan pengintip VPC atau Transit Gateway.AWS

Prosedur berikut memungkinkan lalu lintas antara VPCs menggunakan VPC peering. Ikuti petunjuk di Apa yang dimaksud dengan peering VPC? dalam Panduan Peering Amazon Virtual Private Cloud.

Untuk mengaktifkan lalu lintas VPC menggunakan peering VPC
  1. Siapkan aturan perutean VPC yang sesuai untuk memastikan lalu lintas jaringan dapat berjalan dua arah.

  2. Pastikan bahwa grup keamanan instans DB dapat menerima lalu lintas masuk dari grup keamanan direktori.

  3. Pastikan tidak ada aturan daftar kontrol akses (ACL) jaringan yang memblokir lalu lintas.

Jika AWS akun lain memiliki direktori, Anda harus berbagi direktori.

Untuk berbagi direktori antar AWS akun
  1. Mulai berbagi direktori dengan AWS akun tempat instans DB akan dibuat dengan mengikuti petunjuk di Tutorial: Berbagi direktori AD Microsoft AWS Terkelola Anda untuk EC2 Domain yang mulus-Bergabung dalam Panduan Administrasi.AWS Directory Service

  2. Masuk ke AWS Directory Service konsol menggunakan akun untuk instans DB, dan pastikan domain memiliki SHARED status sebelum melanjutkan.

  3. Saat masuk ke AWS Directory Service konsol menggunakan akun untuk instans DB, perhatikan nilai ID Direktori. Anda menggunakan ID direktori ini untuk menggabungkan instans DB ke domain.

Langkah 6: Buat atau modifikasi klaster DB PostgreSQL

Buat atau modifikasi klaster DB PostgreSQL untuk digunakan dengan direktori Anda. Anda dapat menggunakan konsol, CLI, atau RDS API untuk mengaitkan klaster DB dengan direktori. Anda dapat melakukannya dengan salah satu cara berikut:

Autentikasi Kerberos hanya didukung untuk klaster DB PostgreSQL dalam sebuah VPC. Klaster DB boleh berada dalam VPC yang sama dengan direktori, atau dalam VPC yang berbeda. Klaster DB harus menggunakan grup keamanan yang memungkinkan ingress and egress di dalam VPC direktori, sehingga klaster DB dapat berkomunikasi dengan direktori.

catatan

Mengaktifkan otentikasi Kerberos saat ini tidak didukung di klaster Aurora PostgreSQL DB selama migrasi dari RDS untuk PostgreSQL. Anda dapat mengaktifkan otentikasi Kerberos hanya pada cluster Aurora PostgreSQL DB mandiri.

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

Memilih Kerberos untuk autentikasi dan mengidentifikasi direktori yang akan digunakan.

Saat Anda menggunakan AWS CLI, parameter berikut diperlukan untuk cluster DB agar dapat menggunakan direktori yang Anda buat:

  • Untuk parameter --domain, 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.

aws rds modify-db-cluster --db-cluster-identifier mydbinstance --domain d-Directory-ID --domain-iam-role-name role-name
penting

Jika Anda memodifikasi klaster DB untuk mengaktifkan autentikasi Kerberos, boot ulang klaster DB setelah membuat perubahan.

Langkah 7: Buat pengguna PostgreSQL untuk pengguna utama Kerberos Anda

Pada titik ini, klaster DB Aurora PostgreSQL Anda digabungkan ke domain AWS Managed Microsoft AD . Pengguna yang Anda buat di direktori Langkah 4: Buat dan konfigurasikan pengguna perlu diatur sebagai pengguna basis data PostgreSQL dan diberi hak istimewa untuk masuk ke basis data. Anda dapat melakukannya dengan masuk sebagai pengguna basis data dengan hak istimewa rds_superuser. Misalnya, jika Anda menerima default saat membuat klaster DB Aurora PostgreSQL, , gunakan postgres, seperti yang ditunjukkan dalam langkah berikut.

Untuk membuat pengguna basis data PostgreSQL untuk pengguna utama Kerberos
  1. Gunakan psql untuk menghubungkan ke titik akhir klaster DB Aurora PostgreSQL instans DB menggunakan psql. Contoh berikut menggunakan akun postgres default untuk peran rds_superuser.

    psql --host=cluster-instance-1.111122223333.aws-region.rds.amazonaws.com --port=5432 --username=postgres --password
  2. Buat nama pengguna basis data untuk setiap pengguna utama Kerberos (nama pengguna Active Directory) yang ingin Anda beri akses ke basis data. Gunakan nama pengguna (identitas) kanonik seperti yang didefinisikan dalam instans Active Directory, yaitu alias dalam huruf kecil (nama pengguna di Active Directory) dan nama domain Active Directory dalam huruf besar untuk nama pengguna tersebut. Nama pengguna Active Directory adalah pengguna yang diautentikasi secara eksternal, jadi gunakan tanda kutip pada nama ini seperti yang ditunjukkan berikut.

    postgres=> CREATE USER "username@CORP.EXAMPLE.COM" WITH LOGIN; CREATE ROLE
  3. Beri peran rds_ad kepada pengguna basis data.

    postgres=> GRANT rds_ad TO "username@CORP.EXAMPLE.COM"; GRANT ROLE

Setelah Anda selesai membuat semua pengguna PostgreSQL untuk identitas pengguna Active Directory Anda, pengguna dapat mengakses klaster DB Aurora PostgreSQL menggunakan kredensial Kerberos mereka.

Diperlukan bahwa pengguna database yang mengautentikasi menggunakan Kerberos melakukannya dari mesin klien yang merupakan anggota domain Active Directory.

Pengguna basis data yang telah diberi peran rds_ad tidak dapat memiliki peran rds_iam. Aturan ini juga berlaku untuk keanggotaan bertingkat. Untuk informasi selengkapnya, lihat Autentikasi basis data IAM.

Mengonfigurasi klaster DB Aurora PostgreSQL Anda untuk nama pengguna yang tidak peka huruf besar/kecil

Aurora PostgreSQL versi 14.5, 13.8, 12.12, dan 11.17 mendukung parameter krb_caseins_users PostgreSQL. Parameter ini mendukung nama pengguna Active Directory yang tidak peka huruf besar/kecil. Secara default, parameter ini diatur ke salah, sehingga nama pengguna ditafsirkan sebagai tidak peka huruf besar/kecil oleh Aurora PostgreSQL. Hal tersebut merupakan perilaku default di semua versi lama Aurora PostgreSQL. Namun, Anda dapat mengatur parameter ini ke true dalam grup parameter klaster DB kustom Anda dan mengizinkan klaster DB Aurora PostgreSQL Anda untuk menafsirkan nama pengguna sebagai tidak peka huruf besar/kecil. Sebaiknya lakukan hal ini agar memudahkan pengguna basis data Anda, yang terkadang salah mengetik kapitalisasi nama pengguna saat melakukan autentikasi menggunakan Active Directory.

Untuk mengubah parameter krb_caseins_users, klaster DB Aurora PostgreSQL Anda harus menggunakan grup parameter klaster DB kustom. Untuk informasi tentang penggunaan grup parameter klaster DB kustom, lihat .

Anda dapat menggunakan AWS CLI atau AWS Management Console untuk mengubah pengaturan. Untuk informasi selengkapnya, lihat Memodifikasi parameter dalam grup parameter cluster DB di Amazon Aurora.

Langkah 8: Konfigurasikan klien PostgreSQL

Untuk mengonfigurasi klien PostgreSQL, lakukan langkah berikut:

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

  • Verifikasi bahwa lalu lintas dapat mengalir antara host klien dan AWS Directory Service. Gunakan utilitas jaringan seperti Netcat untuk hal berikut:

    • Memeriksa lalu lintas melalui DNS untuk port 53.

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

  • Memastikan lalu lintas dapat mengalir di antara host klien dan instans DB melalui port basis data. Misalnya, gunakan psql 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 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.rproxy.govskope.ca.cn = EXAMPLE.COM .amazon.com = EXAMPLE.COM