Mengimpor data dari jaringan eksternal ke data warehouse BigQuery yang aman

Last reviewed 2023-08-15 UTC

Banyak organisasi men-deploy data warehouse yang menyimpan informasi rahasia sehingga mereka dapat menganalisis data untuk berbagai tujuan bisnis. Dokumen ini ditujukan untuk data engineer dan administrator keamanan yang men-deploy dan mengamankan data warehouse menggunakan BigQuery. Ini adalah bagian dari cetak biru keamanan yang mencakup hal-hal berikut:

  • Sebuah Repositori GitHub yang berisi kumpulan konfigurasi dan skrip Terraform. Konfigurasi Terraform menyiapkan lingkungan di Google Cloud yang mendukung data warehouse yang menyimpan data rahasia.
  • Panduan untuk arsitektur, desain, dan kontrol keamanan yang akan Anda terapkan menggunakan cetak biru ini (dokumen ini).

Dokumen ini membahas hal-hal berikut:

  • Arsitektur dan layanan Google Cloud yang dapat Anda gunakan untuk membantu mengamankan data warehouse di lingkungan produksi.
  • Praktik terbaik untuk mengimpor data ke BigQuery dari jaringan eksternal seperti lingkungan lokal.
  • Praktik terbaik untuk tata kelola data saat membuat, men-deploy, dan mengoperasikan data warehouse di Google Cloud, termasuk enkripsi tingkat kolom, penanganan diferensial data rahasia, dan kontrol akses tingkat kolom.

Dokumen ini mengasumsikan bahwa Anda telah mengonfigurasi serangkaian kontrol keamanan dasar seperti yang dijelaskan dalam blueprint Enterprise Foundation Google Cloud. Layanan ini membantu Anda melapisi kontrol tambahan ke kontrol keamanan yang ada untuk membantu melindungi data rahasia di data warehouse.

Kasus penggunaan data warehouse

Blueprint mendukung kasus penggunaan berikut:

Ringkasan

Dengan data warehouse seperti BigQuery, bisnis dapat menganalisis data bisnis untuk mendapatkan insight. Analis mengakses data bisnis yang disimpan di {i>data warehouse<i} untuk menyusun insight, data, laporan, analisis. Jika data warehouse Anda menyertakan data yang dianggap rahasia, Anda harus mengambil tindakan untuk menjaga keamanan, kerahasiaan, integritas, dan ketersediaan data bisnis saat diimpor dan disimpan, saat dalam pengiriman, atau saat sedang dianalisis. Dalam blueprint ini, Anda akan melakukan hal berikut:

  • Enkripsi data sumber Anda yang terletak di luar Google Cloud (misalnya, di lingkungan lokal) dan impor ke BigQuery.
  • Konfigurasi kontrol yang membantu mengamankan akses ke data rahasia.
  • Konfigurasi kontrol yang membantu mengamankan pipeline data.
  • Konfigurasi pemisahan tugas yang sesuai untuk berbagai persona.
  • Siapkan kontrol keamanan dan logging yang sesuai untuk membantu melindungi data rahasia.
  • Gunakan klasifikasi data, tag kebijakan, data masking dinamis, dan enkripsi tingkat kolom untuk membatasi akses ke kolom tertentu di data warehouse.

Arsitektur

Untuk membuat data warehouse rahasia, Anda harus mengimpor data dengan aman, lalu menyimpan data di perimeter Kontrol Layanan VPC. Gambar berikut menunjukkan cara data diserap dan disimpan.

Arsitektur data warehouse yang aman untuk jaringan eksternal.

