Menyiapkan autentikasi Kerberos untuk instans DB Oracle - 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 autentikasi Kerberos untuk instans DB Oracle

Gunakan AWS Directory Service for Microsoft Active Directory, juga disebut AWS Managed Microsoft AD, untuk mengatur otentikasi Kerberos untuk instance Oracle DB. Untuk menyiapkan autentikasi Kerberos, selesaikan langkah berikut:

catatan

Selama penyiapan, RDS membuat pengguna basis data Oracle bernama managed_service_user@example.com dengan hak istimewa CREATE SESSION, dan example.com sebagai nama domain Anda. Pengguna ini sesuai dengan pengguna yang dibuat Directory Service di dalam Managed Active Directory Anda. Secara berkala, RDS menggunakan kredensial yang disediakan oleh Directory Service untuk masuk ke basis data Oracle Anda. Setelah itu, RDS langsung menghancurkan cache tiket.

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-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 direktori, AWS Directory Service lakukan tugas-tugas berikut atas nama Anda:

  • Menyiapkan Active Directory di 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 pengontrol direktori.

Saat Anda meluncurkan AWS Managed Microsoft AD, AWS buat Unit Organisasi (OU) yang berisi semua objek direktori Anda. OU ini memiliki nama NetBIOS yang Anda masukkan saat membuat direktori, terletak di domain akar. 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

  • Membuat OU 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 konfigurasi DNS (menambahkan, menghapus, atau memperbarui catatan, zona, dan penerus)

  • Melihat log peristiwa DNS

  • Melihat log peristiwa keamanan

Untuk membuat direktori, gunakan AWS Management Console, API AWS CLI, atau AWS Directory Service API. Pastikan untuk membuka port keluar yang relevan pada grup keamanan direktori sehingga direktori dapat berkomunikasi dengan instans DB Oracle.

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 Amazon RDS.

  4. Masukkan informasi berikut:

    Nama DNS Direktori

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

    Nama NetBIOS direktori

    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

    VPC untuk direktori. Buat instans DB Oracle dalam 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 sampai direktori terbuat. 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 mengubah instans DB Oracle.

Halaman detail direktori

Langkah 2: Buat kepercayaan

Jika Anda berencana untuk menggunakan AWS Managed Microsoft AD saja, lanjutkan keLangkah 3: Konfigurasi izin IAM untuk Amazon RDS.

Untuk mendapatkan autentikasi Kerberos menggunakan Microsoft Active Directory on-premise atau yang di-host sendiri, buat kepercayaan forest atau kepercayaan eksternal. Kepercayaan bisa satu atau dua arah. Untuk informasi selengkapnya tentang penggunaan trust hutan AWS Directory Service, lihat Kapan membuat hubungan kepercayaan dalam Panduan AWS Directory Service Administrasi.

Langkah 3: Konfigurasi izin IAM untuk Amazon RDS

AWS Directory Service Untuk memanggil Anda, Amazon RDS memerlukan peran IAM yang menggunakan kebijakan IAM terkelola. AmazonRDSDirectoryServiceAccess Peran ini memungkinkan Amazon RDS melakukan panggilan ke AWS Directory Service.

catatan

Agar peran mengizinkan akses, titik akhir AWS Security Token Service (AWS STS) harus diaktifkan dengan benar Wilayah AWS untuk Anda Akun AWS. 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 STS dalam Panduan Pengguna Wilayah AWS IAM.

Membuat peran IAM

Saat Anda membuat instans DB menggunakan AWS Management Console, dan pengguna konsol memiliki iam:CreateRole izin, konsol akan membuat rds-directoryservice-kerberos-access-role secara otomatis. Jika tidak, Anda harus membuat peran IAM secara manual. Saat Anda membuat peran IAM secara manual, 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 RDS for Oracle.

Membuat kebijakan kepercayaan IAM secara manual

Secara opsional, Anda dapat membuat kebijakan sumber daya dengan izin yang diperlukan alih-alih menggunakan kebijakan IAM terkelola AmazonRDSDirectoryServiceAccess. Pilih directoryservice.rds.amazonaws.com dan rds.amazonaws.com sebagai pengguna utama.

