Customer-managed keys for managed services | Databricks on AWS [2021/8/30時点]の翻訳です。
注意
本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては英語ドキュメントを参照ください。
プレビュー
本機能はパブリックプレビューです。
顧客管理キーをマネージドサービスに適用するには、ワークスペースはE2バージョンのDatabricksプラットフォームにある、あるいはDatabricksによって本機能が有効化されたカスタムプランを利用している必要があります。すべての新規Databricksアカウント、ほとんどの既存アカウントはE2となっています。アカウントタイプが不明の場合には、Databricks担当にお問い合わせください。
概要
セキュリティ感度の高い企業には、パブリッククラウドの利用、SaaSアプリケーション、サードパーティサービスのリスクを評価を行うリスク管理プロセスが存在します。サードパーティのサービスプロバイダーのリスク低減は、外部サービスを利用した堅牢なケースの構築に役立ちます。いくつかの規制の厳しい業界においては、彼ら自身が管理するキーにを用いた幾つかのタイプのデータ暗号化を要求します。これらの対策は、個人情報や他の秘密情報を定期的に取り扱う領域においては非常に重要なものとなります。
ワークスペースのノートブックは主にDatabricksのコントロールプレーンに格納され、DatabricksのAWSアカウントの主要なDatabricksサービスからアクセスされます。Databricksプラットフォームでは、ご自身のキーを用いてこれらのノートブックを暗号化するように設定することができます。ワークスペースを作成する際にこのキーを指定する必要があります。
お使いのマネージドキーは以下の暗号化にも使用されます。
- シークレット
- Databricks SQLのクエリーとクエリー履歴
注意
この機能は、コントロールプレーン外に格納されたデータを暗号化しません。お使いのルートS3バケットとクラスターEBSボリューム(Classic data planeのみ)を暗号化するには、関連する機能であるDatabricksワークスペースストレージに対する顧客管理キーの適用を参照ください。
重要!
ワークスペースのデータプレーンのVPCはAWSのリージョン、ap-northeast-1
、ap-south-1
、ap-southeast-1
、ap-southeast-2
、ca-central-1
、eu-west-1
、eu-west-2
、eu-central-1
、us-east-1
、us-east-2
、us-west-1
、us-west-2
に存在する必要があります。しかし、マネージドサービスとワークスペースストレージの暗号化に顧客管理キーを使用する場合にはus-west-1
のVPCを使うことはできません。
オプションとして、Databricksのキー設定オブジェクト(キーに対する参照)を異なる二つの暗号化ユースケースで共有することができます。
- コントロールプレーンのマネージドサービスの暗号化
- ワークスペースのストレージ(S3バケット、オプションとしてインスタンスEBSストレージ)の暗号化 - EBSボリュームに対する顧客管理キーは、サーバーレスデータプレーンのVMではなく、クラシックデータプレーンのVMに対してのみ適用されることに注意してください。
2つのユースケースにおいて、キーを追加できるタイミングに重要な違いがありますので注意してください。
- マネージドサービスに対する顧客管理キーに関しては、Databricksワークスペース作成時に、キーとキーを参照するDatabricksキー設定を追加する必要があります。
- ストレージに対する顧客管理キーについては、キーとキー設定をワークスペース作成時に追加できることに加え、稼働中のワークスペースにキーを追加することができます。
重要!
両方のケースにおいて、キーの追加後に、異なるキーに変更(ローテート)することはできません。
コントロールプレーンにおけるマネージドサービスの暗号化処理
顧客管理キーは、ノートブック、シークレット、Databricks SQLのクエリー、SQLのクエリー履歴など、コントロールプレーンにあるワークスペースのマネージドサービスのデータを暗号化します。お客様は、クラウドサービスのキー管理システムにおけるIDで指定される顧客管理キー(CMK)と呼ばれるキーを提供します。AWSにおいては、顧客キーはAWS Key Management Service (KMS)で管理されます。
加えて、DatabricksはワークスペースごとにDatabricks管理のキー(DMK)を作成します。データ暗号化キー(DEK)をラップ、アンラップするために、DMKとCMKを組み合わせて使用されます。Databricksは、ワークスペースのマネージドサービスのデータを暗号化する際にDEKを使用します。
このDEKは、何度かの読み書きのオペレーションの間、メモリーにキャッシュされ、一定周期でメモリーから削除され、新たにお使いのクラウドサービスのキー管理システムへのリクエストが必要となります。キーを削除、無効化した場合には、キャッシュの時間周期後にノートブックやマネージドサービスのデータへの読み書きは失敗します。
新規ワークスペースにマネージドサービスの顧客管理キーを追加
マネージドサービスに顧客管理キーを追加するには、Account APIを用いてワークスペースを作成する際にキーを追加する必要があります。
キーの作成
顧客管理キーを設定するには以下の手順を踏みます。
-
Creating symmetric CMKsあるいはViewing keysの手順に従い、AWS KMSでシンメトリックキーを作成、選択します。
-
これらの値をコピーします。ワークスペース作成時にこれらを使用します。
-
Key ARN - コンソール、API(JSONレスポンスの
Arn
フィールド)からARNを取得します。 - Key alias - AWS KMSにおける顧客管理キーの表示名を指定するエイリアス。暗号化オペレーションにおける顧客管理キーを指定するためにエイリアスを使用します。詳細に関しては、AWSのドキュメントAWS::KMS::Alias、Working with aliasesを参照ください。
-
Key ARN - コンソール、API(JSONレスポンスの
-
Key policyタブで、ポリシービューに切り替えます。Databricksが暗号化、復号化オペレーションを行うためにキーを使えるように、キーポリシーを編集します。以下の内容をキーポリシー
"Statement"
に追加します。JSON
{
"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": "*"
}
```
詳細に関しては、AWSのドキュメント[Editing keys](https://docs.aws.amazon.com/kms/latest/developerguide/editing-keys.html)を参照ください。
新規ワークスペースにキーを登録
キーを登録するには、Create a new workspace using the Account API、特にStep 5: Configure customer-managed keys (optional)の手順に従ってください。これらの手順には、ワークスペースストレージの暗号化とキーを共有する手順が含まれています。
重要!
マネージドサービスに対する顧客管理キーは、ワークスペース作成時にのみ追加することができます。これは、稼働中のワークスペースへのキー追加をサポートしているワークスペースストレージの暗号化とは違うことに注意してください。