Arsitektur ini menggunakan kombinasi layanan dan fitur Google Cloud berikut:

  • Dedicated Interconnect memungkinkan Anda memindahkan data antara jaringan Anda dan Google Cloud. Anda dapat menggunakan opsi konektivitas lain, seperti yang dijelaskan dalam Memilih produk Network Connectivity.

  • Identity and Access Management (IAM) dan Resource Manager membatasi akses dan mengelompokkan resource. Kontrol akses dan hierarki resource mengikuti prinsip hak istimewa terendah.

  • Kontrol Layanan VPC menciptakan perimeter keamanan yang mengisolasi layanan dan resource dengan menyiapkan otorisasi, kontrol akses, dan pertukaran data yang aman. Perimeter adalah sebagai berikut:

    • Perimeter penyerapan data yang menerima data yang masuk (dalam batch atau aliran data). Perimeter terpisah membantu melindungi beban kerja Anda lainnya dari data yang masuk.
    • Perimeter data yang mengisolasi data enkripsi dari beban kerja lain.
    • Perimeter tata kelola yang menyimpan kunci enkripsi dan menentukan data yang dianggap sebagai data rahasia.

    Perimeter ini dirancang untuk melindungi konten yang masuk, mengisolasi data rahasia dengan menyiapkan kontrol dan pemantauan akses tambahan, serta memisahkan tata kelola Anda dari data aktual di warehouse. Tata kelola Anda mencakup pengelolaan kunci, pengelolaan katalog data, dan logging.

  • Cloud Storage dan Pub/Sub menerima data sebagai berikut:

    • Cloud Storage: menerima dan menyimpan data batch. Secara default, Cloud Storage menggunakan TLS untuk mengenkripsi data dalam pengiriman dan AES-256 untuk mengenkripsi data dalam penyimpanan. Kunci enkripsi adalah kunci enkripsi yang dikelola pelanggan (CMEK). Untuk mengetahui informasi selengkapnya tentang enkripsi, lihat Opsi enkripsi data.

      Anda dapat membantu mengamankan akses ke bucket Cloud Storage menggunakan kontrol keamanan seperti Identity and Access Management, daftar kontrol akses (ACL), dan dokumen kebijakan. Untuk informasi selengkapnya tentang kontrol akses yang didukung, lihat Ringkasan kontrol akses.

    • Pub/Sub: menerima dan menyimpan data streaming. Pub/Sub menggunakan autentikasi, kontrol akses, dan enkripsi tingkat pesan dengan CMEK untuk melindungi data Anda.

  • Cloud Functions dipicu oleh Cloud Storage dan menulis data yang diupload Cloud Storage ke bucket penyerapan ke BigQuery.

  • Pipeline Dataflow yang menulis data streaming ke BigQuery. Untuk melindungi data, Dataflow menggunakan akun layanan dan kontrol akses yang unik. Untuk membantu mengamankan eksekusi pipeline dengan memindahkannya ke layanan backend, Dataflow menggunakan Streaming Engine. Untuk mengetahui informasi selengkapnya, lihat Keamanan dan izin Dataflow.

  • Cloud Data Loss Prevention (Cloud DLP) memindai data yang disimpan di BigQuery untuk menemukan data sensitif yang tidak dilindungi. Untuk mengetahui informasi lebih lanjut, baca artikel Menggunakan Cloud DLP untuk memindai data BigQuery.

  • Cloud HSM menghosting kunci enkripsi kunci (KEK). Cloud HSM adalah layanan Hardware Security Module (HSM) berbasis cloud. Anda menggunakan Cloud HSM untuk membuat kunci enkripsi yang digunakan untuk mengenkripsi data di jaringan Anda sebelum mengirimkannya ke Google Cloud.

  • Data Catalog otomatis mengategorikan data rahasia dengan metadata, yang juga dikenal sebagai tag kebijakan, saat ditemukan di BigQuery. Data Catalog juga menggunakan metadata untuk mengelola akses ke data rahasia. Untuk mengetahui informasi selengkapnya, lihat Ringkasan Katalog Data. Untuk mengontrol akses ke data dalam data warehouse, Anda menerapkan tag kebijakan ke kolom yang menyertakan data rahasia.

  • BigQuery menyimpan data terenkripsi dan kunci enkripsi yang digabungkan dalam tabel terpisah.

    BigQuery menggunakan berbagai kontrol keamanan untuk membantu melindungi konten, termasuk kontrol akses, enkripsi tingkat kolom, kolom- tingkat keamanan, dan enkripsi data.

  • Security Command Center memantau dan meninjau temuan keamanan dari seluruh lingkungan Google Cloud Anda di satu lokasi terpusat.

  • Cloud Logging mengumpulkan semua log dari layanan Google Cloud untuk disimpan dan diambil oleh alat analisis dan investigasi Anda.

  • Cloud Monitoring mengumpulkan dan menyimpan informasi performa dan metrik tentang layanan Google Cloud.

  • Data Profiler untuk BigQuery secara otomatis memindai data sensitif di semua tabel dan kolom BigQuery di seluruh organisasi, termasuk semua folder dan project.

Struktur organisasi

Anda mengelompokkan resource organisasi agar dapat dikelola dan memisahkan lingkungan pengujian dari lingkungan produksi. Resource Manager memungkinkan Anda mengelompokkan resource secara logis berdasarkan project, folder, dan organisasi.

Diagram berikut menunjukkan hierarki resource dengan folder yang mewakili lingkungan yang berbeda seperti bootstrap, umum, produksi, non-produksi (atau staging), dan pengembangan. Hierarki ini selaras dengan struktur organisasi yang digunakan oleh blueprint fondasi perusahaan. Anda men-deploy sebagian besar project di cetak biru ke folder produksi, dan project Tata kelola data di folder umum yang digunakan untuk tata kelola.

Hierarki resource untuk data warehouse yang aman untuk jaringan eksternal.

Untuk hierarki resource alternatif, lihat artikel Menentukan hierarki resource untuk zona landing Google Cloud Anda.

Folder

Anda menggunakan folder untuk mengisolasi lingkungan produksi dan layanan tata kelola dari lingkungan non-produksi dan pengujian Anda. Tabel berikut menjelaskan folder dari blueprint Enterprise Foundation yang digunakan oleh blueprint ini.

Folder Deskripsi
Bootstrap Berisi resource yang diperlukan untuk men-deploy blueprint fondasi perusahaan.
Umum Berisi layanan terpusat untuk organisasi, seperti project Tata kelola data.
Produksi Berisi project yang memiliki resource cloud yang telah diuji dan siap digunakan. Dalam cetak biru ini, folder Produksi berisi project Penyerapan data dan project Data.
Non-produksi Berisi project yang memiliki resource cloud yang saat ini sedang diuji dan direncanakan untuk dirilis. Dalam cetak biru ini, folder Non-production berisi project Penyerapan data dan project data.
Pengembangan Berisi project yang memiliki resource cloud yang saat ini sedang dikembangkan. Dalam cetak biru ini, folder Pengembangan berisi project Penyerapan data dan project Data.