Untuk membatasi izin yang diberikan Amazon RDS kepada layanan lain untuk sumber daya tertentu, sebaiknya gunakan kunci konteks kondisi global aws:SourceArn dan aws:SourceAccount dalam kebijakan sumber daya. Cara paling efektif untuk melindungi dari masalah confused deputy adalah menggunakan kunci konteks kondisi global aws:SourceArn dengan ARN lengkap sumber daya Amazon RDS. Untuk informasi selengkapnya, lihat Pencegahan masalah confused deputy lintas layanan.

Contoh berikut menunjukkan bagaimana Anda dapat menggunakan aws:SourceArn dan kunci konteks kondisi global aws:SourceAccount di Amazon RDS untuk mencegah masalah confused deputy.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "directoryservice.rds.amazonaws.com", "rds.amazonaws.com" ] }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:rds:us-east-1:123456789012:db:mydbinstance" }, "StringEquals": { "aws:SourceAccount": "123456789012" } } } ] }

Untuk Wilayah keikutsertaan, Anda juga harus menyertakan prinsip layanan untuk Wilayah tersebut dalam bentuk. directoryservice.rds.region_name.amazonaws.com Misalnya, di Wilayah Afrika (Cape Town), gunakan kebijakan kepercayaan berikut:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "directoryservice.rds.amazonaws.com", "directoryservice.rds.af-south-1.amazonaws.com", "rds.amazonaws.com" ] }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:rds:af-south-1:123456789012:db:mydbinstance" }, "StringEquals": { "aws:SourceAccount": "123456789012" } } } ] }

Peran ini juga harus memiliki kebijakan 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 Active Directory Users and Computers, yang merupakan salah satu alat Active Directory Domain Services dan Active Directory Lightweight Directory Services. Dalam hal ini, pengguna adalah perorangan atau entitas yang memiliki akses ke direktori Anda.

Untuk membuat pengguna dalam AWS Directory Service direktori, Anda harus terhubung ke instans Amazon EC2 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 tentang pembuatan pengguna di Active Directory, lihat Mengelola pengguna dan grup di AWS Managed Microsoft AD dalam Panduan Administrasi AWS Directory Service .

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

Jika Anda ingin mencari direktori dan instans DB dalam VPC yang sama, lewati langkah ini dan lanjutkan ke Langkah 6: Buat atau modifikasi instans Oracle DB.

Jika Anda berencana untuk menemukan direktori dan instans DB di AWS akun atau VPC yang berbeda, konfigurasikan lalu lintas lintas VPC menggunakan peering VPC atau Transit Gateway.AWS Prosedur berikut mengaktifkan lalu lintas antar-VPC menggunakan peering VPC. 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 grup keamanan instans DB dapat menerima lalu lintas masuk dari grup keamanan direktori. Untuk informasi selengkapnya, lihat Praktik terbaik untuk AWS Managed Microsoft AD dalam Panduan Administrasi AWS Directory Service .

  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 AWS Managed Microsoft AD direktori Anda untuk Domain EC2 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 instans Oracle DB

Buat atau modifikasi instans Oracle 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:

Autentikasi Kerberos hanya didukung untuk instans DB Oracle dalam VPC. Instans DB dapat berada dalam VPC yang sama dengan direktori, atau dalam VPC yang berbeda. Saat Anda membuat atau mengubah instans DB, lakukan tugas berikut:

  • Sediakan pengidentifikasi domain (pengidentifikasi d-*) yang dihasilkan saat Anda membuat direktori.

  • Beri nama peran IAM yang Anda buat.

  • Pastikan bahwa grup keamanan instans DB dapat menerima lalu lintas masuk dari grup keamanan direktori dan mengirim lalu lintas keluar ke direktori.

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

Pengaturan autentikasi Kerberos saat membuat instans DB

Saat Anda menggunakan konsol untuk memodifikasi atau memulihkan instans DB, pilih direktori di bagian Autentikasi Kerberos atau pilih Buat direktori baru.

Pengaturan autentikasi Kerberos saat memodifikasi atau memulihkan instans DB

Saat Anda menggunakan AWS CLI, parameter berikut diperlukan agar instans DB 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 dengan menggunakan kebijakan IAM terkelola AmazonRDSDirectoryServiceAccess.

