Autokey 總覽

Cloud KMS Autokey 可自動佈建及指派客戶自行管理的加密金鑰 (CMEK),簡化建立及使用程序。Autokey 會根據需求產生金鑰環和金鑰。系統會視需要建立服務帳戶,並授予 Identity and Access Management (IAM) 角色,供這些帳戶使用金鑰加密及解密資源。Cloud KMS 管理員可全權控管及查看 Autokey 建立的金鑰,無需事先規劃及建立各項資源。與自行佈建金鑰相比,使用 Autokey 更簡單,如果 Autokey 建立的金鑰符合所有需求,建議您使用這項功能。

使用 Autokey 產生的金鑰,有助於您持續遵循資料安全性的業界標準和建議做法,包括多租戶雲端 HSM 防護等級、分散權責、金鑰輪替、位置和金鑰專用原則等。Autokey 會建立金鑰,並遵循一般規範和Google Cloud 與 Cloud KMS Autokey 整合的服務專屬規範。建立完成後,使用 Autokey 要求的金鑰與其他設定相同的 Cloud HSM 金鑰完全相同。

使用 Autokey 時,要求新金鑰所需的權限最少,且包含在授予資源建立權限的預設角色中。也就是說,開發人員和基礎架構即程式碼 (IaC) 管道不需要進階權限。Autokey 可簡化 Terraform 的金鑰管理作業,並支援最小權限原則。

您可以搭配專屬專案金鑰儲存功能 (舊稱「集中式金鑰管理」) 或同專案金鑰儲存功能 (舊稱「委派金鑰管理」) 使用 Autokey。如要搭配專屬專案金鑰儲存空間使用 Autokey,您必須擁有包含資料夾資源的機構資源。使用專屬專案金鑰儲存空間時,您會為資料夾中的專案啟用 Autokey,而 Autokey 建立的金鑰會儲存在該資料夾的指定金鑰專案中。使用同專案金鑰儲存功能時,您可以在資料夾或專案中啟用 Autokey,讓 Autokey 在受保護資源所在的專案中建立金鑰。

如要進一步瞭解機構和資料夾資源,請參閱「資源階層」。

Cloud KMS Autokey 適用於所有提供 Cloud HSM 的 Google Cloud 位置。如要進一步瞭解 Cloud KMS 位置,請參閱「Cloud KMS 位置」。使用 Cloud KMS Autokey 不會產生額外費用。使用 Autokey 建立的金鑰與其他 Cloud HSM 金鑰的價格相同。如要進一步瞭解定價,請參閱「Cloud Key Management Service 定價」。

Autokey 的運作方式

本節說明 Cloud KMS Autokey 的運作方式。下列使用者角色會參與這個程序:

管理員
管理員是負責管理資料夾或機構層級安全性的使用者。具備較高權限的 IaC 管道可以做為管理員。
開發人員
應用程式開發人員負責使用 Cloud KMS Autokey 建立資源。IaC 管道可做為開發人員。
Cloud KMS 管理員
Cloud KMS 管理員負責管理 Cloud KMS 資源。使用 Autokey 時,這個角色的職責比使用手動建立的金鑰時少。

下列服務專員也會參與這項程序:

Cloud KMS 服務代理
特定金鑰專案中的 Cloud KMS 服務代理。Autokey 必須具備這項服務代理的進階權限,才能建立 Cloud KMS 金鑰和金鑰環,並在金鑰上設定 IAM 政策,為每個資源服務代理授予加密和解密權限。
資源服務代理
特定資源專案中特定服務的服務代理。服務代理必須具備任何 Cloud KMS 金鑰的加密和解密權限,才能使用該金鑰為資源提供 CMEK 保護。Autokey 會在需要時建立資源服務代理,並授予使用 Cloud KMS 金鑰的必要權限。

管理員啟用 Cloud KMS Autokey

如要啟用 Autokey,請根據所選的金鑰儲存模型,選擇下列其中一個路徑:

  1. 專屬專案金鑰儲存功能:在資料夾中啟用專屬專案金鑰儲存功能。您會指定專屬金鑰專案,用來保存金鑰,以保護資料夾內其他專案建立的資源。
  2. 同專案金鑰儲存功能:在個別專案或資料夾中的所有專案啟用同專案金鑰儲存功能,即可在受保護資源所在的專案建立金鑰。

啟用專屬專案金鑰儲存功能