Anda dapat mengubah nama folder ini agar selaras dengan struktur folder organisasi, tetapi sebaiknya Anda mempertahankan struktur yang serupa. Untuk mengetahui informasi selengkapnya, lihat blueprint fondasi perusahaan Google Cloud.

Project

Anda mengisolasi bagian lingkungan Anda menggunakan project. Tabel berikut menjelaskan project yang diperlukan dalam organisasi. Anda membuat project ini saat menjalankan kode Terraform. Anda dapat mengubah nama project ini, tetapi sebaiknya pertahankan struktur project yang serupa.

Project Deskripsi
Penyerapan data Berisi layanan yang diperlukan untuk menerima data dan menulisnya ke BigQuery.
Tata kelola data Berisi layanan yang menyediakan kemampuan pengelolaan kunci, logging, dan katalog data.
Data Berisi layanan yang diperlukan untuk menyimpan data.

Selain project ini, lingkungan Anda juga harus menyertakan project yang menghosting tugas Template Fleksibel Dataflow. Tugas Template Flex diperlukan untuk pipeline data streaming.

Memetakan peran dan grup ke project

Anda harus memberikan akses ke project yang membentuk data warehouse rahasia kepada berbagai grup pengguna di organisasi Anda. Bagian berikut menjelaskan rekomendasi cetak biru untuk grup pengguna dan penetapan peran dalam project yang Anda buat. Anda dapat menyesuaikan grup agar cocok dengan struktur organisasi yang ada, tetapi sebaiknya pertahankan pemisahan tugas dan penetapan peran yang serupa.

Grup analis data

Analis data melihat dan menganalisis data di gudang. Grup ini dapat melihat data setelah dimuat ke data warehouse dan melakukan operasi yang sama seperti Grup penampil data terenkripsi. Grup ini memerlukan peran dalam berbagai project, sebagaimana dijelaskan dalam tabel berikut.

Cakupan tugas Peran
Project penyerapan data
Project data
Tingkat kebijakan data Pembaca yang Disematkan (roles/bigquerydatapolicy.maskedReader)

Grup penampil data terenkripsi

Grup Encrypted data viewer dapat melihat data terenkripsi dari tabel pelaporan BigQuery melalui Cloud Looker Studio dan alat pelaporan lainnya, seperti SAP Business Objects. Grup penampil data terenkripsi tidak dapat melihat data cleartext dari kolom terenkripsi.

Grup ini memerlukan peran BigQuery User (roles/bigquery.jobUser) dalam project Data. Grup ini juga memerlukan Masked Reader (roles/bigquerydatapolicy.maskedReader) di tingkat kebijakan data.

Grup pembaca teks biasa

Grup pembaca Plaintext memiliki izin yang diperlukan untuk memanggil fungsi yang ditentukan pengguna (UDF) dekripsi untuk melihat data teks biasa dan izin tambahan untuk membaca data yang tidak disamarkan. Grup ini memerlukan peran dalam project Data, seperti yang dijelaskan dalam tabel berikut.

Grup ini memerlukan peran berikut dalam project Data:

Selain itu, grup ini memerlukan peran Fine-Grained Reader (roles/datacatalog.categoryFineGrainedReader) di tingkat Data Catalog.

Grup data engineer

Data engineer menyiapkan dan memelihara pipeline dan warehouse data. Grup ini memerlukan peran dalam berbagai project, sebagaimana dijelaskan dalam tabel berikut.

Cakupan tugas Peran
Project penyerapan data
Project data
  • BigQuery Data Editor (roles/bigquery.dataeditor)
  • BigQuery Job User (roles/bigquery.jobUser)
  • Cloud Build Editor (roles/cloudbuild.builds.editor)
  • Cloud KMS Viewer (roles/cloudkms.viewer)
  • Compute Network User (roles/compute.networkuser)
  • Dataflow Admin (roles/dataflow.admin)
  • DLP Administrator (roles/dlp.admin)
  • Logs Viewer (roles/logging.viewer)

Grup administrator jaringan

Administrator jaringan mengonfigurasi jaringan. Biasanya, mereka adalah anggota tim jaringan.

Administrator jaringan memerlukan peran berikut pada tingkat organisasi:

  • Compute Admin (roles/compute.networkAdmin)
  • Logs Viewer (roles/logging.viewer)

Grup administrator keamanan

Administrator keamanan mengelola kontrol keamanan seperti akses, kunci, aturan firewall, Kontrol Layanan VPC, dan Security Command Center.

Administrator keamanan memerlukan peran berikut pada tingkat organisasi:

Grup analis keamanan

Analis keamanan memantau dan merespons insiden keamanan dan temuan Cloud DLP.

Analis keamanan memerlukan peran berikut di tingkat organisasi:

Contoh alur akses grup

Bagian berikut menjelaskan alur akses untuk dua grup dalam solusi data warehouse yang aman.

Alur akses untuk Grup penampil data terenkripsi

Diagram berikut menunjukkan apa yang terjadi saat pengguna dari Grup penampil data terenkripsi mencoba mengakses data terenkripsi di BigQuery.

Alur untuk grup penampil data terenkripsi.

