被管理服務的客戶管理鍵

預覽

此功能已在公共預覽

若要為托管服務使用客戶管理鍵,工作區必須位於Databricks平台的E2版本Beplay体育安卓版本或者使用Databricks為該特性啟用的自定義計劃。所有新的Databricks帳戶和大多數現有帳戶現在都是E2。如果您不確定您擁有的帳戶類型,請與您的Databricks代表聯係。

工作區數據平麵vpc可以位於AWS區域中ap-northeast-1ap-northeast-2ap-south-1ap-southeast-1ap-southeast-2ca-central-1一來就eu-west-2eu-central-1us-east-1us-east-2us-west-1,us-west-2.,不能使用VPCus-west-1如果你想用customer-managed鍵為加密。

概述

要對數據進行額外的控製,可以添加自己的密鑰來保護和控製對某些類型數據的訪問。Databricks有兩個由客戶管理的關鍵特性。要比較它們,請參見用於加密的客戶管理密鑰

管理Databricks中的服務數據控製飛機靜止時加密。您可以為托管服務添加客戶管理密鑰,以幫助保護和控製對以下類型加密數據的訪問:

在為工作空間添加客戶管理密鑰加密後,Databricks將使用您的密鑰來控製對密鑰的訪問,該密鑰將加密對工作空間的受管理服務數據的未來寫操作。現有數據不會重新加密。數據加密密鑰緩存在內存中,用於多次讀和寫操作,並定期從內存中取出。對該數據的新請求需要向雲服務的密鑰管理係統發出另一個請求。如果刪除或撤銷密鑰,則在緩存時間間隔結束時,對受保護數據的讀寫將失敗。

您可以稍後旋轉(更新)客戶管理的密鑰。看到為正在運行的工作區上的受管服務添加或旋轉客戶管理鍵

您可以選擇在兩個不同的加密用例之間共享Databricks密鑰配置對象(它引用您的密鑰):此功能(托管服務)和工作空間存儲的客戶管理鍵.注意,在這兩種情況下,您都可以在期間將密鑰及其Databricks密鑰配置添加到Databricks工作空間工作區創建或者稍後再添加,但隻支持托管服務稍後旋轉(更新)密鑰

請注意

的外部存儲的數據不加密控製飛機.另外,你可以加密根S3桶中的數據和Classic數據平麵中的集群EBS卷

向新的工作區添加用於托管服務的客戶管理鍵

方法創建工作區時,若要為受管服務添加客戶管理密鑰,則必須添加該密鑰賬戶API.你也可以使用磚起程拓殖的提供者而且databricks_mws_customer_managed_keys

創建一個關鍵

配置客戶管理密鑰:

  1. 中的說明在AWS KMS中創建或選擇對稱密鑰創建對稱cmk查看鍵

  2. 複製這些值。當你創建工作區

    • 關鍵是-從控製台或API獲取ARN在攻擊字段)。

    • 關鍵的別名—別名指定AWS KMS中客戶管理密鑰的顯示名稱。在加密操作中使用別名來標識客戶管理的密鑰。有關更多信息,請參閱AWS文檔:AWS:公裏:別名而且使用別名

  3. 關鍵政策頁簽,切換至策略視圖。編輯密鑰策略,以便Databricks可以使用該密鑰執行加密和解密操作。將以下內容添加到關鍵策略中“聲明”

    “席德”"允許Databricks對控製平麵的托管服務使用KMS密鑰"“效應”“允許”“校長”“AWS”“攻擊:aws:我::414351767826:根”},“行動”“公裏:加密”“公裏:解密”],“資源”“*”

    有關更多信息,請參閱AWS文章編輯鍵

為新工作區注冊一個鍵

要為新工作區注冊密鑰,請遵循中的說明使用Account API創建一個新的工作空間,特別是步驟5:配置客戶管理的密鑰(可選)

這些說明說明了如何有選擇地共享此密鑰加密工作區存儲

為正在運行的工作區上的受管服務添加或旋轉客戶管理鍵

您可以添加一個客戶管理密鑰,或者在運行的工作區上為托管服務旋轉(更新)一個現有的客戶管理密鑰補丁請求用新的鍵配置ID更新工作區。

如果向正在運行的工作空間中添加受管服務的客戶管理密鑰,Databricks將使用它對受管服務數據進行將來的寫操作。導出並重新導入筆記本電腦以更新其存儲。現有數據不會重新加密。

客戶管理的加密密鑰有兩種用例:

您可以選擇配置其中任何一個、一個或兩個。如果您選擇為這兩個用例實現加密,那麼您可以有選擇地為這些用例共享密鑰,甚至有選擇地共享相同的配置對象。

在添加鍵的時候,這兩個用例之間有重要的區別:

  • 對於用於托管服務的客戶管理密鑰,您可以在工作空間創建期間配置它,將密鑰添加到正在運行的工作空間,或者稍後旋轉(更新)密鑰。

  • 對於用於存儲的客戶管理密鑰,您可以在工作空間創建期間配置它向正在運行的工作區添加鍵,但你不能稍後旋轉(更新)密鑰。

