Dễ dàng mã hoá tài nguyên bằng khoá tự động Cloud KMS

1. Giới thiệu

Cloud KMS Autokey đơn giản hoá việc tạo và sử dụng khoá mã hoá do khách hàng quản lý (CMEK) nhờ tự động hoá việc cấp phép và chỉ định. Với tính năng Khoá tự động, bạn không cần lên kế hoạch và cung cấp tài khoản dịch vụ khoá, chìa khoá và tài khoản dịch vụ trước khi cần đến. Thay vào đó, Autokey sẽ tạo khoá theo yêu cầu khi tài nguyên của bạn được tạo, dựa trên các quyền được uỷ quyền thay vì quản trị viên Cloud KMS.

Việc sử dụng khoá do Khoá tự động tạo có thể giúp bạn tuân thủ một cách nhất quán các tiêu chuẩn ngành và các phương pháp được đề xuất để bảo mật dữ liệu, bao gồm mức độ bảo vệ HSM, phân tách nhiệm vụ, xoay vòng khoá, vị trí và đặc thù về khoá. Khoá tự động tạo các khoá tuân thủ cả nguyên tắc chung và nguyên tắc dành riêng cho loại tài nguyên dành cho những dịch vụ của Google Cloud tích hợp với Khoá tự động Cloud KMS. Sau khi được tạo, các khoá được yêu cầu bằng tính năng Khoá tự động hoạt động giống hệt với các khoá Cloud HSM khác có cùng chế độ cài đặt.

Sản phẩm bạn sẽ tạo ra

Trong lớp học lập trình này, bạn sẽ khởi chạy các tài nguyên được bảo vệ bằng Cloud KMS Autokey bằng cách tạo:

  • tài nguyên thư mục
  • một dự án chứa các khoá của bạn
  • một nhân viên hỗ trợ dịch vụ đóng vai trò là trợ lý quản lý khoá
  • một dự án lưu trữ tài nguyên được bảo vệ của bạn
  • Tập dữ liệu BigQuery, ổ đĩa cố định và bộ chứa Cloud Storage được mã hoá bằng Khoá tự động của Cloud KMS

Bạn cần có

2. Tạo thư mục

Thư mục là các nút trong Hệ phân cấp tài nguyên Cloud Platform. Một thư mục có thể chứa dự án, các thư mục khác hoặc kết hợp cả hai. Tài nguyên của tổ chức có thể dùng các thư mục để nhóm các dự án trong nút tài nguyên của tổ chức trong một hệ phân cấp. Để tạo thư mục:

  1. Chuyển đến trang Quản lý tài nguyên trong bảng điều khiển Google Cloud
  2. Đảm bảo rằng bạn đã chọn tên tài nguyên tổ chức trong danh sách thả xuống của tổ chức ở đầu trang.
  3. Nhấp vào Tạo thư mục

9328ef3bd4840817.pngs

  1. Chọn Thư mục chuẩn

20a094fe0c7a0924.pngS

  1. Trong hộp Tên thư mục, hãy nhập tên của thư mục mới. Đối với phòng thí nghiệm này, hãy xem xét "Thư mục khoá tự động"
  2. Trong Đích đến, hãy nhấp vào Duyệt qua, sau đó chọn tài nguyên hoặc thư mục của tổ chức mà bạn muốn tạo thư mục mới.
  3. Nhấp vào Tạo.

3. Tạo dự án tài nguyên

Điều quan trọng là phải tạo một dự án tài nguyên để chứa các tài nguyên, chẳng hạn như tập dữ liệu BigQuery, ổ đĩa lưu trữ dài lâu và Bộ chứa Cloud Storage, mà bạn muốn mã hoá bằng Khoá tự động của Cloud KMS. Nếu bạn cố tạo tài nguyên được bảo vệ bằng Khoá tự động trong dự án khoá, Khoá tự động sẽ từ chối yêu cầu khoá mới. Cách tạo dự án tài nguyên:

  1. Chuyển đến trang Quản lý tài nguyên trong bảng điều khiển Google Cloud
  2. Nhấp vào Tạo dự án.

