

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

# Menggunakan autentikasi Kerberos dengan Amazon RDS for PostgreSQL
<a name="postgresql-kerberos"></a>

Anda dapat menggunakan Kerberos untuk mengautentikasi pengguna saat terhubung ke instans DB Anda yang menjalankan PostgreSQL. Untuk melakukannya, konfigurasikan instans DB Anda untuk digunakan AWS Directory Service for Microsoft Active Directory untuk otentikasi Kerberos. AWS Directory Service for Microsoft Active Directory disebut juga AWS Managed Microsoft AD. Ini adalah fitur yang tersedia dengan Directory Service. Untuk mempelajari lebih lanjut, lihat [Apa itu Directory Service?](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/what_is.html) dalam *Panduan AWS Directory Service Administrasi*.

Untuk memulai, buat AWS Managed Microsoft AD direktori untuk menyimpan kredensyal pengguna. Kemudian, berikan domain Active Directory dan informasi lainnya ke instans DB PostgreSQL Anda. Saat pengguna mengautentikasi dengan instans DB PostgreSQL, permintaan autentikasi diteruskan ke direktori AWS Managed Microsoft AD . 

Dengan menyimpan semua kredensial Anda di direktori yang sama, Anda dapat menghemat waktu dan tenaga. Anda memiliki sebuah lokasi terpusat untuk menyimpan dan mengelola kredensial bagi beberapa instans DB. Penggunaan direktori juga dapat meningkatkan profil keamanan Anda secara keseluruhan.

Selain itu, Anda dapat mengakses kredensial dari Microsoft Active Directory on-premise Anda sendiri. Untuk melakukannya, buat hubungan domain tepercaya sehingga direktori AWS Managed Microsoft AD mempercayai Microsoft Active Directory on-premise Anda. Dengan cara ini, pengguna Anda dapat mengakses instans PostgreSQL Anda dengan pengalaman masuk tunggal (SSO) Windows yang sama seperti ketika mereka mengakses beban kerja di jaringan on-premise Anda.

Database dapat menggunakan otentikasi kata sandi atau otentikasi kata sandi dengan otentikasi Kerberos atau AWS Identity and Access Management (IAM). Untuk informasi selengkapnya tentang autentikasi IAM, lihat [Autentikasi basis data IAMuntuk MariaDB, MySQL, dan PostgreSQL](UsingWithRDS.IAMDBAuth.md). 

**catatan**  
RDS untuk PostgreSQL tidak mendukung otentikasi Kerberos untuk grup Active Directory.

