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

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 database Oracle bernama managed_service_user@example.com dengan hak CREATE SESSION istimewa, di mana example.com adalah nama domain Anda. Pengguna ini sesuai dengan pengguna yang dibuat Directory Service di dalam Managed Active Directory Anda. Secara berkala, RDS menggunakan kredensyal yang disediakan oleh Directory Service untuk masuk ke database Oracle Anda. Setelah itu, RDS segera hancurkan 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 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, gunakan AWS Management Console, 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 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 Oracle DB dalam hal yang samaVPC.

    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: Konfigurasikan IAM izin untuk Amazon RDS.

Untuk mengaktifkan otentikasi Kerberos menggunakan Active Directory yang dikelola sendiri, Anda harus membuat hubungan trust hutan antara Active Directory yang dikelola sendiri dan yang AWS Managed Microsoft AD dibuat pada langkah sebelumnya. Kepercayaan bisa satu arah, di mana AWS Managed Microsoft AD mempercayai Direktori Aktif yang dikelola sendiri. Kepercayaan juga dapat bersifat dua arah, di mana kedua Active Directory saling mempercayai. Untuk informasi selengkapnya tentang penggunaan trust hutan AWS Directory Service, lihat Kapan membuat hubungan kepercayaan dalam Panduan AWS Directory Service Administrasi.

Langkah 3: Konfigurasikan IAM izin untuk Amazon RDS

AWS Directory Service Untuk memanggil Anda, Amazon RDS memerlukan IAM peran yang menggunakan IAM kebijakan terkelolaAmazonRDSDirectoryServiceAccess. Peran ini memungkinkan Amazon RDS untuk 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 STSWilayah AWS dalam Panduan Pengguna. IAM

Menciptakan IAM peran

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 IAM peran secara manual. Saat Anda membuat IAM peran secara manual, 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 Microsoft SQL Server tidak dapat digunakan RDS untuk Oracle.

Membuat kebijakan IAM kepercayaan secara manual

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

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

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

{ "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 tersebut juga harus memiliki IAM kebijakan 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 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 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 VPC lintas lintas antara direktori dan instans DB

Jika Anda berencana untuk menemukan direktori dan instans DB yang samaVPC, lewati langkah ini dan lanjutkan keLangkah 6: Buat atau modifikasi instans Oracle DB.

Jika Anda berencana untuk menemukan direktori dan instans DB di AWS akun yang berbeda atauVPCs, konfigurasikan lintas VPC lintas menggunakan VPC peering atau AWS Transit Gateway. Prosedur berikut memungkinkan lalu lintas antara VPCs menggunakan VPC peering. Ikuti instruksi di Apa itu VPC mengintip? di Panduan Peering Cloud Pribadi Amazon Virtual.

Untuk mengaktifkan lintas VPC lalu lintas menggunakan VPC peering
  1. Siapkan aturan VPC perutean yang sesuai untuk memastikan bahwa lalu lintas jaringan dapat mengalir 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 jaringan (ACL) untuk 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 EC2 domain 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 instance DB dengan direktori. Anda dapat melakukannya dengan salah satu cara berikut:

Otentikasi Kerberos hanya didukung untuk instans Oracle DB di file. VPC Instans DB bisa VPC sama dengan direktori, atau berbedaVPC. Saat Anda membuat atau mengubah instans DB, lakukan tugas berikut:

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

  • Berikan nama IAM peran 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 --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.

catatan

MANAGED_SERVICE_USER adalah akun layanan yang namanya dibuat secara acak oleh Directory Service untukRDS. Selama pengaturan otentikasi Kerberos, RDS untuk Oracle membuat pengguna dengan nama yang sama dan memberinya hak istimewa. CREATE SESSION Pengguna Oracle DB diidentifikasi secara eksternal sebagai MANAGED_SERVICE_USER@EXAMPLE.COM, di mana EXAMPLE.COM adalah nama domain Anda. Secara berkala, RDS menggunakan kredensyal yang disediakan oleh Directory Service untuk masuk ke database Oracle Anda. Setelah itu, RDS segera menghancurkan cache tiket.

Langkah 7: Buat login Oracle untuk autentikasi Kerberos

Gunakan kredensyal pengguna RDS master Amazon untuk terhubung ke instans Oracle DB seperti yang Anda lakukan pada 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. Connect ke instans Oracle DB menggunakan kredensyal pengguna RDS master Amazon 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 lebih dari DNS port 53 overTCP/UDP, port Kerberos (88 dan 464 untuk dikelola AWS Directory Service)TCP, dan LDAP port 389 over. 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 ini adalah contoh konten sqlnet.ora untuk konfigurasi *Plus: SQL

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

Untuk contoh konfigurasi SQL Developer, lihat Document 1609359.1 dari Oracle Support.