Unity Catalog の顧客管理キー
プレビュー
この機能は パブリック プレビュー段階です。
この機能には、エンタープライズ層が必要です。
Unity Catalogの顧客管理キー (CMK) を使用すると、 Databricksによって管理されるデータを独自の暗号化キーで保護できます。 データの機密性やコンプライアンス要件に基づいて、カタログごとに個別のキーを使用して、カタログ レベルで暗号化を構成できます。
マネージド サービスおよびワークスペース ストレージの CMK については、 「マネージド サービスの顧客管理キー」を参照してください。
tc
Unity Catalog の CMK とは何ですか?
Unity Catalogの CMK を使用すると、 AWS Key Management サービス ( KMS ) からの独自の暗号化キーを使用して、仮想ストレージによってバックアップされたUnity Catalogカタログ内のデータを保護できます。 きめ細かな制御を行うために、特定のカタログに対して個別の顧客管理キーを構成できます。データアクセスを拒否するには、AWS KMS のキーを取り消します。
Unity CatalogにおけるCMKの利点
- きめ細かな暗号化制御: カタログ レベルで暗号化を管理し、データの機密性やコンプライアンス要件に基づいて、異なるカタログで異なる暗号化キーを使用できるようにします。
- マルチキー保護: CMK は、ストレージ層でのアクセスからデータを保護します。データにアクセスできるのは、きめ細かな Unity Catalog ポリシーに基づいて承認されたワークスペースのみです。
- コンプライアンスと監査: 顧客が管理する暗号化キーの規制要件を満たし、キーのアクセスと使用の監査証跡を維持します。
- キーの失効: AWS KMS の CMK へのアクセスを取り消して、データに対する完全な所有権を保持します。
- 集中キー管理: 既存のセキュリティ慣行に準拠しながら、すべての暗号化キーを AWS KMS を通じて管理します。
Unity CatalogのCMKの仕組み
AWS 上の Unity Catalog の CMK は、AWS KMS キー、CMK 構成、カタログレベルの暗号化設定を使用して、顧客が制御する暗号化を適用します。AWS 上の Unity Catalog の CMK の中心となるコンポーネントは次のとおりです。
- AWS KMSキー: AWS Key Management サービスで暗号化キーを作成および管理します。 これらのキーは、Databricks が Unity Catalog カタログ内のデータを保護するために使用するマルチキー暗号化階層の一部です。
- CMK 設定: Databricksアカウント コンソールで CMK 設定を作成し、 DatabricksにAWS KMSキーを登録します。 CMK 構成は、カタログに CMK を適用する前に作成する必要があるアカウント レベルのオブジェクトです。
- IAM アクセス許可: キーポリシーを更新するか、アカウントコンソールに表示されるガイダンスに従って、Databricks ルート ARN に AWS KMS キーへのアクセス権を付与する必要があります。
- カタログ レベルの暗号化: Catalog Explorer またはUnity Catalog APIを使用して、個々のカタログで直接暗号化を構成します。 CMK 設定を使用してカタログを作成または更新すると、Databricks は顧客管理キーを使用してそのカタログに書き込まれたすべてのデータを暗号化します。これは、デフォルトのストレージによってバックアップされるカタログにのみ適用されます。
- 動的適用: CMK で保護されたカタログにデータが書き込まれると、Databricks は KMS キーを使用してデータを暗号化します。データが読み取られると、Databricks は AWS KMS に復号化を要求します。キーへの Databricks アクセスを取り消すと、復号化が失敗し、データにアクセスできなくなります。
制限事項
- この機能は、Databricks アカウント コンソールまたは REST API を使用してのみ構成できます。Terraform サポートは利用できません。
- この機能は、デフォルトのストレージによってバックアップされるカタログにのみ適用されます。外部保存場所を持つカタログには適用されません。
前提条件
AWS で Unity Catalog の CMK を設定する前に、以下があることを確認してください。
- アカウント管理者のアクセス許可: アカウント コンソールで CMK 構成を作成するには、 Databricksアカウント管理者である必要があります。
- AWS KMS キー: AWS アカウントに既存の AWS KMS キーが存在している必要があります。このキーはアクティブな状態である必要があります。次の形式のキー ARN をコピーします:
arn:aws:kms:<region>:<account-id>:key/<key-id>。 - AWS IAM 権限: Databricks ルート ARN が KMS キーにアクセスできることを確認します。「顧客管理キーの構成」のガイダンスに従うか、CMK アカウント ページで生成された手順を使用します。
- Unity Catalog権限: CMK を使用してカタログを作成または更新するには、 Unity Catalogで
CREATE CATALOGおよびUSE CATALOG権限が必要です。
Unity Catalog用のCMKを構成する
次のステップに従って、 AWS上のUnity Catalogカタログの顧客管理キーを設定します。
ステップ 1: アカウントコンソールで CMK 構成を作成する
必要な権限: アカウント管理者
CMK 設定の作成DatabricksでAWS KMSキーを登録します。
-
Databricks アカウント コンソールで、 [セキュリティ] > [暗号化キー] に移動します。
-
[暗号化キーの追加] をクリックします。
-
暗号化キーの設定を構成します。
- 名前 :
finance-catalog-cmkやpii-data-cmkなど、CMK 構成のわかりやすい名前を入力します。 - 使用例 : マネージドサービス または マネージドサービスとワークスペースストレージの 両方を選択します。
- キー ARN : AWS KMS キー ARN を入力します。
- 名前 :
-
[追加] をクリックして CMK 構成を作成します。
-
アカウント コンソールから CMK 構成 ID をコピーします。カタログを作成または更新するときにこの ID を使用します。
ステップ 2: DatabricksにKMSキーへのアクセスを許可します
CMK 構成を作成したら、Databricks ルート ARN に AWS KMS キーへのアクセス権を付与する必要があります。
- AWS コンソールで、KMS キーに移動します。
- キー ポリシーを更新して、Databricks ルート ARN に必要なアクセス許可 (
kms:Encrypt、kms:Decrypt、kms:GenerateDataKey*、kms:DescribeKey) を付与します。 - 「顧客管理キーの構成」のガイダンスに従うか、 Databricksアカウント コンソールに表示される生成された手順を使用します。
ステップ 3: CMK を使用して新しいカタログを作成する
必要な権限: Unity Catalog内のCREATE CATALOG
CMK 保護を備えた新しいカタログを作成するには、Unity Catalog API を使用します。
curl -X POST \
-H "Authorization: Bearer <api_token>" \
-H "Content-Type: application/json" \
https://<workspace_url>/api/2.1/unity-catalog/catalogs \
-d '{
"name": "<catalog_name>",
"comment": "Catalog with customer-managed encryption",
"storage_mode": "DEFAULT_STORAGE",
"encryption_settings": {
"customer_managed_key_id": "<cmk-id>"
}
}'
次の値を置き換えます。
<workspace_url>: Databricks ワークスペースの URL (例:https://dbc-1234567-a8b9.cloud.databricks.com)<api_token>: Databricks個人アクセストークン<catalog_name>: 新しいカタログの名前 (例:finance_dataまたはcustomer_pii)<cmk-id>: ステップ 1 の CMK 構成 ID
ステップ 4: CMK を使用して既存のカタログを更新する
必要な権限: カタログまたはカタログの所有権に対するMANAGE
デフォルトのストレージを使用する既存のカタログで CMK 保護を追加または変更するには:
- カタログ エクスプローラーで、カタログ名をクリックします。
- [詳細] タブをクリックします。
- [詳細設定] で、 [暗号化設定] をクリックします。
- ダイアログで、顧客管理キーを選択します。
- 保存 をクリックします。
これらのステップを繰り返すことで、いつでもカタログに関連付けられたキーを変更できます。 カタログで CMK を有効にした後は、無効にすることはできません。
既存のカタログに CMK を追加すると、Databricks は顧客管理キーを使用してカタログに書き込まれた新しいデータのみを暗号化します。Databricks が管理するキーは既存のデータを引き続き暗号化します。すべてのデータを顧客管理キーで暗号化するには、既存のデータを書き換える必要があります。
CMK構成を確認する
カタログが CMK で構成されていることを確認するには、 Unity Catalog API使用してカタログの詳細を取得します。
curl -X GET \
-H "Authorization: Bearer <api_token>" \
-H "Content-Type: application/json" \
"https://<workspace_url>/api/2.1/unity-catalog/catalogs/<catalog_name>"
応答には、CMK で構成されたカタログのencryption_settingsフィールドが含まれます。
{
"name": "<catalog_name>",
"storage_mode": "DEFAULT_STORAGE",
"encryption_settings": {
"customer_managed_key_id": "<cmk-id>"
}
}
暗号化されたデータへのアクセスを取り消す
顧客管理キーで暗号化されたデータへのDatabricksのアクセスを拒否するには、 AWS KMSでキーを無効にします。
- AWS コンソールで、KMS キーに移動します。
- キーを無効にします。
キーを無効にすると、Databricks はこの CMK 構成を使用してカタログ内のデータを復号化できなくなります。これらのカタログからデータを読み取ろうとすると、復号化エラーが発生して失敗します。
キーを無効にしてからデータ アクセスが拒否されるまでの間に遅延が発生する可能性があります。
アクセスを復元するには、AWS KMS でキーを再度有効にします。