ストレージの資格情報を管理する
この記事では、ストレージ資格情報の一覧表示、表示、更新、アクセス許可の付与、および削除の方法について説明します。
Databricks では、ストレージ資格情報に対して CREATE EXTERNAL LOCATION
のみを付与し、その他の特権は付与しないことを推奨しています。
この記事では、カタログ エクスプローラーと SQL コマンドを使用してストレージ資格情報を管理する方法について説明します。 代わりに Databricks CLI または Terraform を使用する方法については、Databricks Terraform のドキュメントおよび「Databricks CLI とは」を参照してください。
ストレージの資格情報の一覧表示する
メタストア内のすべてのストレージ資格情報を一覧表示するには、カタログ エクスプローラーまたは SQL コマンドを使用します。
カタログ エクスプローラー
- サイド バーで、 [カタログ] をクリックします。
- [ Quick アクセス ] ページで、[ External data > ] ボタンをクリックし、[ Credentials ] タブに移動します。
- 資格情報を Purpose (STORAGE または SERVICE) で並べ替えます。
SQL
ノートブックまたは Databricks SQL エディターで次のコマンドを実行します。
SHOW STORAGE CREDENTIALS;
ストレージ資格情報を表示する
ストレージ資格情報のプロパティを表示するには、カタログ エクスプローラーまたは SQL コマンドを使用します。
カタログ エクスプローラー
- サイド バーで、 [カタログ] をクリックします。
- [ Quick アクセス ] ページで、[ External data > ] ボタンをクリックし、[ Credentials ] タブに移動します。
- ストレージの資格情報の名前をクリックすると、そのプロパティが表示されます。
SQL
ノートブックまたは Databricks SQL エディターで次のコマンドを実行します。 <credential-name>
を資格情報の名前で置き換えます。
DESCRIBE STORAGE CREDENTIAL <credential-name>;
ストレージ資格情報に対する許可を表示する
ストレージの資格情報に対する許可を表示するには、次のようなコマンドを使用します。 必要に応じて結果をフィルター処理して、指定したプリンシパルの許可のみを表示することもできます。
SHOW GRANTS [<principal>] ON STORAGE CREDENTIAL <storage-credential-name>;
プレースホルダー値を次のように置き換えます。
<principal>
: アカウント レベルのユーザーのメール アドレス、またはアクセス許可を付与するアカウント レベルのグループの名前。<storage-credential-name>
: ストレージの資格情報の名前。
Note
グループまたはユーザー名にスペースまたは @
記号が含まれている場合は、その周囲にバックティックを使用します (アポストロフィではありません)。 たとえば、
チーム
。
外部の場所を作成するためのアクセス許可を付与する
ストレージ資格情報を使用して外部の場所を作成するためのアクセス許可を付与するには、以下の手順を実行します。
カタログ エクスプローラー
- サイド バーで、 [カタログ] をクリックします。
- [ Quick アクセス ] ページで、[ External data > ] ボタンをクリックし、[ Credentials ] タブに移動します。
- ストレージ資格情報の名前をクリックして、詳細ページを開きます。
- [アクセス許可] をクリックします。
- ユーザーまたはグループにアクセス許可を付与するには、各 ID を選択し、[許可] をクリックします。
- ユーザーまたはグループからアクセス許可を取り消すには、それぞれの ID を選択して、[取り消し] をクリックします。
SQL
ノートブックまたは SQL クエリ エディターで次のコマンドを実行します。
GRANT CREATE EXTERNAL LOCATION ON STORAGE CREDENTIAL <storage-credential-name> TO <principal>;
プレースホルダー値を次のように置き換えます。
<principal>
: アカウント レベルのユーザーのメール アドレス、またはアクセス許可を付与するアカウント レベルのグループの名前。<storage-credential-name>
: ストレージの資格情報の名前。
Note
グループまたはユーザー名にスペースまたは @
記号が含まれている場合は、その周囲にバックティックを使用します (アポストロフィではありません)。 たとえば、
チーム
。
ストレージの資格情報の所有者を変更する
ストレージの資格情報の作成者は、その初期所有者です。 所有者を別のアカウント レベルのユーザーまたはグループに変更するには、カタログ エクスプローラーまたは SQL コマンドを使用できます。
カタログ エクスプローラー
- サイド バーで、 [カタログ] をクリックします。
- [ Quick アクセス ] ページで、[ External data > ] ボタンをクリックし、[ Credentials ] タブに移動します。
- ストレージ資格情報の名前をクリックして、編集ダイアログを開きます。
- Owner の横にある [] をクリックします。
- 入力してプリンシパルを検索し、それを選択します。
- [保存] をクリックします。
SQL
ノートブックまたは Databricks SQL エディターで次のコマンドを実行します。 プレースホルダー値を次のように置き換えます。
<credential-name>
: 資格情報の名前。<principal>
: アカウント レベルのユーザーのメール アドレス、またはアカウント レベルのグループの名前。
ALTER STORAGE CREDENTIAL <credential-name> OWNER TO <principal>;
ストレージ資格情報を読み取り専用としてマークする
ユーザーにストレージ資格情報によって管理されるすべてのデータへの読み取り専用アクセス権を持たせたい場合は、カタログ エクスプローラーを使用してそのストレージ資格情報を読み取り専用としてマークできます。
ストレージ資格情報を読み取り専用としてマークすることは、その資格情報で構成されたすべてのストレージが読み取り専用であることを意味します。
ストレージ資格情報は、作成時に読み取り専用としてマークできます。
また、カタログ エクスプローラーを使用して、ストレージ資格情報の作成後に読み取り専用の状態を変更することもできます。
- カタログ エクスプローラーで、ストレージ資格情報を見つけ、オブジェクト列上の ケバブ メニューをクリックして [編集] を選択します。
- 編集ダイアログで、[読み取り専用] オプションを選択します。
ストレージの資格情報の名前を変更する
ストレージ資格情報の名前を変更するには、カタログ エクスプローラーまたは SQL コマンドを使用します。
カタログ エクスプローラー
- サイド バーで、 [カタログ] をクリックします。
- [ Quick アクセス ] ページで、[ External data > ] ボタンをクリックし、[ Credentials ] タブに移動します。
- ストレージ資格情報の名前をクリックして、編集ダイアログを開きます。
- ストレージ資格情報の名前を変更して保存します。
SQL
ノートブックまたは Databricks SQL エディターで次のコマンドを実行します。 プレースホルダー値を次のように置き換えます。
<credential-name>
: 資格情報の名前。<new-credential-name>
: 資格情報の新しい名前。
ALTER STORAGE CREDENTIAL <credential-name> RENAME TO <new-credential-name>;
ストレージの資格情報を削除する
ストレージ資格情報を削除 (ドロップ) するには、その所有者である必要があります。 ストレージ資格情報の名前を削除するには、カタログ エクスプローラーまたは SQL コマンドを使用します。
カタログ エクスプローラー
- サイド バーで、 [カタログ] をクリックします。
- [ Quick アクセス ] ページで、[ External data > ] ボタンをクリックし、[ Credentials ] タブに移動します。
- ストレージ資格情報の名前をクリックして、編集ダイアログを開きます。
- [削除] ボタンをクリックします。
SQL
ノートブックまたは Databricks SQL エディターで次のコマンドを実行します。 <credential-name>
を資格情報の名前で置き換えます。 角かっこ内にあるコマンドの部分は省略可能です。 既定では、資格情報が外部の場所で使用されている場合、削除されません。 <credential-name>
を資格情報の名前で置き換えます。
資格情報が存在しない場合、IF EXISTS
ではエラーを返しません。
DROP STORAGE CREDENTIAL [IF EXISTS] <credential-name>;