Misalnya, perintah CLI berikut mengubah instans basis data 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 memodifikasi instans DB untuk mengaktifkan autentikasi Kerberos, boot ulang instans basis data setelah membuat perubahan.

catatan

MANAGED_SERVICE_USER adalah akun layanan yang namanya dihasilkan secara acak oleh Directory Service for RDS. Selama penyiapan autentikasi Kerberos, RDS for Oracle membuat pengguna dengan nama yang sama dan menetapkan hak istimewa CREATE SESSION. Pengguna DB Oracle diidentifikasi secara eksternal sebagai MANAGED_SERVICE_USER@EXAMPLE.COM, dan nama domain Anda adalah EXAMPLE.COM. Secara berkala, RDS menggunakan kredensial yang disediakan oleh Directory Service untuk masuk ke basis data Oracle Anda. Setelah itu, RDS langsung menghancurkan cache tiket.

Langkah 7: Buat login Oracle untuk autentikasi Kerberos

Gunakan kredensial pengguna utama Amazon RDS untuk terhubung ke instans DB Oracle saat Anda mengerjakan instans DB lainnya. Instans DB bergabung ke AWS Managed Microsoft AD domain. Dengan demikian, Anda bisa menyediakan login dan pengguna Oracle dari pengguna dan grup Microsoft Active Directory di domain Anda. Untuk mengelola izin basis data, Anda memberikan dan mencabut izin Oracle standar untuk login ini.

Untuk mengizinkan pengguna Microsoft Active Directory melakukan autentikasi dengan Oracle
  1. Hubungkan ke instans DB Oracle menggunakan kredensial pengguna utama Amazon RDS Anda.

  2. Buat pengguna yang diautentikasi secara eksternal di basis data Oracle.

    Pada contoh berikut, ganti KRBUSER@CORP.EXAMPLE.COM dengan nama pengguna dan nama domain.

    CREATE USER "KRBUSER@CORP.EXAMPLE.COM" IDENTIFIED EXTERNALLY; GRANT CREATE SESSION TO "KRBUSER@CORP.EXAMPLE.COM";

    Pengguna (baik manusia maupun aplikasi) dari domain Anda sekarang dapat terhubung ke instans DB Oracle dari mesin klien yang tergabung dalam domain menggunakan autentikasi Kerberos.

Langkah 8: Konfigurasikan klien Oracle

Untuk mengonfigurasi klien Oracle, penuhi persyaratan berikut:

  • Buat file konfigurasi bernama krb5.conf (Linux) atau krb5.ini (Windows) untuk menunjuk ke domain. Konfigurasikan klien Oracle untuk menggunakan konfigurasi file ini.

  • Verifikasi bahwa lalu lintas dapat mengalir antara host klien dan AWS Directory Service melalui port DNS 53 melalui TCP/UDP, port Kerberos (88 dan 464 untuk dikelola AWS Directory Service) melalui TCP, dan port LDAP 389 melalui TCP.

  • Periksa bahwa lalu lintas dapat mengalir antara host klien dan instans basis data melalui port basis data.

Berikut ini adalah contoh konten untuk AWS Managed Microsoft AD.

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

Berikut adalah contoh konten untuk Microsoft AD on-premise. Di file krb5.conf atau krb5.ini Anda, ganti on-prem-ad-server-name dengan nama server AD lokal Anda.

[libdefaults] default_realm = ONPREM.COM [realms] AWSAD.COM = { kdc = awsad.com admin_server = awsad.com } ONPREM.COM = { kdc = on-prem-ad-server-name admin_server = on-prem-ad-server-name } [domain_realm] .awsad.com = AWSAD.COM awsad.com= AWSAD.COM .onprem.com = ONPREM.COM onprem.com= ONPREM.COM
catatan

Setelah mengonfigurasi file krb5.ini atau krb5.conf, sebaiknya boot ulang server.

Berikut adalah contoh konten sqlnet.ora untuk konfigurasi SQL*Plus:

SQLNET.AUTHENTICATION_SERVICES=(KERBEROS5PRE,KERBEROS5) SQLNET.KERBEROS5_CONF=path_to_krb5.conf_file

Untuk contoh konfigurasi SQL Developer, lihat Dokumen 1609359.1 dari Dukungan Oracle.