Keamanan dengan Amazon Aurora Postgre SQL - Amazon Aurora

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

Keamanan dengan Amazon Aurora Postgre SQL

Untuk gambaran umum tentang keamanan Aurora, lihat. Keamanan dalam Amazon Aurora Anda dapat mengelola keamanan untuk Amazon Aurora Postgre SQL di beberapa tingkatan berbeda:

  • Untuk mengontrol siapa yang dapat melakukan tindakan RDS pengelolaan Amazon pada cluster SQL DB Aurora Postgre dan instans DB, gunakan (). AWS Identity and Access Management IAM IAMmenangani otentikasi identitas pengguna sebelum pengguna dapat mengakses layanan. IAM juga menangani otorisasi, yaitu, apakah pengguna diizinkan untuk melakukan apa yang mereka coba lakukan. IAMotentikasi database adalah metode otentikasi tambahan yang dapat Anda pilih saat Anda membuat cluster Aurora Postgre DB Anda. SQL Untuk informasi selengkapnya, lihat Manajemen identitas dan akses untuk Amazon Aurora.

    Jika Anda menggunakannya IAM dengan cluster Aurora Postgre SQL DB Anda, masuk ke AWS Management Console dengan IAM kredenal Anda terlebih dahulu, sebelum membuka konsol Amazon di. RDS https://console.aws.amazon.com/rds/

  • Pastikan untuk membuat cluster Aurora DB di cloud pribadi virtual (VPC) berdasarkan layanan Amazon. VPC Untuk mengontrol perangkat dan EC2 instans Amazon mana yang dapat membuka koneksi ke titik akhir dan port instans DB untuk cluster Aurora DB di aVPC, gunakan grup keamanan. VPC Anda dapat membuat koneksi endpoint dan port ini dengan menggunakan Secure Sockets Layer (SSL). Selain itu, aturan firewall di perusahaan Anda dapat mengendalikan perangkat yang berjalan di perusahaan Anda untuk dapat membuka koneksi ke instans DB. Untuk informasi lebih lanjut tentangVPCs, lihatAmazon VPC dan Amazon Aurora.

    VPCPenyewaan yang didukung tergantung pada kelas instans DB yang digunakan oleh cluster Aurora SQL Postgre DB Anda. Dengan default VPC penyewaan, cluster DB berjalan pada perangkat keras bersama. Dengan dedicated VPC penyewaan, cluster DB berjalan pada instance perangkat keras khusus. Kelas instans DB kinerja burstable hanya mendukung VPC penyewaan default. Kelas instans DB performa yang dapat melonjak mencakup kelas instans DB db.t3 dan db.t4g. Semua kelas instans Aurora Postgre SQL DB lainnya mendukung penyewaan default dan khusus. VPC

    Untuk informasi selengkapnya tentang kelas instans, lihat Kelas instans Amazon Aurora DB. Untuk informasi selengkapnya tentang default dan dedicated VPC penyewaan, lihat Instans khusus di Panduan Pengguna Amazon Elastic Compute Cloud.

  • Untuk memberikan izin ke SQL database Postgre yang berjalan di klaster DB Amazon Aurora, Anda dapat menggunakan pendekatan umum yang sama dengan instance Postgre yang berdiri sendiri. SQL Perintah seperti CREATE ROLE, ALTER ROLE, GRANT, dan REVOKE bekerja sama seperti dalam basis data on-premise, seperti mengubah langsung basis data, skema, dan tabel.

    Postgre SQL mengelola hak istimewa dengan menggunakan peran. Peran tersebut adalah rds_superuser peran yang paling istimewa pada cluster Aurora SQL Postgre DB. Peran ini dibuat secara otomatis, dan diberikan kepada pengguna yang membuat klaster DB (akun pengguna master, postgres secara default). Untuk mempelajari selengkapnya, lihat Memahami peran dan izin PostgreSQL.

Semua versi Aurora Postgre yang tersedia, termasuk SQL versi 10, 11, 12, 13, 14, dan rilis yang lebih tinggi mendukung Salted Challenge Response Authentication Mechanism (SCRAM) untuk kata sandi sebagai alternatif untuk message digest (). MD5 Kami menyarankan Anda menggunakannya SCRAM karena lebih aman daripadaMD5. Untuk informasi selengkapnya, termasuk cara memigrasi kata sandi pengguna database dari MD5 keSCRAM, lihatMenggunakan SCRAM untuk enkripsi kata sandi PostgreSQL.