93e4e224322c68a7.pngS

  1. Trên danh sách thả xuống Chọn tổ chức ở đầu trang, hãy chọn "Thư mục khoá tự động" .
  2. Trong cửa sổ Dự án mới xuất hiện, hãy nhập tên dự án rồi chọn tài khoản thanh toán (nếu có). Đối với phòng thí nghiệm này, hãy cân nhắc bài viết "Tài nguyên đã mã hoá bằng khoá tự động"
  3. Trong hộp Vị trí, hãy chọn thư mục "Autokey-Folder". Tài nguyên đó sẽ là tài nguyên mẹ theo phân cấp của dự án mới. Cài đặt của bạn sẽ có dạng như sau:

187ece37daf50835.pngS

  1. Sao chép Mã dự án – trong ví dụ ở trên, Mã dự án là "causal-hour-43319-m4" nhưng giấy tờ tuỳ thân của bạn sẽ khác - vào trình chỉnh sửa văn bản mà bạn chọn.
  2. Nhấp vào Tạo
  3. Chọn biểu tượng Cloud Shell ở góc trên cùng bên phải màn hình

16c8476c4991f448.pngS

  1. Sau khi Cloud Shell hoạt động, hãy lưu Mã dự án khoá tự động dưới dạng một biến bằng cách chạy lệnh sau:
export RESOURCE_PROJECT=<paste your Resource Project ID>

Vì mã dự án của tôi là "key-management-433319" lệnh của tôi trông giống như sau:

export AUTOKEY_PROJECT=causal-hour-43319-m4
  1. Chạy lệnh sau để thực thi các lệnh trong Dự án khoá của bạn:
gcloud config set project $RESOURCE_PROJECT

Khi được nhắc, hãy cho phép Cloud Shell bằng cách nhấp vào "Cho phép"

a6c755d4921bc728.png

  1. Vì dự án này sẽ chứa các tài nguyên, nên chúng ta cần bật các API cho các dịch vụ mà Khoá tự động sẽ bảo vệ. Chạy lệnh sau:
gcloud services enable storage.googleapis.com bigquery.googleapis.com compute.googleapis.com

4. Tạo một dự án chính

Bạn nên tạo một dự án chứa các tài nguyên Cloud KMS do Autokey tạo. Đây sẽ được gọi là "dự án chính" từ nay về sau. Bạn có thể tạo dự án khoá trong cùng một thư mục mà bạn định bật Khoá tự động. Bạn không nên tạo các tài nguyên khác bên trong dự án chính. Nếu bạn cố tạo tài nguyên được bảo vệ bằng Khoá tự động trong dự án khoá, Khoá tự động sẽ từ chối yêu cầu khoá mới. Cách tạo dự án chính:

  1. Chuyển đến trang Quản lý tài nguyên trong bảng điều khiển Google Cloud
  2. Nhấp vào Tạo dự án.

93e4e224322c68a7.pngS

  1. Trên danh sách thả xuống Chọn tổ chức ở đầu trang, hãy chọn "Thư mục khoá tự động" .
  2. Trong cửa sổ Dự án mới xuất hiện, hãy nhập tên dự án rồi chọn tài khoản thanh toán (nếu có). Đối với phòng thí nghiệm này, hãy cân nhắc đến chủ đề "Quản lý khoá"
  3. Trong hộp Location (Vị trí), chọn "Autokey-Folder" (Thư mục khoá tự động) . Tài nguyên đó sẽ là tài nguyên mẹ theo phân cấp của dự án mới. Cài đặt của bạn sẽ có dạng như sau:

157894b5c9048c06.pngS

  1. Sao chép Mã dự án – trong ví dụ ở trên, Mã dự án là "key-management-433319" nhưng giấy tờ tuỳ thân của bạn sẽ khác - vào trình chỉnh sửa văn bản mà bạn chọn.
  2. Nhấp vào Tạo.

5. Chuẩn bị dự án Khoá tự động

Giờ đây, mỗi dự án đã được tạo, đã đến lúc định cấu hình dự án chính để sử dụng Khoá tự động của Cloud KMS.

  1. Chọn biểu tượng Cloud Shell ở góc trên cùng bên phải màn hình

