My Post (1)

API hỗ trợ phòng chống rò rỉ dữ liệu nhạy cảm trên Google Cloud Platform

Tiếp theo bài viết Phòng chống rò rỉ dữ liệu nhạy cảm trên Google Cloud Platform. Nay mình sẽ giới thiệu về API của Google Cloud Platform hỗ trợ phòng chống rò rỉ dữ liệu nhạy cảm – Data Loss Prevention API.

Data Loss Prevention API là công cụ phát hiện thông tin cá nhân (personally identifiable information -PII) và dữ liệu nhạy cảm về quyền riêng tư khác trong dữ liệu bao gồm có cấu trúc hoặc phi cấu trúc.

Data Loss Prevention API phân loại nhanh chóng, có thể mở rộng và xử lý tùy chọn cho các dữ liệu nhạy cảm như: số thẻ tín dụng, email, số CMND, số hộ chiếu, số điện thoại,…. Ngoài ra, API này cũng hỗ trợ văn bản và hình ảnh – chỉ cần gửi dữ liệu đến API hoặc chỉ định dữ liệu được lưu trữ trên Google Cloud Storage, BigQuery, Cloud Datastore

Trong bài này chúng ta hãy cùng dùng API này để nhận biết thông tin cá nhân trong văn bản.

Trước tiên phải Enable API Data Loss Prevention API lên: Hãy vào màn hình GCP console, vào ô search gõ  Data Loss Prevention API rồi Enable (tham khảo hình dưới)

Tiếp theo ta sẽ bật Cloud Shell lên, do bài này chúng ta chủ yếu thao tác dòng lệnh, cách bận Cloud Shell tham khảo hình dưới.

I. Tạo service account

1.1 Tạo biến môi trường PROJECT_ID với lệnh:

export PROJECT_ID=[YOUR_PROJECT_ID]

Trong đó [YOUR_PROJECT_ID] chính là project id mà mình đang tác động tới từ Cloud Shell ( có thể check bằng lệnh: gcloud config list project) 

1.2 Tạo service account:

gcloud iam service-accounts create blog-data --display-name "Blog Service Account"

1.3 Cấp quyền cho service account

gcloud projects add-iam-policy-binding ${PROJECT_ID} \
--member serviceAccount:blog-data@${PROJECT_ID}.iam.gserviceaccount.com \
--role roles/owner

II. Phân tích và tìm thông tin cá nhân.

2.1 Tạo file chứa dữ liệu có thông tin cá nhân

Ở đây mình sẽ kiểm tra kết qủa của API bằng cách gửi một đoạn văn bảng có dữ liệu nhạy cảm. Ở đây mình chọn là – số điện thoại. Mình sẽ tạo file inspect-request.json  có nội dung sau:

{
  "item":{
    "value":"My phone number is (206) 555-0123."
  },
  "inspectConfig":{
    "infoTypes":[
      {
        "name":"PHONE_NUMBER"
      },
      {
        "name":"US_TOLLFREE_PHONE_NUMBER"
      }
    ],
    "minLikelihood":"POSSIBLE",
    "limits":{
      "maxFindingsPerItem":0
    },
    "includeQuote":true
  }
}

Trong đó :

  • item : chính là đoạn văn bản mà mình cần kiểm tra.
  • inspectConfig: là thông tin config cho DLP API phân tích những thông tin nhạy cảm nào. Ở đây mình thiết lập config là “PHONE_NUMBER” và “US_TOLLFREE_PHONE_NUMBER

2.2 Xác thực service account đã tạo ở bước 1.2

gcloud auth activate-service-account --key-file=key.json

Lấy token sau khi đã xác thực account (token này sẽ dùng để chạy ở bước tiếp theo)

gcloud auth print-access-token

2.3 Tìm thông tin cá nhân – thông tin nhạy cảm

Để tìm thông tin nhạy cảm trong đoạn văn bản thì chúng ta sẽ gọi rest api của DLP. Mặc dù nó cũng có một số thư viện cho các ngôn ngữ lập trình như java, python,.. bàn có thể tìm hiểu các bộ thư viện về DLP của Google Cloud Platform tại đây –https://cloud.google.com/dlp/docs/libraries . Để đơn giản thì chúng ta call rest api public của DLP bằng câu lệnh sau: 

curl -s \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  https://dlp.googleapis.com/v2/projects/$PROJECT_ID/content:inspect \
  -d @inspect-request.json

Hãy thay thế ACCESS_TOKEN bằng chuỗi token lấy được ở bước 2.2 rồi mới chạy nhé. Kết quả là thông qua API đã phát hiện ra số điện thoại (thông tin cá nhân) giống kết quả như hình dưới phải không nào.

Theo như kết quả trả về thì API phát hiện đoạn (206) 555-0123 là ‘PHONE NUMBER‘. Ngoài ra , kết quả còn chỉ ra vị trí bắt đầu và kết thúc của dữ liệu nhạy cảm. Từ đó chúng ta có thể xử lý những dữ liệu mà API đã phát hiện theo yêu cầu của ứng dụng.

Việc call bằng Rest API public có nhiều giới hạn khi phát triển các ứng dụng thật tế. Do đó chúng ta nên sử dụng các thư viện đã được hỗ trợ của DLP cho các ngôn ngữ lập trình cụ thể như mình đã giới thiệu ở trên. Mình sẽ trình bày việc tích hợp những thư viện DLP client cho từng ngôn ngữ lập trình cụ thể trong những bài viết tiếp theo.

Liên hệ ngay với chúng tôi, Cloud Ace Việt Nam để được tư vấn về Google Workspace, GCP.

Comments are closed.