Untuk membantu Anda mencapai postur keamanan yang kuat untuk resource AlloyDB untuk PostgreSQL, ikuti praktik terbaik yang disediakan di halaman ini.
Mencegah pembajakan jalur penelusuran
Untuk mencegah pembajakan jalur penelusuran, tetapkan parameter search_path
ke pg_catalog untuk pengguna dengan hak istimewa tinggi. Konfigurasi ini mengamankan
jalur penelusuran sehingga skema yang tidak tepercaya seperti public akan diabaikan.
Untuk menetapkan parameter ini secara permanen bagi pengguna, jalankan perintah berikut:
ALTER ROLE USER_NAME SET search_path = pg_catalog,pg_temp;
Untuk menetapkan parameter ini hanya untuk sesi saat ini, jalankan perintah berikut:
SET search_path TO pg_catalog,pg_temp;
Untuk menetapkan parameter ini bagi semua pengguna saat terhubung ke database, jalankan perintah berikut:
ALTER DATABASE DB_NAME SET search_path TO schema1, schema2, public;
Untuk mengetahui informasi selengkapnya tentang cara mengamankan skema public, lihat
dokumentasi PostgreSQL tentang penggunaan skema yang aman dan
panduan CVE-2018-1058.
Mengamankan akses data BigQuery menggunakan wrapper data asing
Saat Anda menggunakan wrapper data asing (FDW) BigQuery, semua kueri dari AlloyDB ke BigQuery diautentikasi menggunakan akun layanan cluster AlloyDB. Karena akun layanan ini mungkin memiliki akses ke beberapa set data BigQuery yang sensitif, penting untuk mencegah pengguna database reguler memetakan tabel yang tidak sah.
Untuk menerapkan akses dengan hak istimewa terendah, batasi hak istimewa USAGE di server asing sehingga pengguna non-administrator tidak dapat menjalankan pernyataan CREATE FOREIGN TABLE:
Batasi
USAGEdi server asing: cegah peran non-administrator agar tidak memiliki hak istimewaUSAGE, dan cabutUSAGEdariPUBLICjika perlu.Memusatkan pembuatan tabel: hanya mengizinkan administrator database, seperti pengguna dengan peran
alloydbsuperuser, untuk membuat tabel asing.Memberikan akses selektif: mengelola akses baca menggunakan
GRANT SELECTpada tabel asing tertentu.
Contoh: Mengonfigurasi akses dengan hak istimewa terendah
Alur kerja berikut menunjukkan cara administrator dapat memberikan akses kepada pengguna reguler (bob) ke tabel BigQuery tertentu dengan aman tanpa mengizinkan mereka memetakan set data arbitrer:
Sebagai administrator, buat server asing dan cabut hak istimewa
USAGEdariPUBLICuntuk mencegah pembuatan tabel yang tidak sah:CREATE EXTENSION IF NOT EXISTS bigquery_fdw; CREATE SERVER bq_server FOREIGN DATA WRAPPER bigquery_fdw; -- Explicitly revoke USAGE from all users to prevent unauthorized table creation REVOKE ALL ON FOREIGN SERVER bq_server FROM PUBLIC;Sebagai administrator, buat pemetaan pengguna untuk pengguna reguler:
CREATE USER MAPPING FOR bob SERVER bq_server;Sebagai administrator, buat tabel asing:
-- Because 'bob' does not have USAGE on bq_server, only the administrator can run this. CREATE FOREIGN TABLE example_table ( id INT, state VARCHAR ) SERVER bq_server OPTIONS ( project 'BIGQUERY_PROJECT_ID', dataset 'BIGQUERY_DATASET_NAME', table 'example_table' );Sebagai administrator, berikan akses baca selektif pada tabel asing tertentu kepada pengguna reguler:
GRANT SELECT ON public.example_table TO bob;