Mengamankan data Aurora SQL Postgre dengan/SSLTLS

Amazon RDS mendukung enkripsi Secure Socket Layer (SSL) dan Transport Layer Security (TLS) untuk klaster Aurora SQL Postgre DB. MenggunakanSSL/TLS, Anda dapat mengenkripsi koneksi antara aplikasi Anda dan cluster Aurora SQL Postgre DB Anda. Anda juga dapat memaksa semua koneksi ke cluster Aurora Postgre SQL DB Anda untuk menggunakan/. SSL TLS Amazon Aurora Postgre SQL mendukung Transport Layer Security (TLS) versi 1.1 dan 1.2. Kami merekomendasikan menggunakan TLS 1.2 untuk koneksi terenkripsi. Kami telah menambahkan dukungan untuk TLSv1 .3 dari versi SQL Aurora Postgre berikut:

  • Versi 15.3 dan semua yang lebih tinggi

  • Versi 14.8 dan versi 14 yang lebih tinggi

  • 13.11 dan versi 13 yang lebih tinggi

  • 12.15 dan versi 12 yang lebih tinggi

  • Versi 11.20 dan versi 11 yang lebih tinggi

Untuk informasi umum SSL TLS tentang/support dan SQL database Postgre, lihat SSLdukungan di dokumentasi Postgre. SQL Untuk informasi tentang menggunakan TLS koneksiSSL/overJDBC, lihat Mengonfigurasi klien dalam dokumentasi SQL Postgre.

SSL/TLSdukungan tersedia di semua AWS Wilayah untuk Aurora Postgre. SQL Amazon RDS membuat TLS sertifikatSSL/untuk klaster DB Aurora Postgre Anda saat cluster SQL DB dibuat. Jika Anda mengaktifkan verifikasiSSL/TLSsertifikat, maka TLS sertifikatSSL/menyertakan titik akhir cluster DB sebagai Nama Umum (CN) untuk TLS sertifikatSSL/untuk menjaga terhadap serangan spoofing.

Untuk terhubung ke cluster Aurora Postgre SQL DB melalui/SSLTLS
  1. Unduh sertifikatnya.

    Untuk informasi tentang mengunduh sertifikat, lihat MenggunakanSSL/TLSuntuk mengenkripsi koneksi ke .

  2. Impor sertifikat ke dalam sistem operasi Anda.

  3. Connect ke cluster Aurora Postgre SQL DB Anda melalui/. SSL TLS

    Ketika Anda terhubung menggunakanSSL/TLS, klien Anda dapat memilih untuk memverifikasi rantai sertifikat atau tidak. Jika parameter koneksi Anda menentukan sslmode=verify-ca atausslmode=verify-full, maka klien Anda memerlukan sertifikat RDS CA untuk berada di toko kepercayaan mereka atau direferensikan dalam koneksiURL. Persyaratan ini untuk memverifikasi rantai sertifikat yang menandatangani sertifikat basis data Anda.

    Ketika klien, seperti psql atauJDBC, dikonfigurasi denganSSL/TLSsupport, klien pertama mencoba untuk terhubung ke database SSL dengan/secara TLS default. Jika klien tidak dapat terhubung denganSSL/TLS, itu kembali ke koneksi tanpaSSL/TLS. Secara default, sslmode opsi untuk JDBC dan klien berbasis libpq diatur ke. prefer

    Gunakan parameter sslrootcert untuk mereferensikan sertifikat, misalnya sslrootcert=rds-ssl-ca-cert.pem.

Berikut ini adalah contoh penggunaan psql untuk terhubung ke cluster Aurora Postgre DB. SQL

$ psql -h testpg.cdhmuqifdpib.us-east-1.rds.amazonaws.com -p 5432 \ "dbname=testpg user=testuser sslrootcert=rds-ca-2015-root.pem sslmode=verify-full"

Membutuhkan TLS koneksiSSL/ke cluster Aurora SQL Postgre DB

Anda dapat meminta koneksi ke cluster Aurora Postgre SQL DB Anda gunakanSSL/TLSdengan menggunakan parameter. rds.force_ssl Secara default, parameter rds.force_ssl diatur ke 0 (nonaktif). Anda dapat mengatur rds.force_ssl parameter ke 1 (on) untuk memerlukanSSL/TLSuntuk koneksi ke cluster DB Anda. Memperbarui rds.force_ssl parameter juga menetapkan SQL ssl parameter Postgre ke 1 (on) dan memodifikasi pg_hba.conf file cluster DB Anda untuk mendukung konfigurasi/baruSSL. TLS

