Menyiapkan Otentikasi Windows untuk RDS Kustom untuk instance SQL Server - 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.

Menyiapkan Otentikasi Windows untuk RDS Kustom untuk instance SQL Server

Sebaiknya buat kredensyal OU dan layanan khusus yang tercakup pada OU tersebut untuk siapa pun Akun AWS yang memiliki instans RDS Custom for SQL Server DB yang bergabung dengan domain AD Anda. Dengan mendedikasikan kredensi OU dan layanan, Anda menghindari izin yang bertentangan dan mengikuti prinsip hak istimewa paling sedikit.

Kebijakan grup tingkat direktori aktif mungkin bertentangan dengan AWS otomatisasi dan izin. Sebaiknya pilih GPO yang hanya berlaku untuk OU yang Anda buat untuk RDS Custom for SQL Server.

  • Untuk membuat pengguna domain OU dan AD di AD yang dikelola sendiri atau di lokasi, Anda dapat menghubungkan pengontrol domain sebagai administrator domain.

  • Untuk membuat pengguna dan grup dalam AWS Directory Service direktori, Anda harus terhubung ke instance manajemen dan Anda juga harus masuk sebagai pengguna dengan hak istimewa untuk membuat pengguna dan grup. Untuk informasi selengkapnya, lihat Manajemen pengguna dan grup di AWS Managed Microsoft AD dalam Panduan AWS Directory Service Administrasi.

  • Untuk mengelola Active Directory dari instans Amazon EC2 Windows Server, Anda perlu menginstal layanan domain Active Directory dan alat layanan Active Directory Lightweight Directory pada EC2 instance. Untuk informasi selengkapnya, lihat Menginstal Alat Administrasi Direktori Aktif untuk AWS Managed Microsoft AD di Panduan AWS Directory Service Administrasi.

  • Kami menyarankan Anda menginstal alat ini pada EC2 instans terpisah untuk administrasi, dan bukan pada instans RDS Custom for SQL Server DB Anda untuk kemudahan administrasi.

Berikut ini adalah persyaratan untuk akun layanan domain AD:

  • Anda harus memiliki akun layanan di domain AD Anda dengan izin yang didelegasikan untuk bergabung dengan komputer ke domain. Akun layanan domain adalah akun pengguna di AD Anda yang telah mendelegasikan izin untuk melakukan tugas tertentu.

  • Delegasikan izin berikut ke akun layanan domain Anda di Unit Organisasi tempat Anda bergabung dengan instans RDS Custom for SQL Server:

    • Kemampuan tervalidasi untuk menulis ke nama host DNS

    • Kemampuan tervalidasi untuk menulis ke nama prinsipal layanan

    • Membuat dan menghapus objek komputer

  • Untuk AD yang dikelola sendiri dan lokal, akun layanan domain harus menjadi anggota grup "Administrator Sistem Nama Domain AWS Delegasi”.

  • Untuk AWS Managed Microsoft AD, akun layanan domain harus menjadi anggota grup DnsAdmins "”.

Ini adalah set minimum izin yang diperlukan untuk menggabungkan objek komputer ke AD yang dikelola sendiri dan. AWS Managed Microsoft AD Untuk informasi selengkapnya, lihat Kesalahan: Akses ditolak ketika pengguna non-administrator yang telah didelegasikan kontrol mencoba menggabungkan komputer ke pengontrol domain dalam dokumentasi Microsoft Windows Server.

penting

Jangan memindahkan objek komputer yang dibuat RDS Custom for SQL Server di Unit Organisasi (OU) setelah instans DB Anda dibuat. Memindahkan objek terkait dapat menyebabkan instans RDS Custom for SQL Server DB Anda menjadi salah konfigurasi. Jika Anda perlu memindahkan objek komputer yang dibuat oleh Amazon RDS, gunakan DBInstance tindakan Ubah untuk memodifikasi parameter domain dengan lokasi objek komputer yang diinginkan.

Langkah 1: Buat unit organisasi (OU) di AD Anda

Gunakan langkah-langkah berikut untuk membuat unit organisasi di AD Anda:

Buat OU di AD Anda
  1. Connect ke AD domain Anda sebagai administrator domain.

  2. Buka Active Directory Users and Computers dan pilih domain tempat Anda ingin membuat OU Anda.

  3. Klik kanan domain dan pilih Baru, lalu Unit Organisasi.

  4. Masukkan nama untuk OU.

    Aktifkan Lindungi wadah dari penghapusan yang tidak disengaja.

  5. Pilih OK. OU baru Anda muncul di bawah domain Anda.