如要在資料夾中使用 Autokey,並透過專屬專案儲存金鑰,管理員必須先完成下列一次性設定工作:

  1. 在資料夾中啟用 Autokey,並使用專屬專案金鑰儲存功能,然後找出將包含該資料夾 Autokey 資源的 Cloud KMS 專案。

  2. 建立 Cloud KMS 服務代理,然後將金鑰建立和指派權限授予服務代理。

完成這項設定後,開發人員就能在該資料夾的任何專案中建立 Autokey 相容資源,並隨選觸發多租戶 Cloud HSM 金鑰建立作業。如要查看 Cloud KMS Autokey 的完整設定說明,請參閱「啟用 Cloud KMS Autokey」。

啟用 Autokey 並使用同專案金鑰儲存功能

如要使用 Autokey 搭配同專案金鑰儲存空間,管理員必須先完成下列一次性設定工作:

  1. 在專案或資料夾中,啟用 Autokey 和同專案金鑰儲存功能。
  2. 在該專案或資料夾中的專案啟用 Cloud KMS API。

在專案中啟用 Autokey 並使用同專案金鑰儲存功能時,系統會在需要時為您建立 Cloud KMS 服務代理程式。您不必手動建立服務代理。凡是有權建立 Autokey 相容資源的使用者,都可以視需要要求新金鑰。如要查看 Cloud KMS Autokey 的完整設定說明,請參閱「啟用 Cloud KMS Autokey」。

Autokey 開發人員使用 Cloud KMS Autokey

為專案成功啟用 Autokey 後,開發人員和 IaC 管道即可建立受保護的資源,並視需要使用為他們建立的金鑰。這適用於啟用專屬專案金鑰儲存功能的 Autokey 資料夾中的專案,以及啟用同專案金鑰儲存功能的 Autokey 專案。資源建立程序的詳細資料取決於您要建立的資源,但程序會遵循下列流程:

  1. 開發人員開始在相容的 Google Cloud 服務中建立資源。建立資源時,開發人員會向 Autokey 服務代理要求新金鑰。

  2. Autokey 服務代理程式會收到開發人員的要求,並完成下列步驟:

    1. 在所選位置的專案中建立金鑰環 (如果該金鑰環不存在)。
    2. 在金鑰環中建立適當細分程度的金鑰 (資源類型),除非這類金鑰已存在。
    3. 建立每個專案和服務的服務帳戶 (如果該服務帳戶不存在)。
    4. 授予每個專案、每個服務的服務帳戶金鑰加密和解密權限。
    5. 提供重要詳細資料給開發人員,協助他們完成資源建立作業。
  3. Autokey 服務代理程式成功傳回金鑰詳細資料後,開發人員就能立即完成建立受保護資源的作業。

Cloud KMS Autokey 會建立具有下一節所述屬性的金鑰。這個金鑰建立流程可確保分散權責。Cloud KMS 管理員仍可全面掌握並管理 Autokey 建立的金鑰。

啟用 Autokey 後,如要開始使用,請參閱「使用 Cloud KMS Autokey 建立受保護的資源」。

關於 Autokey 建立的金鑰

Cloud KMS Autokey 建立的金鑰具有下列屬性:

  • 防護等級:HSM。
  • 演算法:AES-256 GCM。
  • 輪替週期:一年。

    Autokey 建立金鑰後,Cloud KMS 管理員可以編輯輪替週期,變更預設值。

  • 分散權責:
    • 系統會自動授予服務的服務帳戶金鑰加密和解密權限。
    • 系統會照常將 Cloud KMS 管理員權限套用至 Autokey 建立的金鑰。Cloud KMS 管理員可以查看、更新、啟用或停用,以及刪除 Autokey 建立的金鑰。Cloud KMS 管理員不會獲得加密和解密權限。
    • Autokey 開發人員只能要求建立及指派金鑰。無法查看或管理車鑰。
  • 金鑰的具體程度或精細度:Autokey 建立的金鑰精細度會因資源類型而異。如要瞭解各項服務的金鑰精細度詳情,請參閱本頁的「相容服務」一節。
  • 位置:Autokey 會在受保護資源所在的相同位置建立金鑰。

    如要在 Cloud HSM 無法使用的位置建立受 CMEK 保護的資源,您必須手動建立 CMEK。

  • 金鑰版本狀態:使用 Autokey 建立的新金鑰會以啟用狀態建立為主要金鑰版本。
  • 金鑰環命名:Autokey 建立的所有金鑰都會儲存在名為 autokey 的金鑰環中。當 Autokey 開發人員要求特定位置的第一個金鑰時,系統就會在 Autokey 專案中建立金鑰環。如果您使用專屬專案金鑰儲存功能,金鑰環會建立於指定金鑰專案;如果您使用同專案金鑰儲存功能,金鑰環會建立於資源專案。autokey
  • 金鑰命名:Autokey 建立的金鑰會遵循下列命名慣例:PROJECT_NUMBER-SERVICE_SHORT_NAME-RESOURCE_TYPE_DESCRIPTOR_NAME-RANDOM_HEX
  • 金鑰匯出:與所有 Cloud KMS 金鑰一樣,Autokey 建立的金鑰無法匯出。
  • 金鑰追蹤:與所有用於 CMEK 整合式服務的 Cloud KMS 金鑰一樣,只要與金鑰追蹤相容,Autokey 建立的金鑰就會在 Cloud KMS 資訊主頁中追蹤。

