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. Dengandedicated
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. VPCUntuk informasi selengkapnya tentang kelas instans, lihat Kelas instans Amazon Aurora DB. Untuk informasi selengkapnya tentang
default
dandedicated
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
, danREVOKE
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
Topik
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
-
Unduh sertifikatnya.
Untuk informasi tentang mengunduh sertifikat, lihat MenggunakanSSL/TLSuntuk mengenkripsi koneksi ke .
-
Impor sertifikat ke dalam sistem operasi Anda.
-
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, misalnyasslrootcert=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
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 |
|
10.21, 11.16, 12.11, 13.7, 14.3, dan 14.4 |
|
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 |
|
15.3, 14.8, 13.11, 12.15, dan 11.20 |
|
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