Untuk AWS Managed Microsoft AD, nama OU ini didasarkan dari nama NetBIOS yang Anda ketik ketika Anda membuat direktori Anda. OU ini dimiliki oleh AWS dan berisi semua objek direktori AWS terkait Anda, yang Anda diberikan kendali penuh atas. Secara default, dua anak OUs ada di bawah OU ini, yaitu Komputer dan Pengguna. Baru OUs yang dibuat RDS Custom adalah anak dari OU yang didasarkan dari NetBIOS.

Langkah 2: Buat pengguna domain AD

Kredensyal pengguna domain digunakan untuk rahasia di Secrets Manager.

Membuat pengguna domain AD di AD
  1. Buka Pengguna dan Komputer Direktori Aktif dan pilih domain dan OU tempat Anda ingin membuat pengguna.

  2. Klik kanan objek Users dan pilih New, lalu User.

  3. Masukkan nama depan, nama belakang, dan nama login untuk pengguna. Klik Next.

  4. Masukkan kata sandi untuk pengguna. Jangan pilih Pengguna harus mengubah kata sandi saat login berikutnya atau Akun dinonaktifkan. . Klik Next.

  5. Klik OK. Pengguna baru Anda muncul di bawah domain Anda.

Langkah 3: Delegasikan kontrol ke pengguna AD dalam pengelolaan mandiri atau AWS Managed Microsoft AD

Untuk mendelegasikan kontrol ke pengguna domain AD di domain Anda
  1. Buka Active Directory Users and Computers MMC snap-in dan pilih domain Anda.

  2. Klik kanan pada OU yang Anda buat sebelumnya dan pilih Delegate Control.

  3. Di Wizard Kontrol Delegasi, klik Berikutnya.

  4. Di bagian Pengguna atau Grup, klik Tambah.

  5. Di Pilih Pengguna, Komputer, atau Grup, masukkan pengguna AD yang Anda buat dan klik Periksa Nama. Jika pemeriksaan pengguna AD Anda berhasil, klik OK.

  6. Di bagian Pengguna atau Grup, konfirmasikan pengguna iklan Anda telah ditambahkan dan klik Berikutnya.

  7. Di bagian Tugas untuk Mendelegasikan, pilih Buat tugas khusus untuk didelegasikan dan klik Berikutnya.

  8. Di bagian Active Directory Object Type:

    Pilih ONly objek berikut di folder.

    Pilih Objek Komputer

    Pilih Buat objek yang dipilih di folder ini

    Pilih Delete selected objects in this folder lalu klik Next.

  9. Di bagian Izin:

    Tetap pilih General.

    Pilih Validated write to DNS host name.

    Pilih Validated write to service principal name lalu klik Next.

  10. Dalam Menyelesaikan Delegasi Control Wizard, konfirmasikan pengaturan Anda dan klik Selesai.

Langkah 4: Buat rahasia

Buat rahasia di daerah yang sama Akun AWS dan yang berisi contoh RDS Custom for SQL Server DB yang ingin Anda sertakan dalam direktori aktif Anda. Simpan kredensyal pengguna domain AD yang dibuat di. Langkah 2: Buat pengguna domain AD

Console
  • Di AWS Secrets Manager, pilih Simpan rahasia baru.

  • Untuk Tipe rahasia, pilih Tipe rahasia lainnya.

  • Untuk pasangan kunci/nilai, tambahkan dua kunci:

    • Kunci pertama, SELF_MANAGED_ACTIVE_DIRECTORY_USERNAME dan masukkan nama pengguna AD Anda (tanpa awalan domain) untuk nilainya.

    • Untuk kunci kedua, masukkan SELF_MANAGED_ACTIVE_DIRECTORY_PASSWORD dan masukkan kata sandi untuk pengguna AD Anda di domain Anda.

  • Untuk kunci Enkripsi, masukkan AWS KMS kunci yang sama yang Anda gunakan untuk membuat contoh RDS Custom for SQL Server.

  • Untuk nama Rahasia, pilih nama rahasia yang dimulai dengan do-not-delete-rds-custom- untuk memungkinkan profil instans Anda mengakses rahasia ini. JIKA Anda ingin memilih nama yang berbeda untuk rahasia, perbarui RDSCustomInstanceProfile untuk mengakses nama Rahasia.

  • (Opsional) Untuk Deskripsi, masukkan deskripsi untuk nama rahasia.

  • Tambahkan tag Key="AWSRDSCustom",Value="custom-sqlserver"

  • Klik Simpan, lalu Berikutnya.

  • Untuk Konfigurasikan pengaturan rotasi, pertahankan nilai default dan pilih Berikutnya.

  • Tinjau pengaturan untuk rahasia lalu klik Simpan.

  • Pilih rahasia baru dan salin nilai untuk Rahasia ARN. Kami menggunakan ini di langkah berikutnya untuk mengatur Direktori Aktif Anda.