Langkah-langkah untuk mengakses data di BigQuery adalah sebagai berikut:

  1. Penampil data terenkripsi menjalankan kueri berikut di BigQuery untuk mengakses data rahasia:

    SELECT ssn, pan FROM cc_card_table
    
  2. BigQuery memverifikasi akses sebagai berikut:

    • Pengguna diautentikasi menggunakan kredensial Google Cloud yang valid dan belum habis masa berlakunya.
    • Identitas pengguna dan alamat IP tempat permintaan berasal adalah bagian dari daftar yang diizinkan dalam aturan Tingkat Akses/Ingress di perimeter Kontrol Layanan VPC.
    • IAM memverifikasi bahwa pengguna memiliki peran yang sesuai dan diberi otorisasi untuk mengakses kolom terenkripsi yang dipilih pada tabel BigQuery.

BigQuery menampilkan data rahasia dalam format terenkripsi.

Alur akses untuk grup pembaca Plaintext

Diagram berikut menunjukkan apa yang terjadi saat pengguna dari grup pembaca teks polos mencoba mengakses data terenkripsi di BigQuery.

Alur untuk grup pembaca teks polos.

Langkah-langkah untuk mengakses data di BigQuery adalah sebagai berikut:

  1. Pembaca Plaintext mengeksekusi kueri berikut di BigQuery untuk mengakses data rahasia dalam format yang didekripsi:

    SELECT decrypt_ssn(ssn) FROM cc_card_table
    
  2. BigQuery memanggil fungsi yang ditentukan pengguna (UDF) dekripsi dalam kueri untuk mengakses kolom yang dilindungi.

  3. Akses diverifikasi sebagai berikut:

    • IAM memverifikasi bahwa pengguna memiliki peran yang sesuai dan diberi otorisasi untuk mengakses UDF dekripsi di BigQuery.
    • UDF mengambil kunci enkripsi data (DEK) gabungan yang digunakan untuk melindungi kolom data sensitif.

    UDF dekripsi memanggil kunci enkripsi kunci (KEK) di Cloud HSM untuk membuka DEK. UDF dekripsi menggunakan fungsi dekripsi AEAD BigQuery untuk mendekripsi kolom data sensitif.

  4. Pengguna diberi akses ke data teks biasa di kolom data sensitif.

Memahami kontrol keamanan yang Anda perlukan

Bagian ini membahas kontrol keamanan dalam Google Cloud yang Anda gunakan untuk membantu mengamankan data warehouse. Prinsip keamanan utama yang perlu dipertimbangkan adalah sebagai berikut:

  • Amankan akses dengan menerapkan prinsip hak istimewa terendah.
  • Amankan koneksi jaringan melalui desain dan kebijakan segmentasi.
  • Amankan konfigurasi untuk setiap layanan.
  • Mengklasifikasikan dan melindungi data berdasarkan tingkat risikonya.
  • Memahami persyaratan keamanan untuk lingkungan yang menghosting data warehouse.
  • Konfigurasikan pemantauan dan logging yang memadai untuk deteksi, investigasi, dan respons.

Kontrol keamanan untuk penyerapan data

Untuk membuat data warehouse, Anda harus mentransfer data dari sumber lain di lingkungan lokal Anda, cloud lain, atau sumber Google Cloud lainnya. Dokumen ini berfokus pada transfer data dari lingkungan lokal Anda atau cloud lain; jika Anda mentransfer data dari sumber Google Cloud lain, lihat Mengimpor data dari Google Cloud ke data warehouse BigQuery yang aman.

Anda dapat menggunakan salah satu opsi berikut ini untuk mentransfer data ke data warehouse di BigQuery:

  • Tugas batch yang memuat data ke bucket Cloud Storage.
  • Tugas streaming yang menggunakan Pub/Sub.

Untuk membantu melindungi data selama penyerapan, Anda dapat menggunakan enkripsi sisi klien, aturan firewall, dan kebijakan tingkat akses. Proses penyerapan terkadang disebut sebagai proses ekstrak, transformasi, pemuatan (ETL).

Koneksi terenkripsi ke Google Cloud

Anda dapat menggunakan Cloud VPN atau Cloud Interconnect untuk melindungi semua data yang mengalir antara Google Cloud dan lingkungan Anda. Cetak biru ini merekomendasikan Interkoneksi Khusus, karena menyediakan koneksi langsung dan throughput tinggi, yang penting jika Anda melakukan streaming banyak data.

Untuk mengizinkan akses ke Google Cloud dari lingkungan Anda, Anda harus menentukan alamat IP yang diizinkan pada aturan kebijakan tingkat akses.

Aturan jaringan dan firewall

Aturan firewall Virtual Private Cloud (VPC) mengontrol aliran data ke dalam perimeter. Anda membuat aturan firewall yang menolak semua traffic keluar, kecuali untuk koneksi port 443 TCP tertentu dari nama domain khusus restricted.googleapis.com. Domain restricted.googleapis.com memiliki manfaat berikut:

  • Hal ini membantu mengurangi permukaan serangan jaringan Anda dengan menggunakan Akses Google Pribadi saat beban kerja berkomunikasi dengan layanan dan API Google.
  • Solusi ini memastikan bahwa Anda hanya menggunakan layanan yang mendukung Kontrol Layanan VPC.