16c8476c4991f448.pngS

  1. Sau khi Cloud Shell hoạt động, hãy lưu Mã dự án khoá tự động dưới dạng một biến bằng cách chạy lệnh sau:
export AUTOKEY_PROJECT=<paste your Autokey Project ID>

Vì mã dự án của tôi là "key-management-433319" lệnh của tôi trông giống như sau:

export AUTOKEY_PROJECT=key-management-433319
  1. Chạy lệnh sau để thực thi các lệnh trong Dự án khoá của bạn:
gcloud config set project $AUTOKEY_PROJECT

Khi được nhắc, hãy cho phép Cloud Shell bằng cách nhấp vào "Cho phép"

a6c755d4921bc728.png

  1. Bật API Cloud KMS bằng cách chạy lệnh sau
gcloud services enable cloudkms.googleapis.com  kmsinventory.googleapis.com
  1. Chạy lệnh sau để lưu Số dự án của bạn dưới dạng biến có tên autoKEY_PROJECT_NUMBER
export AUTOKEY_PROJECT_NUMBER=$(gcloud projects list \
--filter="$(gcloud config get-value project)" \
--format="value(PROJECT_NUMBER)")
  1. Lưu email của Hiệu trưởng dưới dạng biến bằng cách chạy lệnh sau:
export KEY_ADMIN_EMAIL=<paste your Principal's email>
  1. Cấp quyền quản trị viên Cloud KMS đối với dự án quan trọng cho người dùng quản trị viên Cloud KMS của bạn
gcloud projects add-iam-policy-binding $AUTOKEY_PROJECT_NUMBER \
    --role=roles/cloudkms.admin \
    --member=user:$KEY_ADMIN_EMAIL

6. Thiết lập tác nhân dịch vụ Cloud KMS

Nhân viên hỗ trợ dịch vụ Cloud KMS của một dự án chính sẽ tạo khoá và áp dụng các mối liên kết chính sách IAM trong quá trình tạo tài nguyên, thay mặt cho quản trị viên Cloud KMS là con người. Để có thể tạo và chỉ định khoá, nhân viên hỗ trợ dịch vụ Cloud KMS cần có quyền quản trị viên Cloud KMS.

  1. Tìm Mã tổ chức bằng lệnh sau:
gcloud organizations list | grep -P -i 'ID:' | grep -i '[0-9]'
  1. Sao chép mã tổ chức. Đây là kết quả dạng số được đánh dấu bằng màu đỏ
  2. Lưu Mã tổ chức dưới dạng biến có tên ORG_ID:
export ORG_ID=<paste your Organization ID>
  1. Tạo tác nhân dịch vụ Cloud KMS bằng cách chạy lệnh sau:
gcloud beta services identity create --service=cloudkms.googleapis.com \
    --project=$AUTOKEY_PROJECT_NUMBER
  1. Cấp vai trò quản trị viên của Cloud KMS cho nhân viên hỗ trợ dịch vụ:
gcloud projects add-iam-policy-binding $AUTOKEY_PROJECT_NUMBER \
    --role=roles/cloudkms.admin \
    --member=serviceAccount:service-$AUTOKEY_PROJECT_NUMBER@gcp-sa-cloudkms.iam.gserviceaccount.com
  1. Thêm mối liên kết chính sách IAM để bạn có thể xem mức sử dụng khoá Cloud KMS của mình. Việc sử dụng khoá cung cấp thông tin cho từng khoá, bao gồm cả số lượng tài nguyên, dự án được bảo vệ và những sản phẩm riêng biệt của Google Cloud sử dụng khoá đó. Bất kỳ ai có vai trò Người xem Cloud KMS đối với khoá đều có thể xem cấp chi tiết này. Chạy lệnh sau:
gcloud organizations add-iam-policy-binding $ORGANIZATION_ID \
    --member="serviceAccount:service-org-$ORGANIZATION_ID@gcp-sa-cloudkms.iam.gserviceaccount.com" \
    --role='roles/cloudkms.orgServiceAgent'
  1. Cấp cho tài khoản dịch vụ Cloud KMS của bạn vai trò Nhân viên hỗ trợ dịch vụ tổ chức của Cloud KMS (cloudkm.orgServiceAgent) đối với tài nguyên của tổ chức.