Anda dapat mengatur nilai parameter rds.force_ssl dengan memperbarui grup parameter klaster DB untuk klaster DB Anda. Jika grup parameter klaster DB bukan default, dan parameter ssl sudah diatur ke 1 saat Anda mengatur rds.force_ssl ke 1, Anda tidak perlu melakukan boot ulang klaster DB Anda. Jika tidak, Anda harus melakukan boot ulang klaster DB Anda agar perubahan dapat diterapkan. Untuk informasi selengkapnya tentang grup parameter, lihat .

Ketika rds.force_ssl parameter diatur ke 1 untuk cluster DB, Anda melihat output yang mirip dengan yang berikut saat Anda terhubung, menunjukkan bahwaSSL/sekarang TLS diperlukan:

$ psql postgres -h SOMEHOST.amazonaws.com -p 8192 -U someuser psql (9.3.12, server 9.4.4) WARNING: psql major version 9.3, server major version 9.4. Some psql features might not work. SSL connection (cipher: DHE-RSA-AES256-SHA, bits: 256) Type "help" for help. postgres=>

Menentukan status SSL TLS /koneksi

Status terenkripsi dari koneksi Anda ditunjukkan pada banner logon saat Anda terhubung ke klaster DB.

Password for user master: psql (9.3.12) SSL connection (cipher: DHE-RSA-AES256-SHA, bits: 256) Type "help" for help.   postgres=>

Anda juga dapat memuat sslinfo ekstensi dan kemudian memanggil ssl_is_used() fungsi untuk menentukan apakahSSL/TLSsedang digunakan. Fungsi kembali t jika koneksi menggunakanSSL/TLS, jika tidak maka kembalif.

postgres=> create extension sslinfo; CREATE EXTENSION postgres=> select ssl_is_used(); ssl_is_used --------- t (1 row)

Anda dapat menggunakan select ssl_cipher() perintah untuk menentukanSSL/TLScipher:

postgres=> select ssl_cipher(); ssl_cipher -------------------- DHE-RSA-AES256-SHA (1 row)

Jika Anda mengaktifkan set rds.force_ssl dan memulai ulang cluster DB Anda, SSL non-koneksi ditolak dengan pesan berikut:

$ export PGSSLMODE=disable $ psql postgres -h SOMEHOST.amazonaws.com -p 8192 -U someuser psql: FATAL: no pg_hba.conf entry for host "host.ip", user "someuser", database "postgres", SSL off $

Untuk informasi tentang sslmode opsi, lihat Fungsi kontrol koneksi database dalam dokumentasi PostgreSQL.

Mengkonfigurasi cipher suite untuk koneksi ke cluster Aurora Postgre DB SQL

Dengan menggunakan cipher suite yang dapat dikonfigurasi, Anda dapat memiliki kontrol lebih besar atas keamanan koneksi basis data Anda. Anda dapat menentukan daftar cipher suite yang ingin Anda izinkan untuk mengamankan SSL TLS klien/koneksi ke database Anda. Dengan cipher suite yang dapat dikonfigurasi, Anda dapat mengontrol enkripsi koneksi yang diterima server basis data Anda. Melakukan hal ini membantu mencegah penggunaan cipher yang tidak aman atau usang.

Suite cipher yang dapat dikonfigurasi didukung di Aurora SQL Postgre versi 11.8 dan lebih tinggi.

Untuk menentukan daftar cipher yang diizinkan untuk mengenkripsi koneksi, modifikasi parameter klaster ssl_ciphers. Atur ssl_ciphers parameter ke string nilai cipher yang dipisahkan koma dalam grup parameter cluster menggunakan AWS Management Console,, atau. AWS CLI RDS API Untuk mengatur parameter klaster, lihat Memodifikasi parameter dalam grup parameter cluster DB di Amazon Aurora.

Tabel berikut menunjukkan cipher yang didukung untuk versi mesin Aurora Postgre yang valid. SQL

Versi mesin Aurora Postgre SQL Cipher yang didukung