Untuk informasi selengkapnya, lihat Mengonfigurasi Akses Google Pribadi.

Pipeline data mengharuskan Anda membuka port TCP di firewall, seperti yang ditentukan dalamdataflow_firewall.tf file di modul project harness repositori. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi aturan akses internet dan firewall.

Untuk menolak kemampuan resource dalam menggunakan alamat IP eksternal, kebijakan organisasi Menentukan IP eksternal yang diizinkan untuk instance VM (compute.vmExternalIpAccess) disetel untuk menolak semua.

Kontrol perimeter

Seperti yang ditunjukkan dalam diagram arsitektur, Anda menempatkan resource untuk data warehouse ke dalam perimeter yang terpisah. Agar layanan di berbagai perimeter dapat berbagi data, Anda harus membuat perimeter.

Jembatan perimeter memungkinkan layanan yang dilindungi membuat permintaan untuk resource di luar perimeternya. Jembatan ini membuat koneksi berikut:

  • Komponen tersebut menghubungkan project penyerapan Data ke project Data sehingga data dapat diserap ke BigQuery.
  • Mereka menghubungkan project Data ke project Tata kelola data sehingga Cloud DLP dapat memindai BigQuery untuk menemukan data rahasia yang tidak dilindungi.
  • Mereka menghubungkan project Penyerapan data ke project Tata kelola data untuk mengakses kunci logging, pemantauan, dan enkripsi.

Selain jembatan perimeter, Anda juga menggunakan aturan keluar agar resource yang dilindungi oleh perimeter dapat mengakses resource yang berada di luar perimeter. Dalam solusi ini, Anda mengonfigurasi aturan egress untuk mendapatkan tugas Template Dataflow Flex eksternal yang berada di Cloud Storage dalam project eksternal. Untuk mengetahui informasi selengkapnya, lihat Mengakses resource Google Cloud di luar perimeter.

Kebijakan akses

Untuk membantu memastikan bahwa hanya identitas tertentu (pengguna atau layanan) yang dapat mengakses resource dan data, Anda harus mengaktifkan grup dan peran IAM.

Untuk membantu memastikan bahwa hanya sumber tertentu yang dapat mengakses project Anda, aktifkan kebijakan akses untuk organisasi Google Anda. Sebaiknya Anda membuat kebijakan akses yang menentukan rentang alamat IP yang diizinkan untuk permintaan yang berasal dari lingkungan lokal Anda dan hanya mengizinkan permintaan dari pengguna atau akun layanan tertentu. Untuk informasi selengkapnya, lihat Atribut tingkat akses.

Enkripsi sisi klien

Sebelum memindahkan data sensitif ke Google Cloud, enkripsi data secara lokal untuk membantu melindunginya dalam penyimpanan dan dalam pengiriman. Anda dapat menggunakan library enkripsi Tink, atau menggunakan library enkripsi lainnya. Library enkripsi Tink kompatibel dengan enkripsi AEAD BigQuery, yang digunakan oleh cetak biru untuk mendekripsi data terenkripsi tingkat kolom setelah data diimpor.

Library enkripsi Tink menggunakan DEK yang dapat Anda buat secara lokal atau dari Cloud HSM. Untuk menggabungkan atau melindungi DEK, Anda dapat menggunakan KEK yang dihasilkan di Cloud HSM. KEK adalah keyset enkripsi CMEK simetris yang disimpan secara aman di Cloud HSM dan dikelola menggunakan peran serta izin IAM.

Selama penyerapan, DEK yang digabungkan dan datanya disimpan di BigQuery. BigQuery mencakup dua tabel: satu untuk data dan satu lagi untuk DEK yang digabungkan. Saat analis perlu melihat data rahasia, BigQuery dapat menggunakan dekripsi AEAD untuk membuka DEK dengan KEK dan mendekripsi kolom yang dilindungi.

Selain itu, enkripsi sisi klien yang menggunakan Tink melindungi data Anda lebih lanjut dengan mengenkripsi kolom data sensitif di BigQuery. Cetak biru ini menggunakan kunci enkripsi Cloud HSM berikut:

  • Kunci CMEK untuk proses penyerapan yang juga digunakan oleh Pub/Sub, pipeline Dataflow untuk streaming, upload batch Cloud Storage, dan artefak Cloud Functions untuk upload batch berikutnya.
  • Kunci kriptografis yang digabungkan oleh Cloud HSM untuk data yang dienkripsi di jaringan Anda menggunakan Tink.
  • Kunci CMEK untuk warehouse BigQuery dalam project Data.

Anda menentukan lokasi CMEK, yang menentukan lokasi geografis tempat kunci disimpan dan tersedia untuk diakses. Anda harus memastikan bahwa CMEK berada di lokasi yang sama dengan resource Anda. Secara default, CMEK dirotasi setiap 30 hari.

Jika kewajiban kepatuhan organisasi mengharuskan Anda mengelola kunci sendiri secara eksternal dari Google Cloud, Anda dapat mengaktifkan Cloud External Key Manager. Jika menggunakan kunci eksternal, Anda bertanggung jawab atas aktivitas pengelolaan kunci, termasuk rotasi kunci.

Akun layanan dan kontrol akses

