Banyak organisasi men-deploy data warehouse yang menyimpan data sensitif 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. Dokumen ini merupakan bagian dari blueprint yang terdiri dari hal-hal berikut:
- Dua repositori GitHub
(
terraform-google-secured-data-warehouse
danterraform-google-secured-data-warehouse-onprem-ingest
) yang berisi 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 blueprint ini (dokumen ini).
- Panduan yang men-deploy lingkungan sampel.
Dokumen ini membahas hal-hal berikut:
- Arsitektur dan Google Cloud layanan 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 diGoogle Cloud, termasuk yang berikut:
De-identifikasi data
penanganan diferensial data rahasia
enkripsi tingkat kolom
kontrol akses tingkat kolom
Dokumen ini mengasumsikan bahwa Anda telah mengonfigurasi serangkaian kontrol keamanan dasar seperti yang dijelaskan dalam blueprint fondasi perusahaan. Layanan ini membantu Anda menambahkan kontrol tambahan ke kontrol keamanan yang ada untuk membantu melindungi data rahasia di data warehouse.
Kasus penggunaan data warehouse
Blueprint mendukung kasus penggunaan berikut:
- Gunakan repositori
terraform-google-secured-data-warehouse
untuk mengimpor data dari Google Cloud ke data warehouse BigQuery - Gunakan repositori
terraform-google-secured-data-warehouse-onprem-ingest
untuk mengimpor data dari lingkungan lokal atau cloud lain ke dalam data warehouse BigQuery
Ringkasan
Dengan data warehouse seperti BigQuery, bisnis dapat menganalisis data bisnis untuk mendapatkan insight. Analis mengakses data bisnis yang disimpan di data warehouse untuk mendapatkan insight. Jika data warehouse Anda menyertakan data rahasia, Anda harus mengambil langkah untuk menjaga keamanan, kerahasiaan, integritas, dan ketersediaan data bisnis saat disimpan, saat dalam pengiriman, atau saat sedang dianalisis. Dalam blueprint ini, Anda akan melakukan hal berikut:
- Saat mengimpor data dari sumber data eksternal, enkripsi data Anda yang terletak di luar Google Cloud (misalnya, di lingkungan lokal) dan impor ke Google Cloud.
- Konfigurasi kontrol yang membantu mengamankan akses ke data rahasia.
- Konfigurasi kontrol yang membantu mengamankan pipeline data.
- Konfigurasi pemisahan tugas yang sesuai untuk berbagai persona.
- Saat mengimpor data dari sumber lain yang berada di Google Cloud (juga dikenal sebagai sumber data internal), siapkan template untuk menemukan dan melakukan de-identifikasi data rahasia.
- 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.
Arsitektur saat mengimpor data dari Google Cloud
Gambar berikut menunjukkan cara data yang diserap dikategorikan, dide-identifikasi, dan
disimpan saat Anda mengimpor data sumber dari Google Cloud menggunakan
repositori terraform-google-secured-data-warehouse
. Laporan ini juga menunjukkan cara
mengidentifikasi ulang data rahasia on demand untuk analisis.
Arsitektur saat mengimpor data dari sumber eksternal
Gambar berikut menunjukkan cara data diserap dan disimpan saat Anda mengimpor data
dari lingkungan lokal atau cloud lain ke dalam BigQuery
warehouse menggunakan repositori terraform-google-secured-data-warehouse-onprem-ingest
.
Layanan dan fiturGoogle Cloud
Arsitektur ini menggunakan kombinasi layanan dan fitur Google Cloud berikut:
Layanan atau fitur | Deskripsi |
---|---|
Berlaku untuk sumber data internal dan eksternal. Namun, ada opsi penyimpanan yang berbeda, sebagai berikut:
BigQuery menggunakan berbagai kontrol keamanan untuk membantu melindungi konten, termasuk kontrol akses, keamanan tingkat kolom untuk data rahasia, dan enkripsi data. |
|
Cloud Key Management Service (Cloud KMS) dengan Cloud HSM |
Berlaku untuk sumber internal dan eksternal. Namun, ada kasus penggunaan tambahan untuk sumber data eksternal. Cloud HSM adalah layanan modul keamanan hardware (HSM) berbasis cloud yang menghosting kunci enkripsi kunci (KEK). Saat mengimpor data dari sumber eksternal, Anda menggunakan Cloud HSM untuk membuat kunci enkripsi yang digunakan untuk mengenkripsi data di jaringan Anda sebelum mengirimkannya ke Google Cloud. |
Berlaku untuk sumber internal dan eksternal. Cloud Logging mengumpulkan semua log dari layanan Google Cloud untuk disimpan dan diambil oleh alat analisis dan investigasi Anda. |
|
Berlaku untuk sumber internal dan eksternal. Cloud Monitoring mengumpulkan dan menyimpan informasi performa dan metrik tentang layanan Google Cloud . |
|
Berlaku hanya untuk sumber data eksternal. Fungsi Cloud Run dipicu oleh Cloud Storage dan menulis data yang diupload Cloud Storage ke bucket penyerapan ke BigQuery. |
|
Cloud Storage dan Pub/Sub |
Berlaku untuk sumber internal dan eksternal. Cloud Storage dan Pub/Sub menerima data sebagai berikut:
|
Berlaku untuk sumber internal dan eksternal. Data Profiler untuk BigQuery secara otomatis memindai data sensitif di semua tabel dan kolom BigQuery di seluruh organisasi, termasuk semua folder dan project. |
|
Pipeline Dataflow |
Berlaku untuk sumber internal dan eksternal; namun, ada pipeline yang berbeda. Pipeline Dataflow mengimpor data, sebagai berikut:
|
Berlaku untuk sumber internal dan eksternal. Katalog Universal Dataplex secara otomatis mengategorikan data rahasia dengan metadata, yang juga dikenal sebagai tag kebijakan, selama penyerapan. Katalog Universal Dataplex juga menggunakan metadata untuk mengelola akses ke data rahasia. Untuk mengontrol akses ke data dalam data warehouse, Anda menerapkan tag kebijakan ke kolom yang menyertakan data rahasia. |
|
Berlaku hanya untuk sumber data eksternal. 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. |
|
IAM dan Resource Manager |
Berlaku untuk sumber internal dan eksternal. Identity and Access Management (IAM) dan Resource Manager membatasi akses dan mengelompokkan resource. Kontrol akses dan hierarki resource mengikuti prinsip hak istimewa terendah. |
Berlaku untuk sumber internal dan eksternal. Security Command Center memantau dan meninjau temuan keamanan dari seluruh lingkungan Google Cloud Anda di satu lokasi terpusat. |
|
Berlaku untuk sumber internal dan eksternal; namun, pemindaian yang berbeda akan terjadi. Sensitive Data Protection memindai data, sebagai berikut:
|
|
Berlaku untuk sumber internal dan eksternal; namun, ada perimeter yang berbeda. Kontrol Layanan VPC membuat perimeter keamanan yang mengisolasi layanan dan resource dengan menyiapkan otorisasi, kontrol akses, dan pertukaran data yang aman. Perimeter adalah sebagai berikut:
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. |
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. Anda men-deploy sebagian besar project dalam arsitektur ke folder produksi, dan project tata kelola data di folder umum yang digunakan untuk tata kelola.
Struktur organisasi saat mengimpor data dari Google Cloud
Diagram berikut menunjukkan struktur organisasi saat mengimpor data dari
Google Cloud menggunakan repositori terraform-google-secured-data-warehouse
.
Struktur organisasi saat mengimpor data dari sumber eksternal
Diagram berikut menunjukkan struktur organisasi saat mengimpor data dari
sumber eksternal menggunakan
repositori terraform-google-secured-data-warehouse-onprem-ingest
.
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 fondasi perusahaan yang digunakan oleh arsitektur ini.
Folder | Deskripsi |
---|---|
Bootstrap |
Berisi resource yang diperlukan untuk men-deploy blueprint foundation 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 arsitektur ini, folder Produksi berisi project Penyerapan data dan project terkait data. |
Non-produksi |
Berisi project yang memiliki resource cloud yang sedang diuji dan direncanakan untuk dirilis. Dalam arsitektur ini, folder Non-produksi berisi project Penyerapan data dan project terkait data. |
Pengembangan |
Berisi project yang memiliki resource cloud yang sedang dikembangkan. Dalam arsitektur ini, folder Pengembangan berisi project Penyerapan data dan project terkait 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 cetak biru fondasi perusahaan.
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 |
Project umum untuk sumber internal dan eksternal. Berisi layanan yang diperlukan untuk menerima data dan melakukan de-identifikasi data rahasia. |
Tata kelola data |
Project umum untuk sumber internal dan eksternal. Berisi layanan yang menyediakan kemampuan pengelolaan kunci, logging, dan katalog data. |
Data tidak rahasia |
Project hanya untuk sumber internal. Berisi layanan yang diperlukan untuk menyimpan data yang telah dide-identifikasi. |
Data rahasia |
Project hanya untuk sumber internal. Berisi layanan yang diperlukan untuk menyimpan dan mengidentifikasi ulang data rahasia. |
Data |
Proyek hanya untuk sumber eksternal. 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 arsitektur 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 menganalisis data di gudang. Di repositori
terraform-google-secured-data-warehouse-onprem-ingest
, grup ini dapat
melihat data setelah dimuat ke data warehouse dan melakukan operasi
yang sama seperti grup
Penampil data terenkripsi.
Tabel berikut menjelaskan peran grup dalam berbagai project untuk repositori terraform-google-secured-data-warehouse
(khusus sumber data internal).
Pemetaan proyek | Peran |
---|---|
Penyerapan data |
Peran tambahan untuk analis data yang memerlukan akses ke data rahasia: |
Data rahasia |
|
Data tidak rahasia |
Tabel berikut menjelaskan peran grup dalam berbagai project untuk repositori terraform-google-secured-data-warehouse-onprem-ingest
(khusus sumber data eksternal).
Cakupan tugas | Peran |
---|---|
Project penyerapan data |
|
Project data |
|
Tingkat kebijakan data |
Pembaca
yang Disematkan ( |
Grup penampil data terenkripsi (khusus sumber eksternal)
Grup Encrypted data viewer di repositori terraform-google-secured-data-warehouse-onprem-ingest
dapat melihat data terenkripsi dari tabel pelaporan BigQuery melalui 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 peran Masked Reader
(roles/bigquerydatapolicy.maskedReader
)
di tingkat kebijakan data.
Grup pembaca teks biasa (khusus sumber eksternal)
Grup pembaca Plaintext di repositori terraform-google-secured-data-warehouse-onprem-ingest
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 berikut dalam project Data:
- Pengguna BigQuery (
roles/bigquery.user
) - Pengguna BigQuery (
roles/bigquery.jobUser
) - Cloud KMS Viewer (
roles/cloudkms.viewer
)
Selain itu, grup ini memerlukan peran Fine-Grained Reader
(roles/datacatalog.categoryFineGrainedReader
) di
tingkat Katalog Universal Dataplex.
Grup data engineer
Data engineer menyiapkan dan memelihara pipeline dan warehouse data.
Tabel berikut menjelaskan peran grup dalam berbagai project untuk
repositori terraform-google-secured-data-warehouse
.
Skor tugas | Peran |
---|---|
Project penyerapan data |
|
Project data rahasia |
|
Project data non-rahasia |
Tabel berikut menjelaskan peran grup dalam berbagai project untuk
repositori terraform-google-secured-data-warehouse-onprem-ingest
.
Grup administrator jaringan
Administrator jaringan mengonfigurasi jaringan. Biasanya, mereka adalah anggota tim jaringan.
Administrator jaringan memerlukan peran berikut pada tingkat organisasi:
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:
- Access Context Manager
Admin (
roles/accesscontextmanager.policyAdmin
) - Cloud Asset Viewer (
roles/cloudasset.viewer
) - Cloud KMS Admin (
roles/cloudkms.admin
) - Compute Security Admin (
roles/compute.securityAdmin
) - Data Catalog Admin (
roles/datacatalog.admin
) - DLP Administrator (
roles/dlp.admin
) - Logging Admin (
roles/logging.admin
) - Organization Administrator (
roles/orgpolicy.policyAdmin
) - Security Admin (
roles/iam.securityAdmin
)
Grup analis keamanan
Analis keamanan memantau dan merespons insiden keamanan dan temuan Perlindungan Data Sensitif.
Analis keamanan memerlukan peran berikut di tingkat organisasi:
- Access Context Manager Reader(
roles/accesscontextmanager.policyReader
) - Compute Network Viewer (
roles/compute.networkViewer
) - Data Catalog Viewer (
roles/datacatalog.viewer
) - Cloud KMS Viewer (
roles/cloudkms.viewer
) - Logs Viewer (
roles/logging.viewer
) - Organization Policy Viewer (
roles/orgpolicy.policyViewer
) - Security Center Admin Viewer (
roles/securitycenter.adminViewer
) - Security Center Findings Editor(
roles/securitycenter.findingsEditor
) - Salah satu peran Security Command Center berikut:
Contoh alur akses grup untuk sumber eksternal
Bagian berikut menjelaskan alur akses untuk dua grup saat mengimpor data
dari sumber eksternal menggunakan
repositori terraform-google-secured-data-warehouse-onprem-ingest
.
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.
Langkah-langkah untuk mengakses data di BigQuery adalah sebagai berikut:
Penampil data terenkripsi menjalankan kueri berikut di BigQuery untuk mengakses data rahasia:
SELECT ssn, pan FROM cc_card_table
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 tingkat akses atau aturan masuk 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.
Langkah-langkah untuk mengakses data di BigQuery adalah sebagai berikut:
Pembaca Plaintext mengeksekusi kueri berikut di BigQuery untuk mengakses data rahasia dalam format yang didekripsi:
SELECT decrypt_ssn(ssn) FROM cc_card_table
BigQuery memanggil fungsi yang ditentukan pengguna (UDF) dekripsi dalam kueri untuk mengakses kolom yang dilindungi.
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.
Pengguna diberi akses ke data teks biasa di kolom data sensitif.
Kontrol keamanan umum
Bagian berikut menjelaskan kontrol yang berlaku untuk sumber internal dan eksternal.
Kontrol penyerapan data
Untuk membuat data warehouse, Anda harus mentransfer data dari sumberGoogle Cloud lain (misalnya, data lake), lingkungan lokal, atau cloud lain. Anda dapat menggunakan salah satu opsi berikut untuk mentransfer data ke data warehouse di BigQuery:
- Tugas batch yang menggunakan 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).
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 TCP port 443 tertentu dari nama domain khusus restricted.googleapis.com
. Domain restricted.googleapis.com
memiliki manfaat berikut:
- Fitur ini membantu mengurangi area 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.
Saat menggunakan repositori terraform-google-secured-data-warehouse
, Anda harus mengonfigurasi subnet terpisah untuk setiap tugas Dataflow. Subnet
terpisah memastikan bahwa data yang sedang dide-identifikasi dipisahkan dengan benar dari
data yang sedang diidentifikasi ulang.
Pipeline data mengharuskan Anda membuka port TCP di firewall, seperti yang ditentukan dalam
file dataflow_firewall.tf
di repositori masing-masing. 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
) ditetapkan 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 untuk repositori terraform-google-secured-data-warehouse
:
- Solusi tersebut menghubungkan project penyerapan data ke project tata kelola sehingga de-identifikasi dapat terjadi selama penyerapan.
- Project data tersebut menghubungkan project data non-rahasia dengan project data rahasia sehingga data rahasia dapat diidentifikasi ulang saat analis data memintanya.
- Mereka menghubungkan project rahasia ke project tata kelola data sehingga identifikasi ulang dapat dilakukan ketika seorang analis data memintanya.
Jembatan ini membuat koneksi berikut untuk repositori terraform-google-secured-data-warehouse-onprem-ingest
:
- 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 Perlindungan Data Sensitif 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 layanan 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 dan hanya mengizinkan permintaan dari pengguna atau akun layanan tertentu. Untuk mengetahui informasi selengkapnya, lihat Atribut tingkat akses.
Akun layanan dan kontrol akses
Akun layanan adalah identitas yang Google Cloud dapat digunakan 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 data-ingestion
dan modul confidential-data
di setiap arsitektur.
Untuk repositori terraform-google-secured-data-warehouse
, akun layanannya adalah sebagai berikut:
- Akun layanan pengontrol Dataflow untuk pipeline Dataflow yang melakukan de-identifikasi data rahasia.
- Akun layanan pengontrol Dataflow untuk pipeline Dataflow yang mengidentifikasi ulang data rahasia.
- Akun layanan Cloud Storage untuk menyerap data dari file batch.
- Akun layanan Pub/Sub untuk menyerap data dari layanan streaming.
- Akun layanan Cloud Scheduler untuk menjalankan tugas Dataflow batch yang membuat pipeline Dataflow.
Tabel berikut mencantumkan peran yang ditetapkan untuk setiap akun layanan:
Untuk repositori terraform-google-secured-data-warehouse-onprem-ingest
, akun layanannya 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 fungsi Cloud Run 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 untuk setiap akun layanan:
Nama | Peran | Cakupan tugas |
---|---|---|
Akun layanan pengontrol Dataflow |
|
Project penyerapan data |
Project data |
||
Tata kelola data |
||
Akun layanan fungsi Cloud Run |
Project penyerapan data |
|
Project data |
||
Akun layanan Upload Penyimpanan |
Project penyerapan data |
|
Akun layanan Pub/Sub Write |
Project penyerapan data |
Kebijakan organisasi
Arsitektur ini mencakup batasan kebijakan organisasi yang digunakan oleh cetak biru fondasi perusahaan dan menambahkan batasan tambahan. Untuk mengetahui informasi selengkapnya tentang batasan yang digunakan oleh blueprint fondasi perusahaan, lihat Batasan kebijakan organisasi.
Tabel berikut menjelaskan batasan kebijakan organisasi tambahan
yang ditentukan dalam modul org_policies
untuk repositori masing-masing:
Kebijakan | Nama batasan | Nilai yang direkomendasikan |
---|---|---|
Batasi deployment resource ke lokasi fisik tertentu. Untuk nilai tambahan, lihat Grup nilai. |
|
Salah satu dari berikut ini:
|
|
|
|
|
|
|
Batasi aturan penerusan baru agar hanya bersifat internal, berdasarkan alamat IP. |
|
|
Tentukan kumpulan subnetwork VPC Bersama yang dapat digunakan resource Compute Engine. |
|
Ganti dengan ID resource subnet pribadi yang ingin Anda gunakan oleh arsitektur. |
Nonaktifkan logging output port serial ke Cloud Logging. |
|
|
Mewajibkan
perlindungan CMEK (khusus
|
|
|
Menonaktifkan pembuatan kunci akun layanan
( |
|
benar |
Aktifkan Login OS untuk VM yang dibuat di project ( |
|
benar |
Menonaktifkan
pemberian peran otomatis ke akun layanan default
( |
|
benar |
Setelan masuk yang diizinkan (fungsi Cloud Run)
( |
|
|
Kontrol keamanan untuk sumber data eksternal
Bagian berikut menjelaskan kontrol yang berlaku untuk menyerap data dari sumber eksternal.
Koneksi terenkripsi ke Google Cloud
Saat mengimpor data dari sumber eksternal, Anda dapat menggunakan Cloud VPN atau Cloud Interconnect untuk melindungi semua data yang mengalir antara Google Cloud dan lingkungan Anda. Arsitektur perusahaan ini merekomendasikan Dedicated Interconnect, 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 dalam aturan kebijakan 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 arsitektur 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 dengan aman di Cloud HSM dan dikelola menggunakan peran dan 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. Arsitektur 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 fungsi Cloud Run 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.
Penyamaran data dinamis
Untuk membantu berbagi dan menerapkan kebijakan akses data dalam skala besar, Anda dapat mengonfigurasi penyamaran data 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, buat 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. Aturan penyamaran data 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 Perlindungan Data Sensitif
Data profiler memungkinkan Anda mengidentifikasi lokasi data 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.
Kontrol keamanan untuk sumber data internal
Bagian berikut menjelaskan kontrol yang berlaku untuk menyerap data dari sumberGoogle Cloud .
Pengelolaan kunci dan enkripsi untuk penyerapan
Kedua opsi penyerapan (Cloud Storage atau Pub/Sub) menggunakan Cloud HSM untuk mengelola CMEK. Anda menggunakan kunci CMEK untuk membantu melindungi data selama penyerapan. Perlindungan Data Sensitif melindungi data Anda lebih lanjut dengan mengenkripsi data rahasia, menggunakan pendeteksi yang Anda konfigurasi.
Untuk menyerap data, gunakan kunci enkripsi berikut:
- Kunci CMEK untuk proses penyerapan yang juga digunakan oleh pipeline Dataflow dan layanan Pub/Sub.
- Kunci kriptografis yang digabungkan oleh Cloud HSM untuk proses de-identifikasi data menggunakan Perlindungan Data Sensitif.
- Dua kunci CMEK, satu untuk warehouse BigQuery di project data yang tidak bersifat rahasia, dan satu lagi untuk warehouse di project data rahasia. Untuk mengetahui informasi selengkapnya, lihat Pengelolaan kunci.
Anda dapat 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 EKM. Jika menggunakan kunci eksternal, Anda bertanggung jawab atas aktivitas pengelolaan kunci, termasuk rotasi kunci.
De-identifikasi data
Anda menggunakan Perlindungan Data Sensitif untuk melakukan de-identifikasi data terstruktur dan
tidak terstruktur selama fase penyerapan. Untuk data terstruktur, Anda menggunakan
transformasi
catatan
berdasarkan kolom untuk melakukan de-identifikasi data. Untuk contoh pendekatan ini, lihat
folder
/examples/de_identification_template/
. Contoh ini memeriksa apakah ada nomor kartu kredit dan PIN kartu pada data terstruktur. Untuk data tidak terstruktur, Anda menggunakan jenis
informasi
untuk melakukan de-identifikasi data.
Untuk melakukan de-identifikasi data yang diberi tag sebagai rahasia, Anda menggunakan Perlindungan Data Sensitif dan pipeline Dataflow untuk membuat token untuk data tersebut. Pipeline ini mengambil data dari Cloud Storage, memprosesnya, lalu mengirimkannya ke data warehouse BigQuery.
Untuk mengetahui informasi selengkapnya tentang proses de-identifikasi data, lihat tata kelola data.
Kontrol akses tingkat kolom
Untuk membantu melindungi data rahasia, Anda dapat menggunakan kontrol akses untuk kolom tertentu di BigQuery warehouse. Untuk mengakses data di kolom ini, analis data harus memiliki peran Fine-Grained Reader.
Untuk menentukan akses untuk kolom di BigQuery, buat tag kebijakan. Misalnya, file taxonomy.tf
dalam
modul contoh bigquery-confidential-data
membuat tag berikut:
- Tag kebijakan
3_Confidential
untuk kolom yang menyertakan informasi yang sangat sensitif, seperti nomor kartu kredit. Pengguna yang memiliki akses ke tag ini juga memiliki akses ke kolom yang diberi tag dengan tag kebijakan2_Private
atau1_Sensitive
. - Tag kebijakan
2_Private
untuk kolom yang menyertakan informasi identitas pribadi (PII) yang sensitif, seperti nama depan seseorang. Pengguna yang memiliki akses ke tag ini juga memiliki akses ke kolom yang diberi tag dengan tag kebijakan1_Sensitive
. Pengguna tidak memiliki akses ke kolom yang diberi tag dengan tag kebijakan3_Confidential
. - Tag kebijakan
1_Sensitive
untuk kolom yang berisi data yang tidak dapat dipublikasikan, seperti batas kredit. Pengguna yang memiliki akses ke tag ini tidak memiliki akses ke kolom yang diberi tag dengan tag kebijakan2_Private
atau3_Confidential
.
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 diidentifikasi ulang, data tetap tidak dapat dibaca hingga akses diberikan secara eksplisit kepada pengguna.
Catatan: Anda dapat menggunakan definisi default untuk menjalankan contoh. Untuk mengetahui praktik terbaik lainnya, baca Praktik terbaik untuk menggunakan tag kebijakan di BigQuery.
Akun layanan dengan peran terbatas
Anda harus membatasi akses ke project data rahasia sehingga hanya pengguna yang diberi otorisasi yang dapat melihat data rahasia. Untuk melakukannya, buat akun layanan
dengan peran Pengguna Akun Layanan (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 Service Account Token
Creator (roles/iam.serviceAccountTokenCreator
)
untuk mendownload.
Pengelolaan kunci dan enkripsi untuk penyimpanan dan identifikasi ulang
Anda mengelola kunci CMEK terpisah untuk data rahasia sehingga Anda dapat mengidentifikasi ulang data tersebut. Anda menggunakan Cloud HSM untuk melindungi kunci. Untuk mengidentifikasi ulang data Anda, gunakan kunci berikut:
- Kunci CMEK yang digunakan pipeline Dataflow untuk proses identifikasi ulang.
- Kunci kriptografis asli yang digunakan Perlindungan Data Sensitif untuk de-identifikasi data Anda.
- Kunci CMEK untuk warehouse BigQuery dalam project data rahasia.
Seperti yang disebutkan dalam Pengelolaan kunci dan enkripsi untuk penyerapan, Anda dapat menentukan lokasi CMEK dan periode rotasi. Anda dapat menggunakan Cloud EKM jika diperlukan oleh organisasi.
Operasi
Anda dapat mengaktifkan logging dan fitur tingkat Premium atau Enterprise Security Command Center seperti Security Health Analytics dan Event Threat Detection. Kontrol ini membantu Anda melakukan hal berikut:
- Pantau siapa yang mengakses data Anda.
- Memastikan bahwa audit yang tepat dilakukan.
- Membuat 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 memberi Anda notifikasi real-time saat personel 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.
Logging
Untuk membantu Anda memenuhi persyaratan audit dan mendapatkan insight tentang project, konfigurasi Google Cloud Observability dengan log data untuk layanan yang ingin Anda lacak. Modul centralized-logging
di repositori 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.
Peringatan dan pemantauan
Setelah men-deploy arsitektur, 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 dokumen ini, Anda harus meninjau serta mengelola keamanan dan risiko di area utama yang tumpang-tindih dan berinteraksi dengan penggunaan solusi ini oleh Anda. Contoh ini meliputi:
- Keamanan kode yang Anda gunakan untuk mengonfigurasi, men-deploy, dan menjalankan tugas Dataflow dan fungsi Cloud Run.
- Taksonomi klasifikasi data yang Anda gunakan dengan solusi ini.
- Pembuatan dan pengelolaan kunci enkripsi.
- Konten, kualitas, dan keamanan set data 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 hubungkan 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 yang memiliki akses ke data yang disimpan dan dikelola dalam infrastruktur tersebut.
Menyatukan semuanya
Untuk menerapkan arsitektur yang dijelaskan dalam dokumen ini, lakukan hal berikut:
- Tentukan apakah Anda akan men-deploy arsitektur dengan blueprint fondasi perusahaan atau sendiri. Jika Anda memilih untuk tidak men-deploy cetak biru fondasi perusahaan, pastikan lingkungan Anda memiliki dasar pengukuran keamanan yang serupa.
- Untuk mengimpor data dari sumber eksternal, siapkan koneksi Dedicated Interconnect dengan jaringan Anda.
- Tinjau
terraform-google-secured-data-warehouse
README atauterraform-google-secured-data-warehouse-onprem-ingest
README dan pastikan Anda memenuhi semua prasyarat. Pastikan identitas pengguna Anda memiliki peran Service Account User (
roles/iam.serviceAccountUser
) dan Service Account Token Creator Service Account Token Creator (roles/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.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
Buat project. Untuk mengetahui daftar API yang harus Anda aktifkan, lihat README.
Buat akun layanan untuk Terraform dan tetapkan peran yang sesuai untuk semua project.
Siapkan Kebijakan Kontrol Akses.
Untuk Google Cloud sumber data yang menggunakan repositori
terraform-google-secured-data-warehouse
, di lingkungan pengujian Anda, deploy panduan untuk melihat cara kerja solusi. Sebagai bagian dari proses pengujian, pertimbangkan hal berikut:- Menambahkan sampel data Anda sendiri ke dalam warehouse BigQuery.
- Bekerja samalah dengan analis data di perusahaan Anda untuk menguji akses mereka ke data rahasia, dan apakah mereka dapat berinteraksi dengan data dari BigQuery dengan cara yang diharapkan.
Untuk sumber data eksternal yang menggunakan repositori
terraform-google-secured-data-warehouse-onprem-ingest
, di lingkungan pengujian Anda, deploy solusi:- Clone dan jalankan skrip Terraform untuk menyiapkan lingkungan diGoogle Cloud.
Instal library enkripsi Tink di jaringan Anda.
Siapkan Kredensial Default Aplikasi agar Anda dapat menjalankan library Tink di jaringan.
Buat kunci enkripsi dengan Cloud KMS.
Buat keyset terenkripsi dengan Tink.
Enkripsi data dengan Tink menggunakan salah satu metode berikut:
- Menggunakan enkripsi deterministik.
- Menggunakan skrip bantuan dengan data contoh.
Mengupload data terenkripsi ke BigQuery menggunakan streaming atau upload batch.
Untuk sumber data eksternal, pastikan pengguna yang diotorisasi dapat membaca data yang tidak dienkripsi dari BigQuery menggunakan fungsi dekripsi AEAD BigQuery. Misalnya, jalankan fungsi create dekripsi berikut:
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.
Gunakan Security Command Center untuk memindai project yang baru dibuat berdasarkan persyaratan kepatuhan Anda.
Deploy arsitektur ke lingkungan produksi Anda.
Langkah berikutnya
- Tinjau blueprint dasar perusahaan untuk lingkungan dasar yang aman.
- Untuk melihat detail arsitektur, baca README konfigurasi Terraform untuk sumber data internal (repositori
terraform-google-secured-data-warehouse
) atau baca README konfigurasi Terraform untuk sumber data eksternal (repositoriterraform-google-secured-data-warehouse-onprem-ingest
).