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 các khoá do Autokey tạo có thể giúp bạn luôn tuân thủ các tiêu chuẩn trong ngành và các phương pháp được đề xuất để bảo mật dữ liệu, bao gồm cả cấp độ bảo vệ HSM, phân tách nhiệm vụ, xoay vòng khoá, vị trí và đặc điểm của khoá. Tính năng Tự động tạo khoá tạo các khoá tuân theo cả nguyên tắc chung và nguyên tắc dành riêng cho loại tài nguyên cho các dịch vụ của Google Cloud tích hợp với tính năng Tự động tạo khoá của Cloud KMS. Sau khi được tạo, các khoá được yêu cầu bằng hàm Tự động khoá sẽ 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 tác nhân dịch vụ đóng vai trò là trợ lý quản lý khoá
- một dự án sẽ lưu trữ các 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ó
- Tổ chức Google Cloud
- Người dùng chính của bạn trên Google Cloud phải có các vai trò sau ở cấp Tổ chức để hoàn thành lớp học này:
- Quản trị viên khoá tự động Cloud KMS (roles/cloud xóa.autokeyAdmin)
- Quản trị viên IAM của thư mục (roles/resourcemanager.folderIamAdmin)
- Người dùng tài khoản thanh toán (roles/billing.user)
- Dự án trên Google Cloud đã bật tính năng Thanh toán
- Trải nghiệm cơ bản về Linux
2. Tạo thư mục
Thư mục là các nút trong Hệ thống phân cấp tài nguyên trê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:
- Chuyển đến trang Quản lý tài nguyên trong bảng điều khiển Google Cloud
- Đả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.
- Nhấp vào Tạo thư mục
- Chọn Thư mục chuẩn
- 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"
- Trong phần Đích đến, hãy nhấp vào Duyệt qua, sau đó chọn tài nguyên hoặc thư mục tổ chức mà bạn muốn tạo thư mục mới.
- Nhấp vào Tạo.
3. Tạo dự án tài nguyên
Điều quan trọng là bạn 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 cố định và Bộ chứa Cloud Storage) mà bạn muốn mã hoá bằng Khoá tự động Cloud KMS. Nếu bạn cố gắng tạo tài nguyên được Autokey bảo vệ trong dự án khoá, Autokey sẽ từ chối yêu cầu tạo khoá mới. Cách tạo dự án tài nguyên:
- Chuyển đến trang Quản lý tài nguyên trong Google Cloud Console
- Nhấp vào Tạo dự án.
- 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" .
- 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"
- 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:
- Sao chép Mã dự án – trong ví dụ trên, Mã dự án là "causal-hour-43319-m4" nhưng mã của bạn sẽ khác – vào trình soạn thảo văn bản mà bạn chọn.
- Nhấp vào Tạo
- Chọn biểu tượng Cloud Shell ở góc trên cùng bên phải của màn hình
- Sau khi Cloud Shell hoạt động, hãy lưu mã dự án Autokey dưới dạng 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" nên lệnh của tôi sẽ có dạng như sau:
export AUTOKEY_PROJECT=causal-hour-43319-m4
- Chạy lệnh sau để thực thi các lệnh từ Dự án chính:
gcloud config set project $RESOURCE_PROJECT
Khi được nhắc, hãy uỷ quyền cho Cloud Shell bằng cách nhấp vào "Uỷ quyền"
- 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 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ố gắng tạo tài nguyên được Autokey bảo vệ trong dự án khoá, Autokey sẽ từ chối yêu cầu tạo khoá mới. Cách tạo dự án chính:
- Chuyển đến trang Quản lý tài nguyên trong Google Cloud Console
- Nhấp vào Tạo dự án.
- 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" .
- 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á"
- 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 cấp bậc của dự án mới. Chế độ cài đặt của bạn sẽ có dạng như sau:
- 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.
- 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.
- Chọn biểu tượng Cloud Shell ở góc trên cùng bên phải màn hình
- Sau khi Cloud Shell hoạt động, hãy lưu mã dự án Autokey dưới dạng 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" nên lệnh của tôi sẽ có dạng như sau:
export AUTOKEY_PROJECT=key-management-433319
- Chạy lệnh sau để thực thi các lệnh từ Dự án chính:
gcloud config set project $AUTOKEY_PROJECT
Khi được nhắc, hãy uỷ quyền cho Cloud Shell bằng cách nhấp vào "Uỷ quyền"
- Bật API Cloud KMS bằng cách chạy lệnh sau
gcloud services enable cloudkms.googleapis.com kmsinventory.googleapis.com
- Chạy lệnh sau để lưu Số dự á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)")
- Lưu email của Người phụ trách dưới dạng biến bằng cách chạy lệnh sau:
export KEY_ADMIN_EMAIL=<paste your Principal's email>
- 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 cho một dự án chính sẽ tạo khoá và áp dụng các 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 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.
- Tìm Mã tổ chức bằng lệnh sau:
gcloud organizations list | grep -P -i 'ID:' | grep -i '[0-9]'
- Sao chép mã tổ chức – đây là kết quả dạng số được đánh dấu bằng màu đỏ
- Lưu mã nhận dạng tổ chức dưới dạng một biến có tên là ORG_ID:
export ORG_ID=<paste your Organization ID>
- 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
- 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
- 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. 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'
- 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'
- 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
Để nhà phát triển có thể sử dụng tính năng Tự động khoá, bạn phải cấp cho họ vai trò bắt buộc. 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.
- Tìm mã nhận dạng thư mục bằng lệnh sau:
gcloud projects describe $AUTOKEY_PROJECT | grep 'id' | grep -P -i '[0-9]+'
- Sao chép mã thư mục – đây là phần được đánh dấu bằng màu đỏ
- 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 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 Autokey.
- 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 tính năng Khoá tự động của Cloud KMS trên một thư mục tài nguyên và xác định dự án Cloud KMS sẽ chứa các 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 đó.
- Trong Google Cloud Console, hãy chuyển đến trang Chế độ kiểm soát KMS.
- Nhấp vào Chọn thư mục
- Trong bộ chọn ngữ cảnh, hãy chọn thư mục mà bạn muốn bật tính năng Tự động nhập. Đây sẽ 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:
- Nhấp vào Bật.
- Nhấp vào Duyệt qua để chọn dự án khoá
- Chọn dự án quản lý khoá của bạn, rồi nhấp vào Gửi.
Một thông báo xác nhận rằng bạn đã bật tính năng Khoá tự động của Cloud KMS trên thư mục. Trang Kiểm soát KMS sẽ có dạng như sau:
9. Tạo tài nguyên được bảo vệ bằng tính năng Khoá tự động của Cloud KMS
Ổ đĩa lưu trữ dài lâu 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 tất các bước sau:
- Trong bảng điều khiển Google Cloud, hãy chuyển đến trang Ổ đĩa.
- Nhấp vào Tạo ổ đĩa rồi nhập các thuộc tính cho ổ đĩa mới.
- Trong phần Mã hoá, hãy chọn khoá Cloud KMS.
- Đối với Loại khoá, hãy chọn Cloud KMS với Autokey, rồi nhấp vào Yêu cầu khoá mới. Một thông báo sẽ cho bạn 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.
- Để 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.
- Trong bảng điều khiển Google Cloud, hãy chuyển đến trang Tạo bộ chứa.
- Chọn một tên cố định và duy nhất trên toàn cầu.
- Chọn một vị trí dữ liệu.
- Chuyển đến phần "Chọn cách bảo vệ dữ liệu đối tượng" mục
- Nhấp vào "Chọn cách bảo vệ dữ liệu đối tượng" để mở rộng phần này
- Mở rộng mục Mã hoá dữ liệu rồi chọn khoá Cloud KMS.
- Đố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 sẽ cho bạn 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.
- Để 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 tập dữ liệu BigQuery, trước tiên, bạn phải có vai trò Người dùng BigQuery.
- Quay lại Cloud Shell
- Đặt Cloud Shell để thực thi các lệnh từ dự án tài nguyên
gcloud config set project $RESOURCE_PROJECT
- 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)")
- Cấp cho chính 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 tính năng Khoá tự động!
- Trong bảng điều khiển Google Cloud, hãy truy cập vào trang BigQuery.
- Làm theo hướng dẫn để Tạo tập dữ liệu cho đến khi bạn đến phần Tuỳ chọn nâng cao > Mã hoá.
- Trong phần Mã hoá, hãy chọn Khoá Cloud KMS.
- Đối với Loại khoá, hãy chọn Cloud KMS với Autokey, rồi nhấp vào Yêu cầu khoá mới. Một thông báo sẽ cho bạn 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.
- Để 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
Ở bước này, bạn sẽ khám phá các khoá mà tính năng Tự động tạo khoá của Cloud KMS đã tạo thay mặt cho bạn bằng cách truy cập vào trang Khoảng không quảng cáo khoá. Trang Kiểm kê khoá 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 giới hạn tại đây.
- Trong Google Cloud Console, hãy chuyển đến trang Key Inventory (Khoảng không quảng cáo khoá).
- 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 của bạn 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á.
- Nhấp vào tên của khoá mà bạn muốn xem thông tin về việc sử dụng.
- Nhấp vào "Tổng quan". Lưu ý rằng bạn có một khoá cho mỗi tài nguyên được tạo. 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"). Tính năng Tự động tạo khoá của Cloud KMS đảm bảo rằng mỗi khoá được lên lịch xoay vòng 365 ngày sau khi tạo và mỗi khoá được chỉ định cấp độ bảo vệ "HSM".
- Nhấp vào thẻ Theo dõi mức sử dụng. Hãy lưu ý đến 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.
- 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.
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á các tài nguyên đó theo yêu cầu bằng tính năng Khoá tự động của Cloud KMS!
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ạo một phiên bản Google Compute Engine (GCE)
- Đính kèm ổ đĩa lưu trữ dài hạn được bảo vệ bằng Autokey vào phiên bản GCE
- Tải dữ liệu lên tập dữ liệu BigQuery
- Tải đối tượng lên Bộ chứa Google Cloud Storage
- Tải dữ liệu của Google Cloud Storage vào BigQuery