メインコンテンツまでスキップ

暗号化のための顧客管理キーの構成

アカウント 管理者は、 Databricks アカウント コンソールを使用して、暗号化用の顧客管理キーを構成できます。 また、アカウント Key Configurations APIを使用して、顧客管理のキーを設定することもできます。

顧客管理キーの追加には、次の 2 つの Databricks ユースケースがあります。

  • Databricksコントロールプレーン内のマネージドサービスデータ (ノートブック、シークレット、Databricks SQLクエリデータ)。

  • ワークスペースストレージ (ワークスペース ストレージ バケットと、クラシック コンピュート平面内のコンピュート リソースの EBS ボリューム)。

注記

EBS ボリュームの顧客管理キーは、サーバレス コンピュート リソース には適用されません 。 サーバレス コンピュート リソースのディスクは有効期間が短く、サーバレス ワークロードのライフサイクルに関連付けられています。 コンピュート リソースを停止またはスケールダウンすると、VM とそのストレージは破棄されます。

顧客管理キーのユースケースを比較するには、「 顧客管理キーのユースケースの比較」を参照してください。

顧客管理キーをサポートするリージョンの一覧については、「 Databricks クラウドとリージョン」を参照してください。 この機能には 、Enterprise 価格レベルが必要です。

暗号化キーの設定とは何ですか?

顧客管理キーは、暗号化キー構成で管理されます。 暗号化キーの設定は、クラウドのキーを参照するアカウントレベルのオブジェクトです。

アカウント admins は、アカウントコンソールで暗号化キーの設定を作成し、暗号化キーの設定を 1 つ以上のワークスペースにアタッチできます。

Databricks キー設定オブジェクトは、2 つの異なる暗号化ユースケース (マネージドサービスとワークスペースストレージ) 間で共有できます。

ワークスペースの作成時に Databricks ワークスペースに暗号化キー構成を追加することも、暗号化キー構成を使用して既存のワークスペースを更新することもできます。

ステップ 1: AWS KMS でキーを作成または選択する

ワークスペースストレージとマネージドサービスのユースケース間で同じ AWS KMS キーを使用できます。

  1. 対称 CMK の作成 」または 「キーの表示」の手順に従って、AWS KMS で対称キーを作成または選択します。

KMS キーは、ワークスペースと同じ AWS リージョンにある必要があります。

  1. これらの値をコピーします。これは、後の手順で必要になります。

    • キー ARN : コンソールまたは API (JSON レスポンスの Arn フィールド) から ARN を取得します。
    • キーエイリアス : エイリアスは、AWS KMS の CMK の表示名を指定します。
  2. [ キー ポリシー ] タブで、ポリシー ビューに切り替えます。 キーポリシーを編集して、以下の JSON を "Statement" セクション に追加します 。既存のキー ポリシーは削除しないでください。

    以下の暗号化の使用例のタブを選択し、[ コピー ] をクリックします。

    このポリシーでは、AWS アカウント ID 414351767826を使用します。 を使用している場合は、 には Databricks on AWSGovCloudAWSアカウントID044793339203 AWSGovCloud170661010020AWSGovCloud、DoDには を使用します 。

To allow Databricks to encrypt cluster EBS volumes, replace the <cross-account-iam-role-arn> in the policy with the ARN for the cross-cloud IAM role that you created to allow Databricks to access your account. This is the same Role ARN that you use to register a Databricks credential configuration for a Databricks workspace.

JSON
{
"Sid": "Allow Databricks to use KMS key for DBFS",
"Effect": "Allow",
"Principal":{
"AWS":"arn:aws:iam::414351767826:root"
},
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:ReEncrypt*",
"kms:GenerateDataKey*",
"kms:DescribeKey"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:PrincipalTag/DatabricksAccountId": ["<databricks-account-id>(s)"]
}
}
},
{
"Sid": "Allow Databricks to use KMS key for managed services in the control plane",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::414351767826:root"
},
"Action": [
"kms:Encrypt",
"kms:Decrypt"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:PrincipalTag/DatabricksAccountId": ["<databricks-account-id>(s)"]
}
}
},
{
"Sid": "Allow Databricks to use KMS key for EBS",
"Effect": "Allow",
"Principal": {
"AWS": "<cross-account-iam-role-arn>"
},
"Action": [
"kms:Decrypt",
"kms:GenerateDataKey*",
"kms:CreateGrant",
"kms:DescribeKey"
],
"Resource": "*",
"Condition": {
"ForAnyValue:StringLike": {
"kms:ViaService": "ec2.*.amazonaws.com"
}
}
}
注記

Databricks アカウント ID を取得するには、「 アカウント ID を見つける」に従ってください。

ステップ 2: アクセス ポリシーを cross-account IAMロールに追加する (オプション)