控制 Autokey 使用情形

您可以透過下列控制選項,控管機構中的 Autokey 使用方式:

  • Autokey 設定:在要使用 Autokey 的資料夾或專案中啟用這項功能。子項資源會沿用 Autokey 設定,但可以覆寫較低層級的設定。舉例來說,專案的 Autokey 設定會優先於父項資料夾的設定。這樣一來,您就能由下而上控管 Autokey。如要進一步瞭解如何啟用及停用 Autokey,請參閱「啟用 Cloud KMS Autokey」。
  • IAM:您可以透過 IAM 角色授權和拒絕政策,控管哪些使用者可以建立及更新 Autokey 設定,以及哪些使用者可以建立受 Autokey 保護的資源。這些 IAM 控制項可以在組織、資料夾或專案層級設定。主體可透過 IAM 角色授權,執行角色允許的操作。即使 IAM 拒絕政策中包含授予主體的角色,仍會封鎖個別權限。在父項資源上設定的 IAM 拒絕政策無法由較低層級設定的寬鬆政策覆寫,因此您可以從上而下控管哪些人可以啟用及使用 Autokey。如要進一步瞭解如何使用 IAM 拒絕政策控管機構中的 Autokey 使用情形,請參閱「使用 IAM 拒絕政策控管 Autokey」。
  • 組織政策:您可以透過自訂組織政策限制,控管 Autokey 的設定位置和方式。您可以在組織、資料夾或專案層級,強制執行組織政策限制。子資源會沿用組織政策,但可由在較低層級強制執行的政策覆寫。如要進一步瞭解如何使用自訂組織政策限制,控管機構中的 Autokey 使用情形,請參閱「使用自訂組織政策限制控管 Autokey 」。

相容服務

下表列出與 Cloud KMS Autokey 相容的服務:

服務 受保護的資源 索引鍵精細程度
AlloyDB for PostgreSQL
  • alloydb.googleapis.com/Cluster
  • alloydb.googleapis.com/Backup

只有透過 Terraform 或 REST API 建立的資源,才能整合 AlloyDB for PostgreSQL 和 Cloud KMS Autokey。

每個資源一個金鑰
Apigee
  • apigee.googleapis.com/Organization
  • apigee.googleapis.com/Instance

Apigee 與 Cloud KMS Autokey 的整合功能僅適用於使用 Terraform 或 REST API 建立的資源。

每個資源一個金鑰
Apigee API 中心
  • apihub.googleapis.com/ApiHubInstance

Apigee API 中心與 Cloud KMS Autokey 的整合功能,僅適用於使用 Terraform 或 REST API 建立的資源。

每個資源一個金鑰
Artifact Registry
  • artifactregistry.googleapis.com/Repository

Autokey 會在建立存放區時建立金鑰,用於所有儲存的構件。

每個資源一個金鑰
備份和災難復原服務
  • backupdr.googleapis.com/BackupVault
每個資源一個金鑰
GKE 備份
  • gkebackup.googleapis.com/BackupPlan

GKE 備份與 Cloud KMS Autokey 的整合功能,僅適用於使用 Terraform 或 REST API 建立的資源。

每個資源一個金鑰
BigQuery
  • bigquery.googleapis.com/Dataset

Autokey 會為資料集建立預設鍵。資料集中的資料表、模型、查詢和暫時性資料表會使用資料集預設金鑰。

Autokey 不會為資料集以外的 BigQuery 資源建立金鑰。如要保護不屬於資料集的資源,您必須在專案或機構層級建立自己的預設金鑰。