gcloud organizations add-iam-policy-binding $ORG_ID \
    --member="serviceAccount:service-org-$ORG_ID@gcp-sa-cloudkms.iam.gserviceaccount.com" \
    --role='roles/cloudkms.orgServiceAgent'
  1. Cấp vai trò Người xem tài nguyên được bảo vệ của Cloud KMS trên tài nguyên Tổ chức của bạn cho bất cứ ai cần xem thông tin chi tiết về việc sử dụng chính.
gcloud organizations add-iam-policy-binding $ORG_ID \
    --member="user:$KEY_ADMIN_EMAIL" \
    --role='roles/cloudkms.protectedResourcesViewer'

7. Cấp vai trò của người dùng dùng khoá tự động

Trước khi nhà phát triển của bạn có thể sử dụng Khoá tự động, bạn phải cấp cho họ vai trò cần thiết. Bạn có thể cấp vai trò này ở cấp thư mục hoặc cấp dự án. Vai trò này cho phép nhà phát triển yêu cầu khoá từ tác nhân dịch vụ Cloud KMS trong khi tạo tài nguyên trong thư mục hoặc dự án đó.

Bước đầu tiên để cấp vai trò là lưu Mã thư mục.

  1. Tìm Mã thư mục bằng lệnh sau:
gcloud projects describe $AUTOKEY_PROJECT | grep 'id' | grep -P -i '[0-9]+'
  1. Sao chép Mã thư mục – đây là phần được đánh dấu bằng màu đỏ
  2. Lưu Mã thư mục dưới dạng biến có tên là UNIT_ID
export FOLDER_ID=<paste the folder ID>

Trong phạm vi của phòng thí nghiệm này, chúng tôi sẽ xác định quản trị viên khoá là người dùng Khoá tự động. Tuy nhiên, trong các trường hợp sử dụng phiên bản chính thức và trong các tổ chức có nhiều cá nhân, quản trị viên khoá phải khác với nhà phát triển sử dụng Khoá tự động.

  1. Cấp vai trò role/cloudkm.autokeyUser ở cấp thư mục:
gcloud resource-manager folders add-iam-policy-binding \
    $FOLDER_ID --role=roles/cloudkms.autokeyUser \
    --member=user:$KEY_ADMIN_EMAIL

8. Bật Khoá tự động của Cloud KMS trên thư mục tài nguyên

Trong bước này, bạn sẽ bật Khoá tự động cho Cloud KMS trên một thư mục tài nguyên và xác định dự án Cloud KMS có chứa tài nguyên Khoá tự động cho thư mục đó. Việc bật Khoá tự động trên thư mục này sẽ bật Khoá tự động cho tất cả dự án tài nguyên trong thư mục đó.

  1. Trong bảng điều khiển Google Cloud, hãy chuyển đến trang kiểm soát KMS.
  2. Nhấp vào Chọn thư mục

785f338e1860029c.png.

  1. Trên bộ chọn ngữ cảnh, hãy chọn thư mục bạn muốn bật Khoá tự động. Đây sẽ chính là thư mục mà bạn đã tạo trước đó và chứa dự án tài nguyên cũng như dự án quản lý khoá. Ứng dụng sẽ hiển thị như sau:

f0ee5141dc6fa40e.png

  1. Nhấp vào Bật.
  2. Nhấp vào Browse (Duyệt qua) để chọn dự án chính
  3. Chọn dự án quản lý khoá của bạn, rồi nhấp vào Gửi.

5acd9e68eb972e15.pngS

Một thông báo xác nhận rằng Cloud KMS Autokey đã được bật trên thư mục. Trang Kiểm soát KMS sẽ có dạng như sau:

8bddb3d688ba842d.png.

9. Tạo tài nguyên được bảo vệ bằng Cloud KMS Autokey

Ổ đĩa lưu trữ cố định của Compute Engine

Khoá tự động tạo khoá mới cho mỗi ổ đĩa, hình ảnh và hình ảnh máy ở cùng một vị trí với tài nguyên đang được tạo.