9.6, 10.20 dan lebih rendah, 11.15 dan lebih rendah, 12.10 dan lebih rendah, 13.6 dan lebih rendah

  • DHE-RSA-AES128-SHA

  • DHE-RSA-AES128-SHA256

  • DHE-RSA-AES128-GCM-SHA256

  • DHE-RSA-AES256-SHA

  • DHE-RSA-AES256-SHA256

  • DHE-RSA-AES256-GCM-SHA384

  • ECDHE-ECDSA-AES256-SHA

  • ECDHE-ECDSA-AES256-GCM-SHA384

  • ECDHE-RSA-AES256-SHA384

  • ECDHE-RSA-AES128-SHA

  • ECDHE-RSA-AES128-SHA256

  • ECDHE-RSA-AES128-GCM-SHA256

  • ECDHE-RSA-AES256-SHA

  • ECDHE-RSA-AES256-GCM-SHA384

10.21, 11.16, 12.11, 13.7, 14.3, dan 14.4

  • DHE-RSA-AES128-SHA

  • DHE-RSA-AES128-SHA256

  • DHE-RSA-AES128-GCM-SHA256

  • DHE-RSA-AES256-SHA

  • DHE-RSA-AES256-SHA256

  • DHE-RSA-AES256-GCM-SHA384

  • ECDHE-ECDSA-AES256-SHA

  • ECDHE-ECDSA-AES256-GCM-SHA384

  • ECDHE-RSA-AES256-SHA384

  • ECDHE-RSA-AES128-SHA

  • ECDHE-RSA-AES128-GCM-SHA256

  • ECDHE-RSA-AES256-SHA

  • ECDHE-RSA-AES256-GCM-SHA384

  • TLS_ _ ECDHE _ ECDSA WITH _ AES CBC _256_ _ SHA

  • TLS_ _ ECDHE _ ECDSA WITH _ AES GCM _256_ _ SHA384

  • TLS_ _ ECDHE _ RSA WITH _ AES CBC _128_ _ SHA

  • TLS_ _ ECDHE _ RSA WITH _ AES GCM _128_ _ SHA256

  • TLS_ _ ECDHE _ RSA WITH _ AES CBC _256_ _ SHA

  • TLS_ _ ECDHE _ RSA WITH _ AES GCM _256_ _ SHA384

  • TLS_ _ RSA WITH _ AES GCM _256_ _ SHA384

  • TLS_ _ RSA WITH _ AES CBC _256_ _ SHA

  • TLS_ _ RSA WITH _ AES GCM _128_ _ SHA256

  • TLS_ _ RSA WITH _ AES CBC _128_ _ SHA

  • TLS_ ECDHE _ _ RSA _ WITH CHACHA2 0_ 05_ POLY13 SHA256

10.22 dan lebih tinggi, 11.17 dan lebih tinggi, 12.12 dan lebih tinggi, 13.8 dan lebih tinggi, 14.5 dan lebih tinggi, serta 15.2 dan lebih tinggi

  • DHE-RSA-AES128-SHA

  • DHE-RSA-AES128-SHA256

  • DHE-RSA-AES128-GCM-SHA256

  • DHE-RSA-AES256-SHA

  • DHE-RSA-AES256-SHA256

  • DHE-RSA-AES256-GCM-SHA384

  • ECDHE-ECDSA-AES256-SHA

  • ECDHE-ECDSA-AES256-GCM-SHA384

  • ECDHE-RSA-AES256-SHA384

  • ECDHE-RSA-AES128-SHA

  • ECDHE-RSA-AES128-SHA256

  • ECDHE-RSA-AES128-GCM-SHA256

  • ECDHE-RSA-AES256-SHA

  • ECDHE-RSA-AES256-GCM-SHA384

  • TLS_ _ ECDHE _ ECDSA WITH _ AES CBC _256_ _ SHA

  • TLS_ _ ECDHE _ ECDSA WITH _ AES GCM _256_ _ SHA384

  • TLS_ _ ECDHE _ RSA WITH _ AES CBC _128_ _ SHA

  • TLS_ _ ECDHE _ RSA WITH _ AES CBC _128_ _ SHA256

  • TLS_ _ ECDHE _ RSA WITH _ AES GCM _128_ _ SHA256

  • TLS_ _ ECDHE _ RSA WITH _ AES CBC _256_ _ SHA

  • TLS_ _ ECDHE _ RSA WITH _ AES GCM _256_ _ SHA384

  • TLS_ _ RSA WITH _ AES GCM _256_ _ SHA384

  • TLS_ _ RSA WITH _ AES CBC _256_ _ SHA

  • TLS_ _ RSA WITH _ AES GCM _128_ _ SHA256

  • TLS_ _ RSA WITH _ AES CBC _128_ _ SHA256

  • TLS_ _ RSA WITH _ AES CBC _128_ _ SHA

  • TLS_ ECDHE _ _ RSA _ WITH CHACHA2 0_ 05_ POLY13 SHA256