**Topics**
+ [Ketersediaan wilayah dan versi](#postgresql-kerberos.RegionVersionAvailability)
+ [Ikhtisar autentikasi Kerberos untuk instans DB PostgreSQL](#postgresql-kerberos-overview)
+ [Menyiapkan autentikasi Kerberos untuk instans DB PostgreSQL](postgresql-kerberos-setting-up.md)
+ [Mengelola dalam domain Active Directory](postgresql-kerberos-managing.md)
+ [Menghubungkan ke PostgreSQL dengan autentikasi Kerberos](postgresql-kerberos-connecting.md)

## Ketersediaan wilayah dan versi
<a name="postgresql-kerberos.RegionVersionAvailability"></a>

Ketersediaan dan dukungan fitur bervariasi di seluruh versi khusus dari setiap mesin basis data, dan di seluruh Wilayah AWS. Lihat informasi selengkapnya tentang Ketersediaan wilayah dan versi RDS for PostgreSQL dengan autentikasi Kerberos di [Wilayah dan mesin DB yang Didukung untuk otentikasi Kerberos di Amazon RDS](Concepts.RDS_Fea_Regions_DB-eng.Feature.KerberosAuthentication.md).

## Ikhtisar autentikasi Kerberos untuk instans DB PostgreSQL
<a name="postgresql-kerberos-overview"></a>

Untuk menyiapkan autentikasi Kerberos untuk instans DB PostgreSQL, lakukan langkah-langkah berikut, yang dijelaskan secara lebih mendetail nanti:

1. Gunakan AWS Managed Microsoft AD untuk membuat AWS Managed Microsoft AD direktori. Anda dapat menggunakan Konsol Manajemen AWS, AWS CLI, atau Directory Service API untuk membuat direktori. Pastikan untuk membuka port keluar yang relevan pada grup keamanan direktori sehingga direktori dapat berkomunikasi dengan instans.

1. Buat peran yang menyediakan akses RDS untuk melakukan panggilan ke direktori Anda. AWS Managed Microsoft AD Untuk melakukannya, buat peran AWS Identity and Access Management (IAM) yang menggunakan kebijakan IAM terkelola. `AmazonRDSDirectoryServiceAccess` 

   Agar peran IAM mengizinkan akses, titik akhir AWS Security Token Service (AWS STS) harus diaktifkan di AWS Wilayah yang benar untuk akun Anda 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 di AWS Wilayah di Panduan Pengguna](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html#sts-regions-activate-deactivate) *IAM*.

1. 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 yang AWS dikelola](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_manage_users_groups.html) di *Panduan Directory Service Administrasi*.

1. Jika Anda berencana untuk menemukan direktori dan instans DB di AWS akun yang berbeda atau virtual private cloud (VPCs), konfigurasikan peering VPC. Untuk informasi selengkapnya, lihat [Apa yang dimaksud peering VPC?](https://docs.aws.amazon.com/vpc/latest/peering/Welcome.html) di *Panduan Peering Amazon VPC*.

1. Buat atau modifikasi instans DB PostgreSQL dari konsol, CLI, atau RDS API menggunakan salah satu metode berikut:
   + [Membuat instans DB Amazon RDS](USER_CreateDBInstance.md) 
   + [Memodifikasi instans DB Amazon RDS](Overview.DBInstance.Modifying.md) 
   + [Memulihkan ke instans DB](USER_RestoreFromSnapshot.md)
   + [Memulihkan instans DB ke waktu yang ditentukan untuk Amazon RDS](USER_PIT.md)

   Anda dapat menemukan instance di Amazon Virtual Private Cloud (VPC) yang sama dengan direktori atau di akun AWS atau VPC yang berbeda. Saat membuat atau memodifikasi instans DB PostgreSQL, lakukan hal 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.

1. Gunakan kredensial pengguna utama RDS untuk terhubung ke instans DB PostgreSQL. Buat pengguna dalam PostgreSQL untuk diidentifikasi secara eksternal. Pengguna yang diidentifikasi secara eksternal dapat masuk ke instans DB PostgreSQL menggunakan autentikasi Kerberos.

# Menyiapkan autentikasi Kerberos untuk instans DB PostgreSQL
<a name="postgresql-kerberos-setting-up"></a>

 Untuk menyiapkan autentikasi Kerberos, lakukan langkah berikut. 

**Topics**
+ [Langkah 1: Buat direktori menggunakan AWS Managed Microsoft AD](#postgresql-kerberos-setting-up.create-directory)
+ [Langkah 2: (Opsional) Buat hubungan kepercayaan antara Active Directory lokal dan Directory Service](#postgresql-kerberos-setting-up.create-trust)
+ [Langkah 3: Buat peran IAM untuk RDS untuk mengakses Directory Service](#postgresql-kerberos-setting-up.CreateIAMRole)
+ [Langkah 4: Buat dan konfigurasikan pengguna](#postgresql-kerberos-setting-up.create-users)
+ [Langkah 5: Aktifkan lalu lintas antar-VPC antara direktori dan instans DB](#postgresql-kerberos-setting-up.vpc-peering)
+ [Langkah 6: Buat atau modifikasi instans DB PostgreSQL](#postgresql-kerberos-setting-up.create-modify)
+ [Langkah 7: Buat pengguna PostgreSQL untuk pengguna utama Kerberos Anda](#postgresql-kerberos-setting-up.create-logins)
+ [Langkah 8: Konfigurasikan klien PostgreSQL](#postgresql-kerberos-setting-up.configure-client)

## Langkah 1: Buat direktori menggunakan AWS Managed Microsoft AD
<a name="postgresql-kerberos-setting-up.create-directory"></a>

Directory Service membuat Direktori Aktif yang dikelola sepenuhnya di AWS Cloud. Saat Anda membuat AWS Managed Microsoft AD direktori, 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. 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 instans 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. 

 `Admin`Akun 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 Directory Service](https://console.aws.amazon.com/directoryservicev2/), pilih **Direktori**, lalu pilih **Siapkan direktori**. 

1. Pilih **AWS Managed Microsoft AD**. AWS Managed Microsoft AD adalah satu-satunya pilihan yang saat ini didukung untuk digunakan dengan RDS. 

1. Pilih **Berikutnya**.

1. 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 (\$1\$1@\$1\$1%^&\$1\$1-\$1=`\$1\$1()\$1\$1[]:;"'<>,.?/)   
**Konfirmasi kata sandi**  
 Ketik ulang kata sandi administrator.   
Pastikan Anda menyimpan kata sandi ini. Directory Service tidak menyimpan kata sandi ini, dan tidak dapat diambil atau diatur ulang.

1. Pilih **Berikutnya**.

1. Di halaman **Pilih VPC dan subnet**, berikan informasi berikut:  
**VPC**  
Pilih VPC untuk direktori. Anda dapat membuat instans 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. 

1. Pilih **Berikutnya**.

1.  Tinjau informasi direktori. Jika ada yang perlu diubah, pilih **Sebelumnya** dan lakukan perubahan. Jika informasi sudah benar, pilih **Buat direktori**.   
![\[Halaman detail direktori\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/images/WinAuth2.png)

 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\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/images/WinAuth3.png)


## Langkah 2: (Opsional) Buat hubungan kepercayaan antara Active Directory lokal dan Directory Service
<a name="postgresql-kerberos-setting-up.create-trust"></a>

Jika Anda tidak berencana untuk menggunakan Microsoft Active Directory on-premise Anda sendiri, langsung ke [Langkah 3: Buat peran IAM untuk RDS untuk mengakses Directory Service](#postgresql-kerberos-setting-up.CreateIAMRole).

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](#postgresql-kerberos-setting-up.create-directory) 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 Directory Service, lihat [Kapan membuat hubungan kepercayaan](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_setup_trust.html) di *Panduan AWS Directory Service Administrasi*.

**catatan**  
Jika Anda menggunakan Microsoft Active Directory lokal, klien Windows akan terhubung menggunakan nama domain di titik akhir, bukan Directory Service rds.amazonaws.com. Untuk mempelajari selengkapnya, lihat [Menghubungkan ke PostgreSQL dengan autentikasi Kerberos](postgresql-kerberos-connecting.md). 

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\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/images/kerberos-auth-trust.png)


## Langkah 3: Buat peran IAM untuk RDS untuk mengakses Directory Service
<a name="postgresql-kerberos-setting-up.CreateIAMRole"></a>

Agar RDS memanggil Directory Service Anda, AWS akun Anda memerlukan peran IAM yang menggunakan kebijakan IAM terkelola. `AmazonRDSDirectoryServiceAccess` Peran ini membuat Amazon RDS dapat melakukan panggilan ke Directory Service. 

Saat Anda membuat instans DB menggunakan Konsol Manajemen AWS 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, pilih`Directory 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) Pengguna *IAM*.

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

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
<a name="postgresql-kerberos-setting-up.create-users"></a>

 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](https://learn.microsoft.com/en-us/troubleshoot/windows-server/identity/create-an-active-directory-server#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 Directory Service direktori, Anda harus terhubung ke instans Amazon EC2 berbasis Windows yang merupakan anggota direktori. Directory Service Pada saat yang sama, Anda harus masuk sebagai pengguna yang memiliki hak untuk membuat pengguna. Untuk informasi selengkapnya, lihat [Membuat pengguna](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_manage_users_groups_create_user.html) dalam *Panduan Administrasi AWS Directory Service *.

## Langkah 5: Aktifkan lalu lintas antar-VPC antara direktori dan instans DB
<a name="postgresql-kerberos-setting-up.vpc-peering"></a>

Jika Anda ingin menemukan direktori dan instans DB dalam VPC yang sama, lewati langkah ini dan lanjutkan ke [Langkah 6: Buat atau modifikasi instans DB PostgreSQL](#postgresql-kerberos-setting-up.create-modify).

[Jika Anda berencana untuk menemukan direktori dan instans DB yang berbeda VPCs, konfigurasikan lalu lintas lintas VPC menggunakan pengintip VPC atau Transit Gateway.AWS](https://docs.aws.amazon.com/vpc/latest/tgw/what-is-transit-gateway.html)

Prosedur berikut memungkinkan lalu lintas antara VPCs menggunakan VPC peering. Ikuti petunjuk di [Apa yang dimaksud dengan peering VPC?](https://docs.aws.amazon.com/vpc/latest/peering/Welcome.html) 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.

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

1. 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 Domain EC2 yang mulus-Bergabung](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_tutorial_directory_sharing.html) dalam Panduan Administrasi.Directory Service *

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

1. Saat masuk ke 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 DB PostgreSQL
<a name="postgresql-kerberos-setting-up.create-modify"></a>

Buat atau modifikasi instans DB PostgreSQL untuk digunakan dengan direktori Anda. Anda dapat menggunakan konsol, CLI, atau RDS API untuk mengaitkan instans DB dengan direktori. Anda dapat melakukannya dengan salah satu cara berikut:
+  [Buat instance PostgreSQL DB baru menggunakan konsol, perintah [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html)CLI, atau operasi Create RDS API. DBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) Untuk petunjuk, lihat [Membuat instans DB Amazon RDS](USER_CreateDBInstance.md).
+  [Ubah instance PostgreSQL DB yang ada menggunakan konsol, perintah [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html)CLI, atau operasi Modify RDS API. DBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) Untuk petunjuk, lihat [Memodifikasi instans DB Amazon RDS](Overview.DBInstance.Modifying.md). 
+  [Pulihkan instans PostgreSQL DB dari snapshot DB menggunakan konsol, perintah CLI [restore-db-instance-from-db-snapshot](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html), atau operasi Restore From RDS API. DBInstance DBSnapshot](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html) Untuk petunjuk, lihat [Memulihkan ke instans DB](USER_RestoreFromSnapshot.md). 
+  [Kembalikan instance PostgreSQL DB ke point-in-time menggunakan konsol, perintah [restore-db-instance-to- point-in-time](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html) CLI, atau operasi Restore RDS API. DBInstance ToPointInTime](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html) Untuk petunjuk, lihat [Memulihkan instans DB ke waktu yang ditentukan untuk Amazon RDS](USER_PIT.md). 

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

### Konsol
<a name="postgresql-kerberos-setting-up.create-modify.Console"></a>

Saat Anda menggunakan konsol untuk membuat, memodifikasi, atau memulihkan instans DB, pilih **Kata sandi dan 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.\]](http://docs.aws.amazon.com/id_id/AmazonRDS/latest/UserGuide/images/rpg-authentication-use-kerberos.png)


### AWS CLI
<a name="postgresql-kerberos-setting-up.create-modify.CLI"></a>

Saat Anda menggunakan AWS CLI, parameter berikut diperlukan untuk instance DB agar dapat menggunakan direktori yang Anda buat:
+ Untuk parameter `--domain`, gunakan pengidentifikasi domain (pengidentifikasi "d-\$1") 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 instans DB untuk menggunakan direktori.

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

**penting**  
Jika Anda memodifikasi instans DB untuk mengaktifkan autentikasi Kerberos, boot ulang instans DB setelah membuat perubahan.

## Langkah 7: Buat pengguna PostgreSQL untuk pengguna utama Kerberos Anda
<a name="postgresql-kerberos-setting-up.create-logins"></a>

Pada titik ini, instans DB RDS for PostgreSQL Anda digabungkan ke domain AWS Managed Microsoft AD . Pengguna yang Anda buat di direktori [Langkah 4: Buat dan konfigurasikan pengguna](#postgresql-kerberos-setting-up.create-users) 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 instans DB RDS for 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 instans DB  RDS for PostgreSQL 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
   ```

1. 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
   ```

1. 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 instans DB RDS for 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 IAMuntuk MariaDB, MySQL, dan PostgreSQL](UsingWithRDS.IAMDBAuth.md). 

## Langkah 8: Konfigurasikan klien PostgreSQL
<a name="postgresql-kerberos-setting-up.configure-client"></a>

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 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. 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.goskope.com.cn = EXAMPLE.COM
 .amazon.com = EXAMPLE.COM
```

# Mengelola dalam domain Active Directory
<a name="postgresql-kerberos-managing"></a>

Anda dapat menggunakan konsol, CLI, atau RDS API untuk mengelola instans Anda dan hubungannya dengan Microsoft Active Directory Anda. Misalnya, Anda dapat mengaitkan Active Directory untuk mengaktifkan autentikasi Kerberos. Anda juga dapat menghapus pengaitan Active Directory untuk menonaktifkan autentikasi Kerberos. Anda juga dapat memindahkan instans DB untuk diautentikasi secara eksternal oleh satu Microsoft Active Directory ke yang lain.

Misalnya, dengan CLI, Anda dapat melakukan hal berikut:
+ Untuk mencoba kembali mengaktifkan otentikasi Kerberos untuk keanggotaan yang gagal, gunakan perintah CLI. [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) Tentukan ID direktori keanggotaan saat ini untuk opsi `--domain`.
+ Untuk menonaktifkan otentikasi Kerberos pada instance DB, gunakan perintah CLI [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html). Tentukan `none` untuk opsi `--domain`.
+ Untuk memindahkan instance DB dari satu domain ke domain lainnya, gunakan perintah [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html)CLI. Tentukan pengidentifikasi domain dari domain baru untuk opsi `--domain`.

## Memahami keanggotaan Domain
<a name="postgresql-kerberos-managing.understanding"></a>

Setelah Anda membuat atau memodifikasi instans DB, klaster DB menjadi anggota domain. Anda dapat melihat status keanggotaan domain di konsol atau dengan menjalankan perintah [describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html)CLI. 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` – Aktivasi autentikasi Kerberos pada instans DB ini tertunda.
+ `pending-maintenance-enable-kerberos`— AWS akan mencoba mengaktifkan otentikasi Kerberos pada instans DB selama jendela pemeliharaan terjadwal berikutnya.
+ `pending-disable-kerberos` – Penonaktifan autentikasi Kerberos pada instans DB ini tertunda.
+ `pending-maintenance-disable-kerberos`— AWS akan mencoba menonaktifkan otentikasi Kerberos pada instans DB selama jendela pemeliharaan terjadwal berikutnya.
+ `enable-kerberos-failed`— Masalah konfigurasi dicegah AWS dari mengaktifkan otentikasi Kerberos pada instans DB. Perbaiki masalah konfigurasi tersebut sebelum menerbitkan ulang perintah untuk memodifikasi instans DB.
+ `disabling-kerberos`— AWS sedang dalam proses menonaktifkan otentikasi Kerberos pada instance DB ini.

Permintaan untuk mengaktifkan autentikasi Kerberos dapat gagal karena masalah koneksi jaringan atau kesalahan peran IAM. Dalam beberapa kasus, upaya untuk mengaktifkan autentikasi Kerberos mungkin gagal saat Anda membuat atau memodifikasi instans DB. Jika demikian, pastikan Anda menggunakan peran IAM yang benar, kemudian ubah instans DB untuk bergabung ke domain.

**catatan**  
Hanya autentikasi Kerberos dengan RDS for PostgreSQL yang mengirimkan lalu lintas ke server DNS domain. Semua permintaan DNS lainnya diperlakukan sebagai akses jaringan keluar pada instans DB Anda yang menjalankan PostgreSQL. Untuk informasi selengkapnya tentang akses jaringan keluar dengan RDS for PostgreSQL, lihat [Menggunakan server DNS kustom untuk akses jaringan keluar](Appendix.PostgreSQL.CommonDBATasks.CustomDNS.md).

# Menghubungkan ke PostgreSQL dengan autentikasi Kerberos
<a name="postgresql-kerberos-connecting"></a>

Anda dapat terhubung ke PostgreSQL dengan autentikasi Kerberos, antarmuka pgAdmin, atau antarmuka baris perintah seperti psql. Untuk informasi selengkapnya tentang cara menghubungkan, lihat [Menghubungkan ke instans DB yang menjalankan mesin basis data PostgreSQL](USER_ConnectToPostgreSQLInstance.md) . Untuk informasi tentang mendapatkan titik akhir, nomor port, dan detail lain yang diperlukan untuk koneksi, lihat [Terhubung ke instans DB PostgreSQL](CHAP_GettingStarted.CreatingConnecting.PostgreSQL.md#CHAP_GettingStarted.Connecting.PostgreSQL). 

**catatan**  
Otentikasi dan enkripsi GSSAPI di PostgreSQL diimplementasikan oleh perpustakaan Kerberos. `libkrb5.so` Fitur seperti `postgres_fdw` dan `dblink` juga mengandalkan perpustakaan yang sama ini untuk koneksi keluar dengan otentikasi atau enkripsi Kerberos.

## pgAdmin
<a name="collapsible-section-pgAdmin"></a>

Untuk menggunakan pgAdmin untuk terhubung ke PostgreSQL dengan autentikasi Kerberos, lakukan langkah berikut:

1. Luncurkan aplikasi pgAdmin di komputer klien Anda.

1. Pada tab **Dasbor**, pilih **Tambahkan Server Baru**.

1. Di kotak dialog **Buat - Server**, masukkan nama pada tab **Umum** untuk mengidentifikasi server di pgAdmin.

1. Pada tab **Koneksi**, masukkan informasi berikut dari basis data RDS for PostgreSQL Anda. 
   + Untuk **Host**, masukkan titik akhir untuk . Instans DB RDS for PostgreSQL. Titik akhir terlihat seperti berikut ini:

     ```
     RDS-DB-instance.111122223333.aws-region.rds.amazonaws.com
     ```

     Untuk menyambung ke Microsoft Active Directory lokal dari klien Windows, Anda menggunakan nama domain Direktori Aktif AWS Terkelola, bukan `rds.amazonaws.com` di titik akhir host. Misalnya, misalkan nama domain untuk AWS Managed Active Directory adalah`corp.example.com`. Kemudian untuk **Host**, titik akhir akan ditentukan sebagai berikut: 

     ```
     RDS-DB-instance.111122223333.aws-region.corp.example.com
     ```
   + Untuk **Port**, masukkan port yang ditetapkan. 
   + Untuk **Basis data pemeliharaan**, masukkan nama basis data awal yang akan dihubungkan ke klien.
   + Untuk **Nama pengguna**, masukkan nama pengguna yang Anda masukkan untuk autentikasi Kerberos di [Langkah 7: Buat pengguna PostgreSQL untuk pengguna utama Kerberos Anda](postgresql-kerberos-setting-up.md#postgresql-kerberos-setting-up.create-logins). 

1. Pilih **Simpan**.

## Psql
<a name="collapsible-section-psql"></a>

Untuk menggunakan psql untuk terhubung ke PostgreSQL dengan autentikasi Kerberos, lakukan langkah berikut:

1. Pada jendela perintah, jalankan perintah berikut.

   ```
   kinit username                
   ```

   Ganti *`username`* dengan nama pengguna. Saat diminta, masukkan kata sandi yang disimpan dalam Microsoft Active Directory untuk pengguna.

1. Jika instans DB PostgreSQL menggunakan VPC yang dapat diakses publik, masukkan alamat IP untuk titik akhir instans DB di file `/etc/hosts` Anda pada klien EC2. Misalnya, perintah berikut mendapatkan alamat IP lalu memasukkannya ke dalam file `/etc/hosts`.

   ```
   % dig +short PostgreSQL-endpoint.AWS-Region.rds.amazonaws.com  
   ;; Truncated, retrying in TCP mode.
   ec2-34-210-197-118.AWS-Region.compute.amazonaws.com.
   34.210.197.118 
   
   % echo " 34.210.197.118  PostgreSQL-endpoint.AWS-Region.rds.amazonaws.com" >> /etc/hosts
   ```

   Jika Anda menggunakan Microsoft Active Directory on-premise dari klien Windows, Anda perlu terhubung menggunakan titik akhir khusus. Alih-alih menggunakan domain Amazon `rds.amazonaws.com` di titik akhir host, gunakan nama domain Direktori Aktif AWS Terkelola.

   Misalnya, misalkan nama domain untuk Direktori Aktif AWS Terkelola Anda adalah`corp.example.com`. Kemudian gunakan format `PostgreSQL-endpoint.AWS-Region.corp.example.com` untuk titik akhir dan masukkan ke dalam file `/etc/hosts`.

   ```
   % echo " 34.210.197.118  PostgreSQL-endpoint.AWS-Region.corp.example.com" >> /etc/hosts
   ```

1. Gunakan perintah psql berikut untuk masuk ke instans DB PostgreSQL yang terintegrasi dengan Active Directory. 

   ```
   psql -U username@CORP.EXAMPLE.COM -p 5432 -h PostgreSQL-endpoint.AWS-Region.rds.amazonaws.com postgres
   ```

   Untuk masuk ke klaster DB PostgreSQL dari klien Windows menggunakan Active Directory on-premise, gunakan perintah psql berikut dengan nama domain dari langkah sebelumnya (`corp.example.com`):

   ```
   psql -U username@CORP.EXAMPLE.COM -p 5432 -h PostgreSQL-endpoint.AWS-Region.corp.example.com postgres
   ```