CLI

Jalankan perintah berikut di CLI Anda untuk membuat rahasia:

# Linux based aws secretsmanager create-secret \ --name do-not-delete-rds-custom-DomainUserCredentails \ --description "Active directory user credentials for managing RDS Custom" \ --secret-string "{\"SELF_MANAGED_ACTIVE_DIRECTORY_USERNAME\":\"tester\",\"SELF_MANAGED_ACTIVE_DIRECTORY_PASSWORD\":\"xxxxxxxx\"}" \ --kms-key-id <RDSCustomKMSKey> \ --tags Key="AWSRDSCustom",Value="custom-sqlserver" # Windows based aws secretsmanager create-secret ^ --name do-not-delete-rds-custom-DomainUserCredentails ^ --description "Active directory user credentials for managing RDS Custom" ^ --secret-string "{\"SELF_MANAGED_ACTIVE_DIRECTORY_USERNAME\":\"tester\",\"SELF_MANAGED_ACTIVE_DIRECTORY_PASSWORD\":\"xxxxxxxx\"}" ^ --kms-key-id <RDSCustomKMSKey> ^ --tags Key="AWSRDSCustom",Value="custom-sqlserver"

Langkah 5: Membuat atau memodifikasi RDS Custom untuk SQL Server DB instance

Membuat atau memodifikasi contoh RDS Custom untuk SQL Server DB untuk digunakan dengan direktori Anda. Anda dapat menggunakan konsol, CLI, atau RDS API untuk mengaitkan suatu instans DB dengan direktori. Anda dapat menyesuaikan waktu ini dengan cara berikut:

catatan

Jika instance RDS Custom for SQL Server Anda sudah bergabung dengan AD secara manual, periksa pengaturannya Aturan port konfigurasi jaringanValidasi Jaringan, dan selesaikan langkah 1 melalui Langkah 4. Perbarui--domain-fqdn,--domain-ou, dan --domain-auth-secret-arn ke AD Anda, sehingga kredensi dan konfigurasi gabungan domain terdaftar di RDS Custom untuk memantau, mendaftarkan CNAME, dan mengambil tindakan pemulihan.

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

  • Untuk --domain-fqdn parameternya, gunakan nama domain yang sepenuhnya memenuhi syarat dari AD yang dikelola sendiri.

  • Untuk parameter --domain-ou, gunakan OU yang Anda buat di AD yang dikelola sendiri.

  • Untuk --domain-auth-secret-arn parameter, gunakan nilai ARN Rahasia yang Anda buat.

penting

Jika Anda memodifikasi instans DB untuk bergabung atau menghapus dari domain AD yang dikelola sendiri atau AWS Managed Microsoft AD, reboot instans DB diperlukan agar modifikasi diterapkan. Anda dapat memilih untuk segera menerapkan perubahan atau menunggu hingga periode pemeliharaan berikutnya. Memilih opsi Terapkan Segera menyebabkan waktu henti untuk instans DB AZ tunggal. Cluster DB multi-AZ melakukan failover sebelum menyelesaikan reboot. Untuk informasi selengkapnya, lihat Memodifikasi instans Amazon RDS DB.

Perintah CLI berikut membuat RDS Custom baru untuk SQL Server DB instance dan bergabung dengan self-managed atau domain. AWS Managed Microsoft AD

Untuk Linux, macOS, atau Unix:

aws rds create-db-instance \ --engine custom-sqlserver-se \ --engine-version 15.00.4312.2.v1 \ --db-instance-identifier my-custom-instance \ --db-instance-class db.m5.large \ --allocated-storage 100 --storage-type io1 --iops 1000 \ --master-username my-master-username \ --master-user-password my-master-password \ --kms-key-id my-RDSCustom-key-id \ --custom-iam-instance-profile AWSRDSCustomInstanceProfileForRdsCustomInstance \ --domain-fqdn "corp.example.com" \ --domain-ou "OU=RDSCustomOU,DC=corp,DC=example,DC=com" \ --domain-auth-secret-arn "arn:aws:secretsmanager:region:account-number:secret:do-not-delete-rds-custom-my-AD-test-secret-123456" \ --db-subnet-group-name my-DB-subnet-grp \ --vpc-security-group-ids my-securitygroup-id \ --no-publicly-accessible \ --backup-retention-period 3 \ --port 8200 \ --region us-west-2 \ --no-multi-az

