顧客管理キーの暗号化を構成する
アカウント管理者は、Databricks アカウント コンソールを使用して、顧客管理キーの暗号化を構成できます。 アカウント キー構成 APIを使用して顧客管理キーを構成することもできます。
顧客管理キーを追加するには、Databricks の使用例が 2 つあります。
Databricks コントロール プレーン内のマネージドサービス データ (ノートブック、シークレット、および Databricks SQL クエリ データ)。
ワークスペース ストレージ (ワークスペース ストレージ バケットと、従来のコンピュート プレーン内のコンピュート リソース の EBS ボリューム)。
注:
EBS ボリュームの顧客管理キーは、サーバレス コンピュート リソースには適用されません。 サーバレス コンピュート リソースのディスクの寿命は短く、サーバレス ワークロードのライフサイクルに関連付けられています。 コンピュート リソースが停止またはスケールダウンされると、VM とそのストレージは破壊されます。
カスタマー マネージド キーの使用例を比較するには、 「カスタマー マネージド キーの使用例の比較」を参照してください。
顧客管理キーをサポートするリージョンのリストについては、 「Databricks のクラウドとリージョン」を参照してください。 この機能には、 Enterprise 価格レベルが必要です。
暗号化キーの構成とは
顧客管理キーは、暗号化キー構成を使用して管理されます。 暗号化キー構成は、クラウドのキーを参照するアカウント レベルのオブジェクトです。
アカウント管理者はアカウント コンソールで暗号化キー構成を作成し、暗号化キー構成を 1 つ以上のワークスペースに添付できます。
Databricks キー構成オブジェクトは、2 つの異なる暗号化ユース ケース (マネージド サービスとワークスペース ストレージ) 間で共有できます。
ワークスペースの作成時に暗号化キー構成を Databricks ワークスペースに追加したり、暗号化キー構成を使用して既存のワークスペースを更新したりできます。
ステップ 1: AWS KMS でキーを作成または選択する
ワークスペースストレージとマネージドサービスのユースケース間で同じ AWS KMS キーを使用できます。
「 対称 CMKの作成」または「キーの表示」の手順に従って、AWS KMS で対称キーを作成または選択します。
KMS キーは、ワークスペースと同じ AWS リージョンに存在する必要があります。
後のステップで必要になるこれらの値をコピーします。
キー ARN : コンソールまたは API (JSON 応答の
Arn
フィールド) から ARN を取得します。キーのエイリアス: エイリアスは、AWS KMS の CMK の表示名を指定します。
[キー ポリシー]タブで、ポリシー ビューに切り替えます。 キー ポリシーを編集して以下のテキストを追加し、Databricks がキーを使用して暗号化および復号化操作を実行できるようにします。
以下の暗号化ユースケースのタブを選択し、 「コピー」をクリックします。
JSON を
"Statement"
セクションのキー ポリシーに追加します。 既存のキー ポリシーは削除しないでください。ポリシーでは AWS アカウント ID
414351767826
を使用します。 Databricks on AWS GovCloudで Databricksを使用している場合は、 AWSアカウント ID044793339203
を使用します。DatabricksがクラスターEBSボリュームを暗号化できるように、ポリシーの
<cross-account-iam-role-arn>
を、Databricksがアカウントにアクセスできるように作成したクロスクラウドIAMロールのARNに置き換えてください。これは、Databricksワークスペース用にDatabricks認証情報を登録するために使用するのと同じロールのARNです。{ "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" } } }
{ "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)"] } } }
DatabricksがクラスターEBSボリュームを暗号化できるように、ポリシーの
<cross-account-iam-role-arn>
を、Databricksがアカウントにアクセスできるように作成したクロスクラウドIAMロールのARNに置き換えてください。これは、Databricksワークスペース用にDatabricks認証情報を登録するために使用するのと同じロールのARNです。{ "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 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: クロスアカウント IAM ロールにアクセス ポリシーを追加する (オプション)
キーが KMSAWS、ワークスペースのデプロイに使用したクロスアカウント IAM ロールとは異なる アカウントにある場合は、そのクロスアカウント IAM ロールにポリシーを追加する必要があります。このポリシーにより、Databricks がキーにアクセスできるようになります。 KMSキーが、ワークスペースのデプロイに使用したクロスアカウント IAM ロールと同じAWSアカウントにある場合は、この手順を実行する必要はありません。
管理者権限を持つユーザーとして AWS マネジメントコンソールにログインし、 IAMコンソールに移動します。
左側のナビゲーション ウィンドウで、[ ロール] をクリックします。
ロールのリストで、 用に作成した クロスアカウント IAM ロールDatabricks をクリックします。
インラインポリシーを追加します。
[アクセス許可]タブで、 [インライン ポリシーの追加]をクリックします。
ポリシーエディターで、「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" } } }
「ポリシーの確認」をクリックします。
「名前」フィールドにポリシー名を入力します。
「ポリシーの作成」をクリックします。
ステップ 3: 新しいキー構成を作成する
Databricks アカウント コンソールを使用して、Databricks 暗号化キー構成オブジェクトを作成します。 複数のワークスペースにわたって暗号化キー構成を使用できます。
アカウント管理者として、アカウントコンソールにログインします。
サイドバーで、 「クラウド リソース」をクリックします。
「暗号化キー構成」タブをクリックします。
「 暗号化キーの追加」をクリックします。
この暗号化キーのユースケースを選択します。
マネージドサービスとワークスペースストレージの両方
マネージドサービス
ワークスペースストレージ
[AWS キー ARN]フィールドに、上でコピーしたキー ARN を入力します。
[AWS キー エイリアス]フィールドに、上でコピーしたキー エイリアスを入力します。
「追加」をクリックします。
名前をコピーします。
ステップ 4: キー構成をワークスペースに追加する
作成した暗号化キー構成をワークスペースに追加します。 アカウント コンソールを使用して暗号化キーをワークスペースに追加することはできません。 このセクションでは、 Databricks CLIを使用して暗号化キーをワークスペースに追加します。 アカウント APIを使用することもできます。
暗号化キー設定を使用して新しいワークスペースを作成するには、 「アカウント API を使用してワークスペースを作成する」の手順に従います。
ワークスペースで実行中のコンピュートをすべて終了します。
キー構成でワークスペースを更新します。
マネージドサービスのキーを追加するには、
managed_services_customer_managed_key_id
を上でコピーしたキー名に設定します。ワークスペース ストレージのキーを追加するには、
storage-customer-managed-key-id
を上でコピーしたキー名に設定します。<workspace-id>
を Databricks ワークスペース ID に置き換えます。例:
databricks account workspaces update <workspace-id> --json '{ "managed_services_customer_managed_key_id": "<databricks-key-name>", "storage-customer-managed-key-id": "<databricks-key-name>", }'
ワークスペースストレージのキーを追加する場合は、コンピュートを開始するか DBFS API を使用するまで少なくとも 20 分待ってください。
前のステップで終了したコンピュートを再開します。
既存のキーをローテーションする
マネージドサービスの顧客管理キーについては、既存のキーのみローテーション (更新) できます。 顧客管理キーの既存のキーをストレージ用にローテーションすることはできません。 ただし、AWS は、キー ARN を変更せずに基になるキーをローテーションする自動 CMK マスターキー ローテーションを提供します。 CMK マスター キーの自動ローテーションは、Databricks カスタマーが管理するストレージ用のキーと互換性があります。 詳細については、 「AWS KMS キーのローテーション」を参照してください。
マネージドサービスの既存のキーをローテーションするには、 「ステップ 4: キー構成をワークスペースに追加する」の指示に従います。 古い KMS キーを Databricks で利用できるように 24 時間維持する必要があります。