您可以跨工作空間共享客戶管理的密鑰或其密鑰配置對象。當創建一個新的工作空間時,一個密鑰配置可以通過設置它來表示兩個加密用例use_cases字段以包含兩個枚舉值。

要使用相同的密鑰實現一個加密用例或兩個加密用例,隻執行一次以下過程。要為具有不同密鑰的兩個加密用例添加加密,請執行該過程兩次,每個用例一次。

  1. 創建AWS KMS密鑰。遵循以下任何一節中的說明,它們僅在人類可讀的描述字段(sid),以識別用例。為創建密鑰管理服務工作區存儲.要共享兩個用例的密鑰和配置,請更新sid相應的字段。

  2. 若要在Databricks注冊您的KMS密鑰,請致電創建客戶管理的密鑰配置API帖子/賬戶/ <帳戶id > / customer-managed-keys).

    傳遞以下參數:

    • use_cases—指定使用該鍵的用例的數組,指定以下一種或兩種:

      • MANAGED_SERVICES:管理服務加密,包括控製平麵的notebook、secret、Databricks SQL查詢數據。

        • 存儲:該密鑰用於加密工作區存儲,其中包括工作區的DBFS根卷和集群EBS卷。

      • aws_key_info:具有以下屬性的JSON對象:

        • key_arn: AWS KMS密鑰ARN。注意,Databricks從密鑰ARN推斷AWS區域。

        • key_alias: (可選AWS KMS密鑰別名。

        • reuse_key_for_cluster_volumes: (可選)僅在use_cases數組中包含了存儲,這指定是否也使用密鑰加密集群EBS卷。默認值為真正的,這意味著Databricks也對集群卷使用該密鑰。如果你把它設為, Databricks不使用指定的密鑰加密EBS卷。在這種情況下,您的Databricks EBS卷使用默認的AWS SSE加密或啟用了加密默認情況下AWS帳戶級別的EBS加密, AWS使用您提供給它們的單獨密鑰強製執行帳戶級別的EBS加密。注意,如果reuse_key_for_cluster_volumes真正的如果您撤銷該密鑰的權限,則不會影響正在運行的集群,但會影響新的和重新啟動的集群。

    示例請求:

    curl -X POST -n“https://accounts.cloud.www.eheci.com/api/2.0/accounts/ < databricks-account-id > / customer-managed-keys '- d”{“use_cases”:“MANAGED_SERVICES”、“存儲”," aws_key_info ": {:“key_arn攻擊:aws:公裏:<地區>:< aws-account-id >:鍵/ <鍵id >”,:“key_alias my-example-key”,“reuse_key_for_cluster_volumes”:真的} '

    示例響應:

    “use_cases”“MANAGED_SERVICES”“存儲”],“customer_managed_key_id”“< databricks-key-config-id >”“creation_time”1586447506984“account_id”“< databricks-account-id >”“aws_key_info”“key_arn”“攻擊:aws:公裏:<地區>:< aws-account-id >:鍵/ <鍵id >”“key_alias”“my-example-key”“reuse_key_for_cluster_volumes”真正的“key_region”地區“< >”
  3. 從響應JSON中複製customer_managed_key_id.在下一步中使用該ID設置工作區配置對象的屬性managed_services_customer_managed_key_idstorage_customer_managed_key_id或者兩者都有,這取決於此對象表示的加密用例。

    請注意

    如果您計劃為兩個CMK用例添加密鑰,請注意,在您已經設置了密鑰之後,工作區存儲加密不能旋轉(更新)。不要嚐試旋轉工作空間存儲的現有鍵。

  4. 終止所有正在運行的集群、池和SQL倉庫。

  5. 使用Account API使用您的關鍵配置更新工作區。使用磚賬戶API 2.0更新您的工作空間。

    重要的

    在運行密鑰旋轉命令後,必須使您的舊KMS密鑰對Databricks可用24小時。

    調用Account API操作更新一個工作區補丁/賬戶/ {account_id} /工作區/ {workspace_id}).

    要為托管服務添加鍵,惟一必需的參數是managed_services_customer_managed_key_id.將其設置為JSON響應注冊關鍵配置

    例如:

    curl -X PATCH -n“https://accounts.cloud.www.eheci.com/api/2.0/accounts/ < databricks-account-id > /工作區/ < workspace-id >”- d”{:“managed_services_customer_managed_key_id < databricks-key-config-id >”,} '

    請注意

    如果您計劃為這兩個用例添加密鑰,還需要設置storage_customer_managed_key_id變量設置為相同值。

  6. 如果您同時為托管服務和存儲用例添加鍵,請在API更新後至少等待20分鍾再繼續。在此期間,您不能啟動任何集群或使用DBFS API。如果僅為托管服務用例添加密鑰,則可以省略20分鍾的等待時間。

  7. 重新啟動在上一步中終止的所有集群、池和SQL倉庫。