Để tạo ổ đĩa, hãy hoàn thành các bước sau:

  1. Trong bảng điều khiển Google Cloud, hãy chuyển đến trang Ổ đĩa.
  2. Nhấp vào Tạo ổ đĩa rồi nhập các thuộc tính cho ổ đĩa mới.
  3. Trong phần Mã hoá, hãy chọn khoá Cloud KMS.

dcc63e9ae03c5fbe.png

  1. Đối với Loại khoá, hãy chọn Cloud KMS có khoá tự động, sau đó nhấp vào Yêu cầu khoá mới. Một thông báo cho biết thời điểm khoá của bạn đã được tạo thành công và sẵn sàng để sử dụng.

4b2283a0d52cc98d.png.

  1. Để hoàn tất quá trình tạo ổ đĩa, hãy nhấp vào Tạo.

Bạn có thể làm theo quy trình tương tự để tạo phiên bản máy ảo, hình ảnh và tài nguyên hình ảnh máy được bảo vệ.

Bộ chứa Google Cloud Storage

Khoá tự động sẽ tạo một khoá mới ở cùng vị trí với bộ chứa. Khoá do Khoá tự động tạo được gán làm khoá mặc định của bộ chứa.

Khoá tự động không tạo khoá cho đối tượng. Theo mặc định, các đối tượng được tạo trong một bộ chứa sẽ sử dụng khoá mặc định của bộ chứa. Nếu muốn mã hoá một đối tượng bằng một khoá khác với khoá mặc định của bộ chứa, bạn có thể tạo CMEK theo cách thủ công và sử dụng khoá đó khi tạo đối tượng.

  1. Trong bảng điều khiển Google Cloud, hãy chuyển đến trang Tạo bộ chứa.
  2. Chọn một tên cố định và duy nhất trên toàn cầu.
  3. Chọn một vị trí dữ liệu.
  4. Chuyển đến phần "Chọn cách bảo vệ dữ liệu đối tượng" mục

e31bbeff5c7aabdf.png

  1. Nhấp vào "Chọn cách bảo vệ dữ liệu đối tượng" để mở rộng phần này

9c68ce19dac932de.png.

  1. Mở rộng mục Mã hoá dữ liệu rồi chọn khoá Cloud KMS. d8caca08891be9dc.png
  2. Đối với Loại khoá, hãy chọn Cloud KMS có khoá tự động, sau đó nhấp vào Yêu cầu khoá mới. Một thông báo cho biết thời điểm khoá của bạn đã được tạo thành công và sẵn sàng để sử dụng.

a10d1ae243c44811.png

  1. Để hoàn tất việc tạo bộ chứa, hãy nhấp vào Tạo. Nếu bạn được nhắc bằng một hộp thoại giải thích rằng "Quyền truy cập công khai sẽ bị chặn" hãy nhấp vào Xác nhận.

Tập dữ liệu BigQuery

Đối với mỗi tập dữ liệu mới, Khoá tự động sẽ tạo một khoá mới, ở cùng vị trí với chính tài nguyên đó, khoá này sẽ trở thành khoá mặc định của tập dữ liệu. Khoá tự động không tạo khoá cho bảng, truy vấn, bảng tạm thời hoặc mô hình. Theo mặc định, các tài nguyên này được bảo vệ bằng khoá mặc định của tập dữ liệu. Nếu muốn bảo vệ tài nguyên trong tập dữ liệu bằng một khoá khác với khoá mặc định của tập dữ liệu, bạn có thể tạo CMEK theo cách thủ công và sử dụng khoá đó khi tạo tài nguyên.

Để tạo một tập dữ liệu BigQuery, trước tiên, bạn phải có vai trò Người dùng BigQuery.

  1. Quay lại Cloud Shell
  2. Đặt Cloud Shell để thực thi các lệnh từ dự án tài nguyên
gcloud config set project $RESOURCE_PROJECT
  1. Chạy lệnh sau để lưu Số dự án của bạn dưới dạng một biến có tên TÀI PROJECT_NUMBER