每個資源一個金鑰
Bigtable
  • bigtableadmin.googleapis.com/Cluster

Autokey 會為叢集建立金鑰。

Autokey 不會為叢集以外的 Bigtable 資源建立金鑰。

只有透過 Terraform 或 Google Cloud SDK 建立的資源,才能整合 Bigtable 和 Cloud KMS Autokey。

每個叢集一個金鑰
Cloud Run
  • run.googleapis.com/Service
  • run.googleapis.com/Job
每個專案位置各有一把金鑰
Cloud SQL
  • sqladmin.googleapis.com/Instance

Autokey 不會為 Cloud SQL BackupRun 資源建立金鑰。建立 Cloud SQL 執行個體的備份時,備份會以主要執行個體的客戶管理金鑰加密。

Cloud SQL 和 Cloud KMS Autokey 之間的整合功能,僅適用於使用 Terraform 或 REST API 建立的資源。

每個資源一個金鑰
Cloud Storage
  • storage.googleapis.com/Bucket

儲存空間 bucket 中的物件會使用 bucket 預設金鑰。Autokey 不會為 storage.object 資源建立金鑰。

每個 bucket 一個金鑰
Compute Engine
  • compute.googleapis.com/Disk
  • compute.googleapis.com/Image
  • compute.googleapis.com/Instance
  • compute.googleapis.com/MachineImage

快照會使用您要建立快照的磁碟金鑰。 Autokey 不會為 compute.snapshot 資源建立金鑰。

每個資源一個金鑰
Google Kubernetes Engine
  • container.googleapis.com/Cluster

Google Kubernetes Engine 與 Cloud KMS Autokey 的整合功能,僅適用於使用 Terraform 或 REST API 建立的資源。

每個叢集一個金鑰
Dataflow
  • dataflow.googleapis.com/Job
每個資源一個金鑰
Datastream
  • datastream.googleapis.com/Stream

Datastream 與 Cloud KMS Autokey 的整合功能,僅適用於使用 Terraform 或 REST API 建立的資源。

每個資源一個金鑰
Managed Service for Apache Airflow
  • composer.googleapis.com/Environment
每個資源一個金鑰
Managed Service for Apache Spark
  • dataproc.googleapis.com/Cluster
  • dataproc.googleapis.com/SessionTemplate
  • dataproc.googleapis.com/WorkflowTemplate
  • dataproc.googleapis.com/Batch
  • dataproc.googleapis.com/Session

叢集、SessionTemplate 和 WorkflowTemplate 資源:每個資源一個金鑰

批次和工作階段資源: 專案中每個位置各有一個金鑰

Memorystore for Redis
  • redis.googleapis.com/Instance
  • redis.googleapis.com/Cluster

只有透過 Terraform 或 REST API 建立的資源,才能整合 Memorystore for Redis 和 Cloud KMS Autokey。

每個資源一個金鑰
Memorystore for Valkey
  • memorystore.googleapis.com/Instance

只有使用 Terraform 或 REST API 建立的資源,才能整合 Memorystore for Valkey 和 Cloud KMS Autokey。

每個資源一個金鑰
Migrate to Virtual Machines
  • vmmigration.googleapis.com/MigratingVm
  • vmmigration.googleapis.com/Source

只有透過 Terraform 或 REST API 建立的資源,才能整合 Migrate to Virtual Machines 和 Cloud KMS Autokey。

每個資源一個金鑰
Pub/Sub
  • pubsub.googleapis.com/Topic
每個資源一個金鑰
Secret Manager
  • secretmanager.googleapis.com/Secret

只有使用 Terraform 或 REST API 建立的資源,才能整合 Secret Manager 和 Cloud KMS Autokey。

每個專案位置各有一把金鑰
Secure Source Manager
  • securesourcemanager.googleapis.com/Instance
每個資源一個金鑰
Spanner
  • spanner.googleapis.com/Database

Spanner 與 Cloud KMS Autokey 的整合功能僅適用於使用 Terraform 或 REST API 建立的資源。

每個資源一個金鑰
Filestore
  • file.googleapis.com/Instance
  • file.googleapis.com/Backup
每個資源一個金鑰
Workflows
  • workflows.googleapis.com/Workflow

只有使用 Terraform 或 REST API 建立的資源,才能整合 Workflows 和 Cloud KMS Autokey。

每個資源一個金鑰

後續步驟