Penggunaan Kerberos otentikasi untuk Amazon RDS untuk Microsoft Server SQL - Layanan Basis Data Relasional Amazon

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

Penggunaan Kerberos otentikasi untuk Amazon RDS untuk Microsoft Server SQL

Anda dapat menggunakan otentikasi Kerberos untuk mengautentikasi pengguna saat mereka terhubung ke instans My DB Anda. SQL Instans DB bekerja dengan AWS Directory Service for Microsoft Active Directory (AWS Managed Microsoft AD) untuk mengaktifkan otentikasi Kerberos. Ketika pengguna mengautentikasi dengan instans SQL DB Saya bergabung ke domain kepercayaan, permintaan otentikasi diteruskan. Permintaan yang diteruskan pergi ke direktori domain yang Anda buat dengan. AWS Directory Service

Menyimpan semua kredensial Anda di direktori yang sama dapat menghemat waktu dan tenaga Anda. Dengan pendekatan ini, Anda memiliki tempat terpusat guna menyimpan dan mengelola kredensial untuk beberapa instans basis data. Menggunakan direktori juga dapat meningkatkan profil keamanan keseluruhan Anda.

Wilayah dan ketersediaan versi

Ketersediaan dan dukungan fitur bervariasi di seluruh versi spesifik dari setiap mesin basis data, dan di seluruh Wilayah AWS. Untuk informasi selengkapnya tentang versi dan ketersediaan Wilayah Amazon RDS dengan otentikasi Kerberos, lihat. Wilayah dan mesin DB yang Didukung untuk otentikasi Kerberos di Amazon RDS

Ikhtisar Menyiapkan otentikasi Kerberos untuk instans DB Saya SQL

Untuk mengatur otentikasi Kerberos untuk instans My SQL DB, selesaikan langkah-langkah umum berikut, yang dijelaskan lebih detail nanti:

  1. Gunakan AWS Managed Microsoft AD untuk membuat AWS Managed Microsoft AD direktori. Anda dapat menggunakan AWS Management Console, yang AWS CLI, atau AWS Directory Service untuk membuat direktori. Untuk detail tentang melakukannya, lihat Membuat AWS Managed Microsoft AD direktori Anda di Panduan AWS Directory Service Administrasi.

  2. Buat peran AWS Identity and Access Management (IAM) yang menggunakan IAM kebijakan terkelolaAmazonRDSDirectoryServiceAccess. Peran ini RDS memungkinkan Amazon melakukan panggilan ke direktori Anda.

    Agar peran mengizinkan akses, titik akhir AWS Security Token Service (AWS STS) harus diaktifkan di Wilayah AWS untuk AWS akun Anda. AWS STS endpoint aktif secara default di semua Wilayah AWS, dan Anda dapat menggunakannya tanpa tindakan lebih lanjut. Untuk informasi selengkapnya, lihat Mengaktifkan dan menonaktifkan AWS STSWilayah AWS dalam Panduan Pengguna. IAM

  3. Buat dan konfigurasikan pengguna di AWS Managed Microsoft AD direktori menggunakan alat Microsoft Active Directory. Untuk informasi selengkapnya tentang membuat pengguna di Active Directory, lihat Mengelola pengguna dan grup di Microsoft AD AWS terkelola di Panduan AWS Directory Service Administrasi.

  4. Membuat atau memodifikasi instans My SQL DB. Jika Anda menggunakan salah satu CLI atau RDS API dalam permintaan buat, tentukan pengenal domain dengan Domain parameter. Gunakan pengidentifikasi d-* yang dihasilkan saat Anda membuat direktori Anda dan nama peran yang Anda buat.

    Jika Anda memodifikasi instans My SQL DB yang ada untuk menggunakan otentikasi Kerberos, tetapkan parameter domain dan IAM peran untuk instans DB. Temukan instans DB VPC sama dengan direktori domain.

  5. Gunakan kredensyal pengguna RDS master Amazon untuk terhubung ke instans SQL DB Saya. Buat pengguna di My SQL menggunakan CREATE USER klausaIDENTIFIED WITH 'auth_pam'. Pengguna yang Anda buat dengan cara ini dapat masuk ke instans My SQL DB menggunakan otentikasi Kerberos.

Menyiapkan otentikasi Kerberos untuk instans DB Saya SQL

Anda gunakan AWS Managed Microsoft AD untuk mengatur otentikasi Kerberos untuk instans DB SayaSQL. Untuk menyiapkan autentikasi Kerberos, lakukan langkah-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 Domain Name System (DNS) atas nama Anda. Server direktori dibuat dalam subnet yang berbeda di file. VPC Redundansi ini membantu memastikan bahwa direktori Anda tetap dapat diakses meskipun terjadi kegagalan.

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

  • Menyiapkan Active Directory di dalam fileVPC.

  • 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 pengontrol direktori.

