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, pastikan pengguna dengan hak istimewa tinggi
memiliki parameter search_path yang ditetapkan ke pg_catalog. Hal ini memastikan bahwa jalur penelusuran diamankan dan skema yang tidak tepercaya seperti public dilewati.
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, lihat dokumentasi PostgreSQL tentang penggunaan skema yang aman dan panduan CVE-2018-1058.
Mengamankan akses data BigQuery menggunakan foreign data wrapper
Saat Anda menggunakan foreign data wrapper (FDW) BigQuery, semua kueri dari AlloyDB ke BigQuery akan 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 hak istimewa terendah, administrator harus membatasi hak istimewa USAGE di server asing. Hal ini secara fisik mencegah pengguna non-administrator menjalankan pernyataan CREATE FOREIGN TABLE.
- Batasi
USAGEdi server asing dengan memastikan bahwa peran non-administrator tidak memiliki hak istimewaUSAGEdi server asing. Cabut dariPUBLICjika perlu. - Pusatkan pembuatan tabel: Hanya administrator database, misalnya, pengguna dengan peran
alloydbsuperuser, yang dapat membuat tabel asing. - Berikan akses selektif: administrator mengelola akses baca menggunakan
GRANT SELECTpada tabel asing tertentu.
Contoh: Mengonfigurasi Akses Hak Istimewa Terendah
Alur kerja berikut menunjukkan cara administrator dapat memberikan akses yang aman kepada pengguna reguler (bob) ke tabel BigQuery tertentu tanpa mengizinkannya memetakan set data arbitrer.
-- Step 1: Create the server and restrict access (Executed as Administrator) ```sql 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; ```
-- Step 2: Create a User Mapping for the regular user (Executed as Administrator)
sql
CREATE USER MAPPING FOR bob SERVER bq_server;
-- Step 3: Create the Foreign Table (Executed as Administrator)
-- Because 'bob' does not have USAGE on bq_server, only the administrator can run this.
sql
CREATE FOREIGN TABLE example_table (
id INT,
state VARCHAR
) SERVER bq_server OPTIONS (
project 'BIGQUERY_PROJECT_ID',
dataset 'BIGQUERY_DATASET_NAME',
table 'example_table'
);
-- Step 4: Grant Selective Read Access (Executed as Administrator)
-- Explicitly grant read access to the regular user for this specific table.
sql
GRANT SELECT ON public.example_table TO bob;