Quay lại bộ đề
Question #165 Topic 1
You want to encrypt the customer data stored in BigQuery. You need to implement per-user crypto-deletion on data stored in your tables. You want to adopt native features in Google Cloud to avoid custom solutions. What should you do?
Bạn muốn mã hóa dữ liệu khách hàng được lưu trữ trong BigQuery. Bạn cần triển khai cơ chế xóa mã hóa theo từng người dùng (per-user crypto-deletion) đối với dữ liệu được lưu trữ trong các bảng của mình. Bạn muốn áp dụng các tính năng sẵn có (native) trong Google Cloud để tránh các giải pháp tự tùy chỉnh. Bạn nên làm gì?
A
Implement Authenticated Encryption with Associated Data (AEAD) BigQuery functions while storing your data in BigQuery.
Triển khai các hàm BigQuery Authenticated Encryption with Associated Data (AEAD) trong khi lưu trữ dữ liệu của bạn trong BigQuery.
B
Create a customer-managed encryption key (CMEK) in Cloud KMS. Associate the key to the table while creating the table.
Tạo một khóa mã hóa do khách hàng quản lý (CMEK) trong Cloud KMS. Liên kết khóa đó với bảng trong khi tạo bảng.
C
Create a customer-managed encryption key (CMEK) in Cloud KMS. Use the key to encrypt data before storing in BigQuery.
Tạo một khóa mã hóa do khách hàng quản lý (CMEK) trong Cloud KMS. Sử dụng khóa đó để mã hóa dữ liệu trước khi lưu trữ trong BigQuery.
D
Encrypt your data during ingestion by using a cryptographic library supported by your ETL pipeline.
Mã hóa dữ liệu của bạn trong quá trình nạp (ingestion) bằng cách sử dụng một thư viện mật mã được hỗ trợ bởi pipeline ETL của bạn.
Giải thích & Tài liệu tham khảo
Để triển khai cơ chế xóa mã hóa theo từng người dùng (per-user crypto-deletion) - hay còn gọi là quyền được quên (Right to be Forgotten) theo luật GDPR - một cách native trong BigQuery:
- A. Sử dụng các hàm AEAD trong BigQuery: Đây là giải pháp khuyến nghị chính thức từ Google Cloud. Bằng cách sử dụng các hàm mật mã AEAD của BigQuery (như
KEYS.NEW_KEYSET(),AEAD.ENCRYPT(),AEAD.DECRYPT()), bạn có thể tạo một bộ khóa (keyset) riêng cho mỗi người dùng. Khi lưu trữ, dữ liệu của người dùng đó được mã hóa bằng keyset tương ứng. Khi người dùng yêu cầu xóa dữ liệu của họ, bạn chỉ cần xóa keyset của người dùng đó khỏi bảng quản lý khóa. Dữ liệu đã mã hóa trong bảng BigQuery sẽ vĩnh viễn không thể giải mã được nữa (tương đương với việc xóa dữ liệu) mà không cần phải chạy các câu lệnhDELETEtốn kém trên bảng dữ liệu lớn. Đây là tính năng native được hỗ trợ bởi SQL trong BigQuery. - Các phương án khác:
- B, C: CMEK cấp độ bảng sẽ mã hóa toàn bộ bảng bằng một khóa duy nhất. Bạn không thể thực hiện xóa mã hóa cho riêng từng cá nhân (per-user crypto-deletion) bằng cách xóa khóa này, vì việc xóa khóa CMEK của bảng sẽ làm cho toàn bộ bảng không thể đọc được.
- D: Mã hóa dữ liệu thông qua thư viện bên ngoài ở pipeline ETL là một giải pháp tùy chỉnh (custom solution) bên ngoài Google Cloud, vi phạm yêu cầu muốn sử dụng tính năng native của Google Cloud để giảm thiểu tự phát triển.
(Đáp án được gợi ý bởi AI)