Untuk Windows:

aws rds create-db-instance ^ --engine custom-sqlserver-se ^ --engine-version 15.00.4312.2.v1 ^ --db-instance-identifier my-custom-instance ^ --db-instance-class db.m5.large ^ --allocated-storage 100 --storage-type io1 --iops 1000 ^ --master-usernamemy-master-username ^ --master-user-password my-master-password ^ --kms-key-id my-RDSCustom-key-id ^ --custom-iam-instance-profile AWSRDSCustomInstanceProfileForRdsCustomInstance ^ --domain-fqdn "corp.example.com" ^ --domain-ou "OU=RDSCustomOU,DC=corp,DC=example,DC=com" ^ --domain-auth-secret-arn "arn:aws:secretsmanager:region:account-number:secret:do-not-delete-rds-custom-my-AD-test-secret-123456" ^ --db-subnet-group-name my-DB-subnet-grp ^ --vpc-security-group-ids my-securitygroup-id ^ --no-publicly-accessible ^ --backup-retention-period 3 ^ --port 8200 ^ --region us-west-2 ^ --no-multi-az
penting

Jika NetBIOS Anda AWS Managed Microsoft AD adalah corpexample, maka itu muncul sebagai OU itu sendiri. Setiap OU baru yang dibuat sebelumnya akan muncul sebagai OU bersarang. Untuk AWS Managed Microsoft AD, atur --domain-ou ke"OU=RDSCustomOU,OU=corpexample,DC=corp,DC=example,DC=com".

Perintah berikut memodifikasi RDS Custom yang ada untuk SQL Server DB instance untuk menggunakan domain Active Directory.

Untuk Linux, macOS, atau Unix:

aws rds modify-db-instance \ --db-instance-identifier my-custom-instance \ --domain-fqdn "corp.example.com" \ --domain-ou "OU=RDSCustomOU,DC=corp,DC=example,DC=com" \ --domain-auth-secret-arn "arn:aws:secretsmanager:region:account-number:secret:do-not-delete-rds-custom-my-AD-test-secret-123456" \

Untuk Windows:

aws rds modify-db-instance ^ --db-instance-identifier my-custom-instance ^ --domain-fqdn "corp.example.com" ^ --domain-ou "OU=RDSCustomOU,DC=corp,DC=example,DC=com" ^ --domain-auth-secret-arn "arn:aws:secretsmanager:region:account-number:secret:do-not-delete-rds-custom-my-AD-test-secret-123456" ^

Perintah CLI berikut menghapus dan RDS Custom untuk SQL Server DB instance dari domain Active Directory.

Untuk Linux, macOS, atau Unix:

aws rds modify-db-instance \ --db-instance-identifier my-custom-instance \ --disable-domain

Untuk Windows:

aws rds modify-db-instance ^ --db-instance-identifier my-custom-instance ^ --disable-domain

Saat menggunakan konsol untuk membuat atau memodifikasi instance Anda, klik Aktifkan Microsoft SQL Server Windows Authentication untuk melihat opsi berikut.

Direktori Autentikasi Windows Microsoft SQL Server

Anda bertanggung jawab untuk memastikan FQDN domain Anda diselesaikan ke alamat IP pengontrol domain. Jika pengontrol domain IPs tidak menyelesaikan, operasi gabungan domain gagal tetapi RDS Custom untuk pembuatan instance SQL Server berhasil. Untuk informasi pemecahan masalah, lihat Pemecahan Masalah Active Directory.

Langkah 6: Buat Windows Authentication SQL Server Login

Gunakan kredensial pengguna master Amazon RDS untuk terhubung ke instans basis data SQL Server sebagaimana Anda lakukan dengan instans DB lain. Karena instans DB digabungkan ke domain AD, Anda dapat menyediakan login dan pengguna SQL Server. Anda melakukan ini dari utilitas pengguna dan grup AD di domain AD Anda. Izin basis data dikelola melalui izin SQL Server standar yang diberikan dan dicabut ke login Windows ini.

