Databricksにおけるシークレットの管理のコンテンツです。
Secret scopes | Databricks on AWS [2021/4/12時点]の翻訳です。
シークレットの管理はスコープの作成からスタートします。シークレットのスコープは、名前で識別されるシークレットのコレクションです。一つのワークスペースにおいては、最大100のシークレットスコープを定義できます。
概要
Databricks管理のシークレットスコープは、Databricksで管理される暗号化されたデータベースに格納されます。シークレットスコープの名前は、
- ワークスペースで一意である必要があります。
- アルファベット、数字、ダッシュ(-)、アンダースコア、ピリオドから構成され、128文字以内である必要があります。
スコープ名には機密情報を含めるべきではなく、ワークスペースのユーザーに理解できるものである必要があります。
Databricks管理のシークレットスコープは、Databricks CLI(バージョン0.7.1以降)あるいは、Secrets APIで作成することができます。
スコープのアクセス権
スコープはACLによって管理されるアクセス権を伴って作成されます。デフォルトでは、スコープを作成したユーザー(作成者)に対して、作成者がシークレットの読み取り、スコープへのシークレットの書き込み、スコープのACLの変更ができるように、MANAGE
権限が付与されます。Premium planを契約しているのであれば、スコープに対してより詳細なアクセス権を設定できます。詳細は、Secret access controlを参照ください。
スコープを作成した際に、明示的に全てのユーザーにMANAGE
権限を設定することも可能です。実際のところ、Premium planを契約していないのであれば、全てのユーザーにMANAGE
権限を与えるべきです。
Databricks管理のシークレットスコープの作成
シークレット名は大文字小文字を区別しません。
Databricks CLIでスコープを作成するには以下を実行します。
databricks secrets create-scope --scope <scope-name>
デフォルトでは、スコープ作成者にMANAGE
権限が付与されます。Premium planを契約していないのであれば、スコープ作成時に"users"(全てのユーザー)にMANAGE
権限を与えるべきです。
databricks secrets create-scope --scope <scope-name> --initial-manage-principal users
Secret APIのPut secret操作でも、Databricks管理のシークレットスコープを作成することができます。
Premium planを契約しているのであれば、あとでアクセス権を変更することが可能です。詳細は、Secret access controlを参照ください。
シークレットのスコープを作成すれば、シークレットを追加できるようになります。
シークレットスコープの一覧
CLIを用いて既存のスコープの一覧を表示するには、以下を実行します。
databricks secrets list-scopes
Secret APIのList secrets操作でも一覧を取得できます。
シークレットスコープの削除
シークレットのスコープを削除すると、スコープに適用されているすべてのシークレットとACLも削除されます。
databricks secrets delete-scope --scope <scope-name>
Secret APIのDelete secret scope操作でも削除することが可能です。