Akun layanan adalah identitas yang dapat digunakan Google Cloud untuk menjalankan permintaan API atas nama Anda. Akun layanan memastikan bahwa identitas pengguna tidak memiliki akses langsung ke layanan. Untuk mengizinkan pemisahan tugas, Anda membuat akun layanan dengan peran yang berbeda untuk tujuan tertentu. Akun layanan ini ditentukan dalam modul penyerapan data dan modul tata kelola data.

Akun layanan adalah sebagai berikut:

  • Akun layanan Cloud Storage menjalankan proses upload data batch otomatis ke bucket penyimpanan penyerapan.
  • Akun layanan Pub/Sub memungkinkan streaming data ke layanan Pub/Sub.
  • Akun layanan pengontrol Dataflow digunakan oleh pipeline Dataflow untuk mengubah dan menulis data dari Pub/Sub ke BigQuery.
  • Akun layanan Cloud Functions menulis data batch berikutnya yang diupload dari Cloud Storage ke BigQuery.
  • Akun layanan Storage Upload memungkinkan pipeline ETL membuat objek.
  • Akun layanan Pub/Sub Write memungkinkan pipeline ETL menulis data ke Pub/Sub.

Tabel berikut mencantumkan peran yang ditetapkan ke setiap akun layanan:

Nama Peran Cakupan tugas
Akun layanan pengontrol Dataflow Project penyerapan data
Project data
Tata kelola data
Akun layanan Cloud Functions Project penyerapan data
  • BigQuery Data Editor (roles/bigquery.dataEditor)
  • BigQuery Metadata Viewer (roles/bigquery.metadataViewer)
Project data
Akun layanan Upload Penyimpanan Project penyerapan data
Akun layanan Pub/Sub Write Project penyerapan data

Kontrol keamanan untuk penyimpanan data

Anda mengonfigurasi kontrol keamanan berikut untuk membantu melindungi data di BigQuery warehouse:

  • Kontrol akses tingkat kolom
  • Akun layanan dengan peran terbatas
  • Penyamaran data dinamis untuk kolom sensitif
  • Kebijakan organisasi
  • Pemindaian otomatis Cloud DLP dan profiler data
  • Perimeter Kontrol Layanan VPC antara project Penyerapan data dan project Data, dengan perimeter yang sesuai
  • Enkripsi dan pengelolaan kunci, sebagai berikut:
    • Enkripsi dalam penyimpanan dengan kunci CMEK yang disimpan di Cloud HSM
    • Enkripsi tingkat kolom menggunakan Tink dan BigQuery AEAD Encryption

Penyamaran data dinamis

Untuk membantu berbagi dan menerapkan kebijakan akses data dalam skala besar, Anda dapat mengonfigurasi data masking dinamis. Data masking dinamis memungkinkan kueri yang ada secara otomatis menyamarkan data kolom menggunakan kriteria berikut:

  • Aturan penyamaran yang diterapkan pada kolom saat runtime kueri.
  • Peran yang ditetapkan kepada pengguna yang menjalankan kueri. Untuk mengakses data kolom yang tidak disamarkan, analis data harus memiliki peran Fine-Grained Reader.

Untuk menentukan akses untuk kolom di BigQuery, Anda harus membuat tag kebijakan. Misalnya, taksonomi yang dibuat dalam contoh mandiri akan membuat tag kebijakan 1_Sensitive untuk kolom yang berisi data yang tidak dapat dipublikasikan, seperti batas kredit singkat ini. Aturan data masking default diterapkan pada kolom ini untuk menyembunyikan nilai kolom.

Apa pun yang tidak diberi tag akan tersedia bagi semua pengguna yang memiliki akses ke data warehouse. Kontrol akses ini memastikan bahwa, bahkan setelah data ditulis ke BigQuery, data di kolom sensitif tetap tidak dapat dibaca hingga akses diberikan secara eksplisit kepada pengguna.

Enkripsi dan dekripsi tingkat kolom

Enkripsi tingkat kolom memungkinkan Anda mengenkripsi data di BigQuery pada tingkat yang lebih terperinci. Daripada mengenkripsi seluruh tabel, Anda memilih kolom yang berisi data sensitif dalam BigQuery, dan hanya kolom tersebut yang dienkripsi. BigQuery menggunakan fungsi enkripsi dan dekripsi AEAD yang membuat keyset yang berisi kunci untuk enkripsi dan dekripsi. Kunci ini kemudian digunakan untuk mengenkripsi dan mendekripsi nilai individual dalam tabel, serta merotasi kunci dalam keyset. Enkripsi tingkat kolom memberikan kontrol akses ganda pada data terenkripsi di BigQuery, karena pengguna harus memiliki izin ke tabel dan kunci enkripsi untuk membaca data dalam cleartext.

Data profiler untuk BigQuery dengan Cloud DLP

Data profiler memungkinkan Anda mengidentifikasi lokasi data yang sensitif dan berisiko tinggi di tabel BigQuery. Data profiler secara otomatis memindai dan menganalisis semua tabel dan kolom BigQuery di seluruh organisasi, termasuk semua folder dan project. Data profiler kemudian menghasilkan metrik seperti infoTypes yang diprediksi, risiko data yang dinilai dan tingkat sensitivitas, serta metadata tentang tabel Anda. Dengan menggunakan insight, data, laporan, analisis ini, Anda dapat membuat keputusan yang tepat tentang cara Anda melindungi, membagikan, dan menggunakan data Anda.