Untuk pengguna AD untuk mengautentikasi dengan SQL Server, login SQL Server Windows harus ada untuk pengguna AD atau grup Direktori Aktif yang pengguna adalah anggota. Kontrol akses fine-grained akan ditangani melalui pemberian dan pencabutan izin pada login SQL Server ini. Pengguna AD yang tidak memiliki login SQL Server atau termasuk dalam grup AD dengan login seperti itu tidak dapat mengakses instans SQL Server DB.

ALTER ANY LOGINIzin diperlukan untuk membuat login AD SQL Server. Jika Anda belum membuat login dengan izin ini, sambungkan sebagai pengguna utama instans DB menggunakan SQL Server Authentication dan buat login AD SQL Server Anda di bawah konteks pengguna utama.

Anda dapat menjalankan perintah bahasa definisi data (DDL) seperti berikut ini untuk membuat login SQL Server untuk pengguna atau grup AD.

USE [master] GO CREATE LOGIN [mydomain\myuser] FROM WINDOWS WITH DEFAULT_DATABASE = [master], DEFAULT_LANGUAGE = [us_english]; GO

Pengguna (baik manusia maupun aplikasi) dari domain Anda sekarang dapat terhubung ke instance RDS Custom for SQL Server dari mesin klien yang bergabung dengan domain menggunakan otentikasi Windows.

Langkah 7: Menggunakan Kerberos atau Otentikasi NTLM

Otentikasi NTLM menggunakan titik akhir RDS

Setiap instans Amazon RDS DB memiliki titik akhir dan setiap titik akhir memiliki nama DNS dan nomor port untuk instans DB. Untuk menghubungkan instans basis Anda menggunakan aplikasi klien SQL, Anda memerlukan nama dan nomor port DNS untuk instans tersebut. Untuk mengautentikasi menggunakan otentikasi NTLM, Anda harus terhubung ke titik akhir RDS.

Selama pemeliharaan database yang direncanakan atau gangguan layanan yang tidak direncanakan, Amazon RDS secara otomatis gagal ke database up-to-date sekunder sehingga operasi dapat dilanjutkan dengan cepat tanpa intervensi manual. Contoh primer dan sekunder menggunakan titik akhir yang sama, yang alamat jaringan fisiknya bertransisi ke sekunder sebagai bagian dari proses failover. Anda tidak perlu mengonfigurasi ulang aplikasi Anda saat terjadi failover.

Autentikasi Kerberos

Otentikasi berbasis Kerberos untuk RDS Custom untuk SQL Server memerlukan koneksi dibuat ke Service Principal Name (SPN) tertentu. Namun, setelah peristiwa failover, aplikasi mungkin tidak mengetahui SPN baru. Untuk mengatasi hal ini, RDS Custom for SQL Server menawarkan endpoint berbasis Kerberos.

Titik akhir berbasis Kerberos mengikuti format tertentu. Jika titik akhir RDS Andards-instance-name.account-region-hash.aws-region.rds.amazonaws.com, titik akhir berbasis Kerberos yang sesuai adalah. rds-instance-name.account-region-hash.aws-region.awsrds.fully qualified domain name (FQDN)

Misalnya, jika titik akhir RDS adalah ad-test.cocv6zwtircu.us-east-1.rds.amazonaws.com dan nama domainnyacorp-ad.company.com, titik akhir berbasis Kerberos akan menjadi. ad-test.cocv6zwtircu.us-east-1.awsrds.corp-ad.company.com

Titik akhir berbasis Kerberos ini dapat digunakan untuk mengautentikasi dengan instance SQL Server menggunakan Kerberos, bahkan setelah peristiwa failover, karena titik akhir diperbarui secara otomatis untuk menunjuk ke SPN baru dari instance SQL Server utama.

Menemukan CNAME Anda

Untuk menemukan CNAME Anda, sambungkan ke pengontrol domain Anda dan buka DNS Manager. Arahkan ke Zona Pencarian Maju dan FQDN Anda.

Arahkan melalui awsrds, aws-region, dan hash spesifik akun dan wilayah.

Jika Anda menghubungkan EC2 instance RDS Custom dan mencoba terhubung ke database secara lokal menggunakan CNAME, koneksi Anda akan menggunakan otentikasi NTLM alih-alih Kerberos.

Jika setelah menghubungkan CNAME dari klien jarak jauh, koneksi NTLM dikembalikan, periksa apakah port yang diperlukan diizinkan.

Untuk memeriksa apakah koneksi Anda menggunakan Kerberos, jalankan kueri berikut:

SELECT net_transport, auth_scheme FROM sys.dm_exec_connections WHERE session_id = @@SSPID;