Saat Anda meluncurkan AWS Managed Microsoft AD, AWS buat Unit Organisasi (OU) yang berisi semua objek direktori Anda. OU ini memiliki BIOS nama Net yang Anda ketik ketika Anda membuat direktori Anda dan terletak di root domain. Root domain dimiliki dan dikelola oleh AWS.

Akun Admin 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 OUs dan kontainer tambahan

  • Melimpahkan kewenangan

  • Memulihkan objek-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 melakukan aktivitas-aktivitas selingkup domain berikut:

  • Mengelola DNS konfigurasi (menambah, menghapus, atau memperbarui catatan, zona, dan forwarder)

  • Lihat log DNS acara

  • Melihat log peristiwa keamanan

Untuk membuat direktori dengan AWS Managed Microsoft AD
  1. Masuk ke AWS Management Console dan buka AWS Directory Service konsol 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 pilihan yang saat ini dapat Anda gunakan dengan AmazonRDS.

  4. Masukkan informasi berikut:

    Nama Directory DNS

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

    BIOSNama Direktori Net

    Nama singkat untuk direktori, seperti CORP.

    Deskripsi direktori

    (Opsional) Deskripsi untuk 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 bersifat peka kapital dan harus terdiri atas 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 (~!@#$%^&*_-+=`|\(){}[]:;"'<>,.?/)

    Ulangi kata sandi

    Kata sandi administrator diketik ulang.

  5. Pilih Berikutnya.

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

    VPC

    VPCUntuk direktori. Buat instance My SQL DB dalam hal yang sama iniVPC.

    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.

    Jendela Review & create selama pembuatan direktori di AWS Directory Service konsol.

Dibutuhkan beberapa menit sampai direktori terbuat. Setelah direktori berhasil dibuat, nilai Status berubah menjadi Aktif.

Untuk melihat informasi tentang direktori Anda, pilih nama direktori di daftar direktori. Perhatikan nilai ID Direktori karena Anda memerlukan nilai ini saat membuat atau memodifikasi instans My SQL DB Anda.

Bagian Detail direktori dengan ID Direktori di AWS Directory Service konsol.

Langkah 2: Buat IAM peran untuk digunakan oleh Amazon RDS

RDSAgar Amazon dapat memanggil AWS Directory Service Anda, diperlukan IAM peran yang menggunakan IAM kebijakan AmazonRDSDirectoryServiceAccess terkelola. Peran ini memungkinkan Amazon RDS untuk melakukan panggilan ke AWS Directory Service.

Ketika instans DB dibuat menggunakan AWS Management Console dan pengguna konsol memiliki iam:CreateRole izin, konsol membuat peran ini secara otomatis. Dalam hal ini, nama perannya adalah rds-directoryservice-kerberos-access-role. Jika tidak, Anda harus membuat IAM peran secara manual. Saat Anda membuat IAM peran ini, pilihDirectory Service, dan lampirkan kebijakan AWS terkelola AmazonRDSDirectoryServiceAccess padanya.

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

catatan

IAMPeran yang digunakan untuk Windows Authentication RDS for for SQL Server tidak dapat digunakan RDS untuk MySQL.

Secara opsional, Anda dapat membuat kebijakan dengan izin yang diperlukan alih-alih menggunakan kebijakan terkelolaIAM. AmazonRDSDirectoryServiceAccess Dalam hal ini, IAM peran harus memiliki kebijakan IAM kepercayaan berikut.

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

Peran tersebut juga harus memiliki kebijakan IAM peran berikut.

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

Langkah 3: Buat dan konfigurasikan pengguna

Anda dapat membuat pengguna dengan alat Active Directory Users and Computers. Alat ini bagian dari alat-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 AWS Directory Service direktori, Anda harus terhubung ke EC2 instans Amazon berdasarkan Microsoft Windows. Instance ini harus menjadi anggota AWS Directory Service direktori dan masuk 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 4: Membuat atau memodifikasi instans My SQL DB

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

Otentikasi Kerberos hanya didukung untuk instans SQL DB Saya di file. VPC Instans DB bisa VPC sama dengan direktori, atau berbedaVPC. Instans DB harus menggunakan grup keamanan yang memungkinkan jalan keluar dalam direktori VPC sehingga instans DB dapat berkomunikasi dengan direktori.

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

Bagian otentikasi Database dengan Password dan otentikasi Kerberos dipilih di konsol Amazon. RDS

Saat Anda menggunakan AWS CLI or RDSAPI, kaitkan instance DB dengan direktori. Parameter-parameter berikut diperlukan bagi instans basis data untuk menggunakan direktori domain yang Anda buat:

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

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

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

Untuk Linux, macOS, atau Unix:

aws rds modify-db-instance \ --db-instance-identifier mydbinstance \ --domain d-ID \ --domain-iam-role-name role-name

Untuk Windows:

aws rds modify-db-instance ^ --db-instance-identifier mydbinstance ^ --domain d-ID ^ --domain-iam-role-name role-name
penting

Jika Anda mengubah instans basis data untuk mengaktifkan autentikasi Kerberos, boot ulang instans basis data setelah membuat perubahan.

Langkah 5: Buat otentikasi Kerberos Login saya SQL

Gunakan kredensyal pengguna RDS master Amazon untuk terhubung ke instans SQL DB Saya seperti yang Anda lakukan pada instans DB lainnya. Instans DB bergabung ke AWS Managed Microsoft AD domain. Dengan demikian, Anda dapat menyediakan SQL login dan pengguna saya dari pengguna Active Directory di domain Anda. Izin database dikelola melalui SQL izin Saya standar yang diberikan dan dicabut dari login ini.

Anda dapat mengizinkan pengguna Active Directory untuk mengautentikasi dengan MySQL. Untuk melakukan ini, pertama-tama gunakan kredensyal pengguna RDS master Amazon untuk terhubung ke instans SQL DB Saya seperti halnya instans DB lainnya. Setelah Anda masuk, buat pengguna yang diautentikasi secara eksternal dengan PAM (Pluggable Authentication Modules) di My SQL dengan menjalankan perintah berikut. Ganti testuser dengan nama pengguna.

CREATE USER 'testuser'@'%' IDENTIFIED WITH 'auth_pam';

Pengguna (baik orang maupun aplikasi) dari domain Anda kini dapat menghubungi instans basis data dari mesin klien yang digabungkan dengan domain dengan menggunakan autentikasi Kerberos.

penting

Kami sangat menyarankan agar klien menggunakanSSL/TLSkoneksi saat menggunakan PAM otentikasi. Jika mereka tidak menggunakanSSL/TLSkoneksi, kata sandi mungkin dikirim sebagai teks yang jelas dalam beberapa kasus. Untuk memerlukan koneksiSSL/TLSterenkripsi untuk pengguna AD Anda, jalankan perintah berikut dan ganti testuser dengan nama pengguna:

ALTER USER 'testuser'@'%' REQUIRE SSL;

Untuk informasi selengkapnya, lihat SSL/TLSdukungan untuk instans SQL DB Saya di Amazon RDS.

Mengelola instans basis data dalam domain

Anda dapat menggunakan CLI atau RDS API untuk mengelola instans DB Anda dan hubungannya dengan Direktori Aktif terkelola Anda. Misalnya, Anda dapat mengaitkan Active Directory untuk autentikasi Kerberos dan melepaskan Active Directory untuk menonaktifkan autentikasi Kerberos. Anda juga dapat memindahkan instans basis data agar diautentikasi secara eksternal oleh satu Active Directory ke yang lain.

Misalnya, menggunakan Amazon RDSAPI, Anda dapat melakukan hal berikut:

  • Untuk mencoba kembali mengaktifkan otentikasi Kerberos untuk keanggotaan yang gagal, gunakan ModifyDBInstance API operasi dan tentukan ID direktori keanggotaan saat ini.

  • Untuk memperbarui nama IAM peran untuk keanggotaan, gunakan ModifyDBInstance API operasi dan tentukan ID direktori keanggotaan saat ini dan IAM peran baru.

  • Untuk menonaktifkan otentikasi Kerberos pada instance DB, gunakan ModifyDBInstance API operasi dan tentukan none sebagai parameter domain.

  • Untuk memindahkan instance DB dari satu domain ke domain lainnya, gunakan ModifyDBInstance API operasi dan tentukan pengidentifikasi domain domain baru sebagai parameter domain.

  • Untuk daftar keanggotaan untuk setiap instans DB, gunakan DescribeDBInstances API operasi.

Memahami keanggotaan domain

Setelah Anda membuat atau mengubah instans basis data, instans akan menjadi anggota domain. Anda dapat melihat status keanggotaan domain untuk instans DB dengan menjalankan describe-db-instancesCLIperintah. Status instans DB dapat berupa salah satu dari daftar berikut:

  • kerberos-enabled – Instans basis data telah mengaktifkan autentikasi Kerberos.

  • enabling-kerberos— AWS sedang dalam proses mengaktifkan otentikasi Kerberos pada instance DB ini.

  • pending-enable-kerberos – Pengaktifan autentikasi Kerberos tertunda pada instans basis data ini.

  • pending-maintenance-enable-kerberos— AWS akan mencoba mengaktifkan otentikasi Kerberos pada instans DB selama jendela pemeliharaan terjadwal berikutnya.

  • pending-disable-kerberos – Penonaktifan autentikasi Kerberos tertunda pada instans basis data ini.

  • pending-maintenance-disable-kerberos— AWS akan mencoba menonaktifkan otentikasi Kerberos pada instans DB selama jendela pemeliharaan terjadwal berikutnya.

  • enable-kerberos-failed – Sebuah masalah konfigurasi mencegah AWS dari mengaktifkan autentikasi Kerberos pada instans basis data. Periksa dan perbaiki konfigurasi Anda sebelum menerbitkan ulang perintah MODIFY instans basis data.

  • disabling-kerberos— AWS sedang dalam proses menonaktifkan otentikasi Kerberos pada instans DB ini.

Permintaan untuk mengaktifkan otentikasi Kerberos dapat gagal karena masalah konektivitas jaringan atau peran yang salah. IAM Misalnya, anggap bahwa Anda membuat instans basis data atau mengubah instans basis data yang sudah ada dan upaya mengaktifkan autentikasi Kerberos gagal. Jika ini terjadi, terbitkan ulang perintah pengubahan atau ubah instans basis data yang baru dibuat untuk bergabung dengan domain.

Menghubungkan ke My SQL dengan otentikasi Kerberos

Untuk terhubung ke My SQL dengan otentikasi Kerberos, Anda harus masuk menggunakan jenis otentikasi Kerberos.

Untuk membuat pengguna basis data yang dapat Anda hubungi dengan menggunakan autentikasi Kerberos, gunakan klausul IDENTIFIED WITH pada pernyataan CREATE USER. Lihat petunjuk di Langkah 5: Buat otentikasi Kerberos Login saya SQL.

Untuk menghindari kesalahan, gunakan klien mysql MariaDB. Anda dapat mengunduh perangkat lunak MariaDB di https://downloads.mariadb.org/.

Pada prompt perintah, sambungkan ke salah satu titik akhir yang terkait dengan instans My SQL DB Anda. Ikuti prosedur-prosedur umum dalam Menghubungkan ke instans DB yang menjalankan mesin SQL database Saya. Saat Anda diminta untuk memasukkan kata sandi, masukkan kata sandi Kerberos yang terkait dengan nama penggunanya.

Memulihkan instans SQL DB Saya dan menambahkannya ke domain

Anda dapat memulihkan snapshot DB atau menyelesaikan point-in-time pemulihan untuk instans SQL DB Saya dan kemudian menambahkannya ke domain. Setelah instans basis data dipulihkan, ubah instans itu dengan menggunakan proses yang dijelaskan dalam Langkah 4: Membuat atau memodifikasi instans My SQL DB untuk menambahkannya ke domain.

Otentikasi Kerberos Keterbatasan saya SQL

Batasan berikut berlaku untuk otentikasi Kerberos untuk My: SQL

  • Hanya sebuah AWS Managed Microsoft AD yang didukung. Namun, Anda dapat bergabung RDS untuk instans SQL DB Saya ke domain Microsoft AD Terkelola bersama yang dimiliki oleh akun yang berbeda secara bersamaan. Wilayah AWS

  • Anda harus mem-boot ulang instans basis data setelah mengaktifkan fitur ini.

  • Panjang nama domain tidak boleh lebih dari 61 karakter.

  • Anda tidak dapat mengaktifkan otentikasi dan IAM otentikasi Kerberos secara bersamaan. Pilih satu metode otentikasi atau yang lain untuk instans My SQL DB Anda.

  • Jangan ubah port instans basis data setelah mengaktifkan fitur ini.

  • Jangan gunakan autentikasi Kerberos dengan replika baca.

  • Jika Anda mengaktifkan pemutakhiran versi minor otomatis untuk instans SQL DB Saya yang menggunakan otentikasi Kerberos, Anda harus mematikan otentikasi Kerberos dan kemudian menyalakannya kembali setelah pemutakhiran otomatis. Lihat informasi yang lebih lengkap tentang peningkatan versi auto kecil di Upgrade versi minor otomatis RDS untuk My SQL.

  • Untuk menghapus instans basis data dengan fitur ini aktif, pertama-tama nonaktifkan fitur. Untuk melakukannya, gunakan modify-db-instance CLI perintah untuk instance DB dan tentukan none --domain parameternya.

    Jika Anda menggunakan CLI atau RDS API untuk menghapus instans DB dengan fitur ini diaktifkan, harapkan penundaan.

  • RDSuntuk My SQL tidak mendukung otentikasi Kerberos di seluruh kepercayaan hutan antara AD di lokasi atau yang dihosting sendiri dan. AWS Managed Microsoft AD