15.3, 14.8, 13.11, 12.15, dan 11.20

  • DHE-RSA-AES128-SHA

  • DHE-RSA-AES128-SHA256

  • DHE-RSA-AES128-GCM-SHA256

  • DHE-RSA-AES256-SHA

  • DHE-RSA-AES256-SHA256

  • DHE-RSA-AES256-GCM-SHA384

  • ECDHE-ECDSA-AES256-SHA

  • ECDHE-ECDSA-AES256-GCM-SHA384

  • ECDHE-RSA-AES256-SHA384

  • ECDHE-RSA-AES128-SHA

  • ECDHE-RSA-AES128-SHA256

  • ECDHE-RSA-AES128-GCM-SHA256

  • ECDHE-RSA-AES256-SHA

  • ECDHE-RSA-AES256-GCM-SHA384

  • TLS_ _ ECDHE _ ECDSA WITH _ AES CBC _256_ _ SHA

  • TLS_ _ ECDHE _ ECDSA WITH _ AES GCM _256_ _ SHA384

  • TLS_ _ ECDHE _ RSA WITH _ AES CBC _128_ _ SHA

  • TLS_ _ ECDHE _ RSA WITH _ AES CBC _128_ _ SHA256

  • TLS_ _ ECDHE _ RSA WITH _ AES GCM _128_ _ SHA256

  • TLS_ _ ECDHE _ RSA WITH _ AES CBC _256_ _ SHA

  • TLS_ _ ECDHE _ RSA WITH _ AES GCM _256_ _ SHA384

  • TLS_ _ RSA WITH _ AES GCM _256_ _ SHA384

  • TLS_ _ RSA WITH _ AES CBC _256_ _ SHA

  • TLS_ _ RSA WITH _ AES GCM _128_ _ SHA256

  • TLS_ _ RSA WITH _ AES CBC _128_ _ SHA256

  • TLS_ _ RSA WITH _ AES CBC _128_ _ SHA

  • TLS_ ECDHE _ _ RSA _ WITH CHACHA2 0_ 05_ POLY13 SHA256

  • TLS_ AES GCM _128_ _ SHA256

  • TLS_ AES GCM _256_ _ SHA384

Anda juga dapat menggunakan CLI perintah describe-engine-default-cluster-parameters untuk menentukan suite cipher mana yang saat ini didukung untuk keluarga grup parameter tertentu. Contoh berikut menunjukkan cara mendapatkan nilai yang diizinkan untuk parameter ssl_cipher cluster untuk Aurora SQL Postgre 11.

aws rds describe-engine-default-cluster-parameters --db-parameter-group-family aurora-postgresql11 ...some output truncated... { "ParameterName": "ssl_ciphers", "Description": "Sets the list of allowed TLS ciphers to be used on secure connections.", "Source": "engine-default", "ApplyType": "dynamic", "DataType": "list", "AllowedValues": "DHE-RSA-AES128-SHA,DHE-RSA-AES128-SHA256,DHE-RSA-AES128-GCM-SHA256,DHE-RSA-AES256-SHA,DHE-RSA-AES256-SHA256,DHE-RSA-AES256-GCM-SHA384, ECDHE-RSA-AES128-SHA,ECDHE-RSA-AES128-SHA256,ECDHE-RSA-AES128-GCM-SHA256,ECDHE-RSA-AES256-SHA,ECDHE-RSA-AES256-SHA384,ECDHE-RSA-AES256-GCM-SHA384,TLS_RSA_WITH_AES_256_GCM_SHA384, TLS_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA", "IsModifiable": true, "MinimumEngineVersion": "11.8", "SupportedEngineModes": [ "provisioned" ] }, ...some output truncated...

Parameter default ssl_ciphers ke semua suite cipher yang diizinkan. Untuk informasi selengkapnya tentang cipher, lihat variabel ssl_ciphers dalam dokumentasi Postgre. SQL