Akun layanan dengan peran terbatas

Anda harus membatasi akses ke project Data agar hanya pengguna yang diberi otorisasi yang dapat melihat kolom data sensitif. Untuk melakukannya, buat akun layanan dengan peran roles/iam.serviceAccountUser yang harus ditiru identitasnya oleh pengguna resmi. Peniruan identitas akun layanan membantu pengguna menggunakan akun layanan tanpa mendownload kunci akun layanan, sehingga meningkatkan keamanan project Anda secara keseluruhan. Peniruan identitas membuat token jangka pendek yang mengizinkan pengguna yang memiliki peran roles/iam.serviceAccountTokenCreator untuk mendownload.

Kebijakan organisasi

Blueprint ini mencakup batasan kebijakan organisasi yang digunakan oleh blueprint yayasan perusahaan dan menambahkan batasan tambahan. Untuk informasi selengkapnya tentang batasan yang digunakan blueprint fondasi perusahaan, lihat Batasan kebijakan organisasi.

Tabel berikut menjelaskan batasan kebijakan organisasi tambahan yang ditentukan dalam modul kebijakan organisasi.

Kebijakan Nama Batasan Nilai yang direkomendasikan
Membatasi deployment resource ke lokasi fisik tertentu gcp.resourceLocations Salah satu dari berikut ini:
in:us-locations
in:eu-locations
in:asia-locations
Mewajibkan perlindungan CMEK gcp.restrictNonCmekServices bigquery.googleapis.com
Menonaktifkan pembuatan akun layanan iam.disableServiceAccountCreation true
Menonaktifkan pembuatan kunci akun layanan disableServiceAccountKeyCreation true
Aktifkan Login OS untuk VM yang dibuat di project compute.requireOsLogin true
Menonaktifkan pemberian peran otomatis ke akun layanan default automaticIamGrantsForDefaultServiceAccounts true
Setelan ingress yang diizinkan (Cloud Functions) cloudfunctions.allowedIngressSettings ALLOW_INTERNAL_AND_GCLB
Membatasi aturan penerusan baru menjadi khusus internal, berdasarkan alamat IP compute.restrictProtocolForwardingCreationForTypes INTERNAL
Nonaktifkan logging output port serial ke Cloud Logging compute.disableSerialPortLogging true
Tentukan kumpulan subjaringan VPC bersama yang dapat digunakan oleh resource Compute Engine compute.restrictSharedVpcSubnetworks projects/PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK-NAME

Ganti SUBNETWORK-NAME dengan ID resource subnet pribadi yang ingin Anda gunakan dengan cetak biru.

Kontrol operasional

Anda dapat mengaktifkan logging dan fitur tingkat Premium Security Command Center Premium seperti Analisis Kondisi Keamanan dan Deteksi Ancaman Peristiwa. Kontrol ini membantu Anda melakukan hal berikut:

  • Pantau siapa yang mengakses data Anda.
  • Memastikan bahwa audit yang tepat dilakukan.
  • Buat temuan untuk resource cloud yang salah dikonfigurasi.
  • Mendukung kemampuan tim manajemen dan operasi insiden Anda untuk merespons masalah yang mungkin terjadi.

Transparansi Akses

Transparansi Akses memberikan notifikasi real-time jika Staf dukungan Google memerlukan akses ke data Anda. Log Transparansi Akses dibuat setiap kali ada orang yang mengakses konten, dan hanya personel Google yang memiliki justifikasi bisnis yang valid (misalnya, kasus dukungan) yang dapat memperoleh akses. Sebaiknya Anda mengaktifkan Transparansi Akses.

Logging

Untuk membantu memenuhi persyaratan audit dan mendapatkan insight tentang project Anda, konfigurasikan Kemampuan Observasi Google Cloud dengan log data untuk layanan yang ingin Anda lacak. Modul logging harness mengonfigurasi praktik terbaik berikut:

  • Membuat sink log gabungan di semua project.
  • Menyimpan log Anda di region yang sesuai.
  • Menambahkan kunci CMEK ke sink logging Anda.

Untuk semua layanan dalam project, log Anda harus menyertakan informasi tentang pembacaan dan penulisan data, serta informasi tentang yang dibaca administrator. Untuk praktik terbaik logging tambahan, lihat Kontrol detektif dalam blueprint Enterprise Foundation.

Peringatan dan pemantauan

Setelah men-deploy blueprint tersebut, Anda dapat menyiapkan pemberitahuan untuk memberi tahu pusat operasi keamanan (SOC) bahwa mungkin terjadi insiden keamanan. Misalnya, Anda dapat menggunakan pemberitahuan untuk memberi tahu analis keamanan ketika izin IAM telah berubah. Untuk informasi selengkapnya tentang mengonfigurasi pemberitahuan Security Command Center, lihat Menyiapkan notifikasi temuan. Untuk pemberitahuan tambahan yang tidak dipublikasikan oleh Security Command Center, Anda dapat menyiapkan pemberitahuan dengan Cloud Monitoring.

Pertimbangan keamanan lainnya