export RESOURCE_PROJECT_NUMBER=$(gcloud projects list --filter="$(gcloud config get-value project)" --format="value(PROJECT_NUMBER)")
  1. Tự cấp cho bạn vai trò Người dùng BigQuery
gcloud projects add-iam-policy-binding $RESOURCE_PROJECT_NUMBER \
    --role=roles/bigquery.user \
    --member=user:$KEY_ADMIN_EMAIL

Giờ đây, khi đã có vai trò Người dùng BigQuery, bạn có thể tạo một tập dữ liệu và bảo vệ tập dữ liệu đó bằng Khoá tự động!

  1. Trong bảng điều khiển Google Cloud, hãy truy cập vào trang BigQuery.
  2. Làm theo hướng dẫn để tạo tập dữ liệu cho đến khi bạn chuyển đến phần Tùy chọn nâng cao > Mã hoá.
  3. Trong phần Mã hoá, hãy chọn khoá Cloud KMS.
  4. Đối với Loại khoá, hãy chọn Cloud KMS có khoá tự động, sau đó nhấp vào Yêu cầu khoá mới. Một thông báo cho biết thời điểm khoá của bạn đã được tạo thành công và sẵn sàng để sử dụng.
  5. Để hoàn tất việc tạo tập dữ liệu, hãy nhấp vào Tạo tập dữ liệu.

10. Khám phá các khoá của bạn

Trong bước này, bạn sẽ khám phá các khoá Cloud KMS Autokey đã thay mặt bạn tạo bằng cách truy cập trang Kho khoá. Trang Khoảng không quảng cáo cung cấp thông tin toàn diện về các khoá mã hoá trong dự án của bạn. Xin lưu ý rằng dữ liệu có thể xuất hiện trễ. Ví dụ: nếu bạn tạo một tài nguyên được bảo vệ mới, thì tài nguyên được bảo vệ và phiên bản khoá liên kết sẽ không được thêm ngay vào thẻ Theo dõi mức sử dụng. Xem thêm các quy định hạn chế tại đây.

  1. Trong bảng điều khiển Google Cloud, hãy chuyển đến trang Khoảng không quảng cáo chính.
  2. Không bắt buộc: Để lọc danh sách các khoá, hãy nhập cụm từ tìm kiếm vào hộp filter_list Filter rồi nhấn phím Enter. Ví dụ: bạn có thể lọc theo vị trí, vòng khoá, trạng thái hoặc các thuộc tính khác của khoá.
  3. Nhấp vào tên của khoá mà bạn muốn xem thông tin về việc sử dụng.
  4. Nhấp vào "Tổng quan". Xin lưu ý rằng bạn đã tạo một khoá cho mỗi tài nguyên. Mỗi tên khoá bao gồm tên của tài nguyên mà khoá đang bảo vệ (ví dụ: "compute-disk" hoặc "storage-bucket"). Khoá tự động Cloud KMS đảm bảo rằng mỗi khoá được lên lịch xoay vòng sau 365 ngày kể từ ngày tạo và mỗi khoá được gán một "HSM" mức độ bảo vệ.

9acbce68acb653d4.pngS

  1. Nhấp vào thẻ Theo dõi việc sử dụng. Hãy lưu ý mức độ thông tin được trình bày: mỗi tài nguyên mà khoá đang mã hoá sẽ xuất hiện ở đây, cùng với dự án, vị trí và ngày tạo.
  2. Không bắt buộc: Để lọc danh sách tài nguyên được bảo vệ, hãy nhập cụm từ tìm kiếm vào hộp Filter_list (bộ lọc) rồi nhấn Enter.

7def6fe9a023d063.pngS

11. Xin chúc mừng

Xin chúc mừng! Bạn đã tạo thành công các tài nguyên trên Google Cloud và tự động mã hoá những tài nguyên đó theo yêu cầu bằng Cloud KMS Autokey!

Giờ đây, bạn đã biết các bước quan trọng cần thiết để thiết lập Khoá tự động và sử dụng khoá này để tự động mã hoá tài nguyên bằng khoá Cloud KMS.

12. Tiếp theo là gì?

Tải dữ liệu lên các tài nguyên đã mã hoá bằng Khoá tự động

Tài liệu tham khảo