キーが、ワークスペースのデプロイに使用したクロスアカウントIAM ロール KMSとは異なるAWS アカウントにある場合は、そのクロスアカウント ロールにポリシーを追加する必要があります。IAMこのポリシーにより、Databricks はキーにアクセスできます。 キーが、ワークスペースのデプロイに使用したクロス アカウント KMSロールと同じ アカウントにある場合は、この手順を実行する必要はありません。AWSIAM

  1. 管理者権限を持つユーザーとして AWS マネジメントコンソール にログインし、 IAM コンソールに移動します。

  2. 左側のナビゲーションペインで、[ ロール] をクリックします。

  3. IAMロールのリストで、 用に作成した クロスアカウント ロールDatabricks をクリックします。

  4. インラインポリシーを追加します。

    1. [アクセス許可 ] タブで、[ インライン ポリシーの追加 ] をクリックします。

      インラインポリシー

    2. ポリシーエディターで、「 JSON 」タブをクリックします。

      JSONエディター

    3. 以下のアクセスポリシーをコピーします

      JSON
      {
      "Sid": "AllowUseOfCMKInAccount <AccountIdOfCrossAccountIAMRole>",
      "Effect": "Allow",
      "Action": ["kms:Decrypt", "kms:GenerateDataKey*", "kms:CreateGrant", "kms:DescribeKey"],
      "Resource": "arn:aws:kms:<region>:<AccountIdOfKMSKey>:key/<KMSKeyId>",
      "Condition": {
      "ForAnyValue:StringLike": {
      "kms:ViaService": "ec2.*.amazonaws.com"
      }
      }
      }
    4. ポリシーの確認 」をクリックします。

    5. 名前 」フィールドにポリシー名を入力します。

    6. ポリシーの作成 」をクリックします。

ステップ 3: 新しいキー設定を作成する

Databricks アカウント コンソールを使用して、Databricks 暗号化キー構成オブジェクトを作成します。 暗号化キー構成は、複数のワークスペースで使用できます。

  1. アカウント管理者として、アカウントコンソールにログインします。

  2. サイドバーで、 [クラウドリソース ] をクリックします。

  3. [暗号化キーの設定 ] タブをクリックします。

  4. [ 暗号化キーの追加 ] をクリックします。

  5. この暗号化キーの使用例を選択します。

    • マネージドサービスとワークスペースストレージの両方
    • マネージドサービス
    • ワークスペースストレージ
  6. [AWS key ARN ] フィールドに、上記でコピーしたキー ARN を入力します。

  7. [AWS キーエイリアス ] フィールドに、上記でコピーしたキーエイリアスを入力します。

  8. [ 追加 ] をクリックします。

  9. [構成] で、 ID をコピーします。

手順 4: キー設定をワークスペースに追加する

暗号化キー設定を使用して新しいワークスペースを作成するには、「カスタムAWS設定を使用してワークスペースを作成する」または「アカウント APIを使用してワークスペースを作成する」の手順に従います。

アカウントコンソールを使用して、既存のワークスペースに暗号化キーを追加することはできません。 Databricks CLI を使用して既存のワークスペースに暗号化キーを追加するには、次の手順を実行します。

注記

アカウント APIを使用することもできます。

  1. Databricksワークスペースで実行中のすべてのコンピュート リソースを終了します。

  2. キー構成でワークスペースを更新します。

    マネージドサービスのキーを追加するには、上記でコピーしたキーIDに managed_services_customer_managed_key_id を設定します。

    ワークスペース ストレージのキーを追加するには、 storage-customer-managed-key-id を上記でコピーしたキー ID に設定します。

    <workspace-id> を Databricks ワークスペース ID に置き換えます。

    例えば:

    Bash
    databricks account workspaces update <workspace-id> --json '{
    "managed_services_customer_managed_key_id": "<databricks-encryption-key-id>",
    "storage-customer-managed-key-id": "<databricks-encryption-key-id>",
    }'
  3. ワークスペース ストレージのキーを追加する場合は、少なくとも 20 分待ってコンピュートを開始するか、 DBFS APIを使用します。

  4. 前の手順で終了したコンピュートを再起動します。

既存のキーをローテーションする

既存のキーをローテーション(更新)できるのは、マネージドサービスの顧客管理キーのみです。 既存のキーをストレージの顧客管理キーにローテーションすることはできません。 ただし、AWS は自動 CMK マスターキーローテーションを提供しており、キー ARN を変更せずに基礎となるキーをローテーションします。 CMK マスターキーの自動ローテーションは、ストレージ用の Databricks 顧客管理キーと互換性があります。 詳細については、「AWS KMS キーのローテーション」を参照してください。

マネージドサービスの既存のキーをローテーションするには、「 ステップ 4: キー設定をワークスペースに追加する」の手順に従います。 古い KMS キーを Databricks で 24 時間使用できるようにしておく必要があります。