Selain kontrol keamanan yang dijelaskan dalam solusi ini, Anda harus meninjau serta mengelola keamanan dan risiko di area utama yang tumpang-tindih dan berinteraksi dengan penggunaan solusi ini oleh Anda. Pertimbangan keamanan ini mencakup hal berikut:

  • Keamanan kode yang Anda gunakan untuk mengonfigurasi, men-deploy, dan menjalankan tugas Dataflow dan Cloud Functions.
  • Taksonomi klasifikasi data yang Anda gunakan dengan solusi ini.
  • Pembuatan dan pengelolaan kunci enkripsi.
  • Konten, kualitas, dan keamanan {i>dataset<i} yang Anda simpan dan analisis di data warehouse.
  • Keseluruhan lingkungan tempat Anda men-deploy solusi, termasuk hal berikut:
    • Desain, segmentasi, dan keamanan jaringan yang Anda sambungkan ke solusi ini.
    • Keamanan dan tata kelola kontrol IAM organisasi Anda.
    • Setelan autentikasi dan otorisasi untuk pelaku yang Anda beri akses ke infrastruktur yang merupakan bagian dari solusi ini, dan siapa yang memiliki akses ke data yang disimpan dan dikelola dalam infrastruktur tersebut.

Menyatukan semuanya

Untuk mengimplementasikan arsitektur yang dijelaskan dalam dokumen ini, lakukan hal berikut:

  1. Tentukan apakah Anda akan men-deploy blueprint dengan blueprint Enterprise Foundation atau dengan sendirinya. Jika Anda memilih untuk tidak men-deploy blueprint fondasi perusahaan, pastikan lingkungan Anda memiliki dasar pengukuran keamanan yang serupa.
  2. Siapkan koneksi Interkoneksi Khusus dengan jaringan Anda.
  3. Tinjau README untuk cetak biru dan pastikan Anda memenuhi semua prasyarat.
  4. Pastikan identitas pengguna Anda memiliki peran iam.serviceAccountUser dan iam.serviceAccountTokenCreator untuk folder pengembangan organisasi, seperti yang dijelaskan dalam Struktur organisasi. Jika Anda tidak memiliki folder yang digunakan untuk pengujian, buat folder dan konfigurasikan akses.
  5. Catat ID akun penagihan Anda, nama tampilan organisasi, ID folder untuk folder pengujian atau demo Anda, dan alamat email untuk grup pengguna berikut:
    • Analis data
    • Penampil data terenkripsi
    • Pembaca teks polos
    • Engineer data
    • Administrator jaringan
    • Administrator keamanan
    • Analis keamanan
  6. Membuat project Data, Tata kelola data, Penyerapan data, dan template Fleksi. Untuk mengetahui daftar API yang harus Anda aktifkan, lihat README.
  7. Buat akun layanan untuk Terraform dan tetapkan peran yang sesuai untuk semua project.
  8. Siapkan Kebijakan Kontrol Akses.
  9. Di lingkungan pengujian Anda, deploy solusi:

    1. Clone dan jalankan skrip Terraform untuk menyiapkan lingkungan di Google Cloud.
    2. Instal library enkripsi Tink di jaringan Anda.
    3. Siapkan Kredensial Default Aplikasi agar Anda dapat menjalankan library Tink di jaringan.
    4. Buat kunci enkripsi dengan Cloud KMS.
    5. Buat keyset terenkripsi dengan Tink.
    6. Enkripsi data dengan Tink menggunakan salah satu metode berikut:

    7. Mengupload data terenkripsi ke BigQuery menggunakan streaming atau upload banyak.

  10. Pastikan pengguna yang diotorisasi dapat membaca data yang tidak dienkripsi dari BigQuery menggunakan fungsi dekripsi AEAD BigQuery. Misalnya, jalankan fungsi create dekripsi berikut:

    CREATE OR REPLACE FUNCTION `{project_id}.{bigquery_dataset}.decrypt`(encodedText STRING) RETURNS STRING AS
    (
    AEAD.DECRYPT_STRING(
    KEYS.KEYSET_CHAIN('gcp-kms://projects/myProject/locations/us/keyRings/myKeyRing/cryptoKeys/myKeyName', b'\012\044\000\321\054\306\036\026…..'),
    FROM_BASE64(encodedText), "")
    );
    

    Jalankan kueri create view:

    CREATE OR REPLACE VIEW `{project_id}.{bigquery_dataset}.decryption_view` AS
    
    SELECT
     Card_Type_Code,
     Issuing_Bank,
     Card_Number,
     `bigquery_dataset.decrypt`(Card_Number) AS Card_Number_Decrypted
    FROM `project_id.dataset.table_name`
    

    Jalankan kueri pilih dari tampilan:

    SELECT
      Card_Type_Code,
      Issuing_Bank,
      Card_Number,
      Card_Number_Decrypted
    FROM
    `{project_id}.{bigquery_dataset}.decrypted_view`
    

    Untuk kueri dan kasus penggunaan lainnya, lihat Enkripsi tingkat kolom dengan Cloud KMS.

  11. Gunakan Security Command Center untuk memindai project yang baru dibuat berdasarkan persyaratan kepatuhan Anda.

  12. Deploy cetak biru tersebut ke lingkungan produksi Anda.

Langkah selanjutnya