外部ロケーションを管理する
この記事では、 外部ロケーションの一覧表示、表示、更新、アクセス許可の付与、および削除の方法について説明します。
注:
Databricks では、ボリュームを使用してファイル アクセスを管理することをお勧めします。 Unity Catalogボリュームとはを参照してください。
外部ロケーションの説明
権限やワークスペースへのアクセスなど、外部ロケーションのプロパティを表示するには、Catalog Explorer または SQL コマンドを使用できます。
サイドバーで、「 カタログ 」をクリックします。
[クイック アクセス] ページで、[外部データ >] ボタンをクリックして外部ロケーション タブに移動します。
外部ロケーションの名前をクリックすると、そのプロパティが表示されます。
ノートブックまたは Databricks SQL エディターで次のコマンドを実行します。 <location-name>
を外部ロケーションの名前に置き換えます。
DESCRIBE EXTERNAL LOCATION <location-name>;
外部ロケーションの権限を表示する
外部ロケーションに許可を表示するには、次のようなコマンドを使用します。 オプションで、結果をフィルタリングして、指定したプリンシパルの許可のみを表示できます。
SHOW GRANTS [<principal>] ON EXTERNAL LOCATION <location-name>;
プレースホルダーの値を置き換えます。
<location-name>
:クラウドテナントのS3バケットからの読み取りと書き込みを許可する外部ロケーショの名前。<principal>
:アカウントレベルのユーザーのメールアドレスまたはアカウントレベルのグループの名前。
注:
グループまたはユーザー名にスペースまたは @
記号が含まれている場合は、アポストロフィではなくバッククォートで囲みます。 たとえば
財務チーム' '.
外部ロケーションに対するアクセス許可の付与
このセクションでは、ノートブックまたはSQLクエリで Catalog Explorer と SQL コマンドを使用して、外部ロケーションに対するアクセス許可を付与および取り消す方法について説明します。代わりに Databricks CLI または Terraform を使用する方法については、 Databricks Terraform のドキュメント と What is the Databricks CLI?.
外部ロケーションに対して次の権限を付与できます。
CREATE EXTERNAL TABLE
CREATE EXTERNAL VOLUME
CREATE MANAGED STORAGE
必要なアクセス許可: メタストアと外部ロケーションで参照されるストレージ資格情報の両方に対する CREATE EXTERNAL LOCATION
特権。 メタストア管理者は、デフォルトでメタストアに CREATE EXTERNAL LOCATION
を持っています。
外部ロケーションの使用を許可するには:
サイドバーで、「 カタログ 」をクリックします。
[クイック アクセス] ページで、[外部データ >] ボタンをクリックして外部ロケーション タブに移動します。
外部ロケーションの名前をクリックして、そのプロパティを開きます。
[アクセス許可]をクリックします。
ユーザーまたはグループにアクセス許可を付与するには、各 ID を選択し、[付与]をクリックします。
ユーザーまたはグループから権限を取り消すには、各 ID を選択してから [ 取り消し] をクリックします。
ノートブックまたは SQL クエリ エディターで次の SQL コマンドを実行します。 この例では、外部ロケーションを参照する外部テーブルを作成する権限を付与します。
GRANT CREATE EXTERNAL TABLE ON EXTERNAL LOCATION <location-name> TO <principal>;
プレースホルダーの値を置き換えます。
<location-name>
:クラウドテナントのS3バケットからの読み取りと書き込みを許可する外部ロケーショの名前。<principal>
:アカウントレベルのユーザーのメールアドレスまたはアカウントレベルのグループの名前。
注:
グループまたはユーザー名にスペースまたは @
記号が含まれている場合は、アポストロフィではなくバッククォートで囲みます。 たとえば
財務チーム' '.
外部ロケーションの所有者を変更する
外部ロケーションの作成者は、その最初の所有者です。 所有者を別のアカウント レベルのユーザーまたはグループに変更するには、ノートブックまたは Databricks SQL エディターで次のコマンドを実行するか、 カタログ エクスプローラーを使用します。 プレースホルダーの値を置き換えます。
<location-name>
:資格情報の名前。<principal>
:アカウントレベルのユーザーのメールアドレスまたはアカウントレベルのグループの名前。
ALTER EXTERNAL LOCATION <location-name> OWNER TO <principal>
外部ロケーションを読み取り専用にする
ユーザーに外部ロケーションへの読み取り専用アクセスを許可する場合は、カタログエクスプローラーを使用して外部ロケーションを読み取り専用としてマークできます。
外部ロケーションを読み取り専用にする:
ストレージ認証情報の基になる IAMロールによって付与された書き込み権限や、その外部ロケーションに付与された Unity Catalog 権限に関係なく、ユーザーがこれらの外部ロケーションのファイルに書き込むことを防止します。
ユーザーがそれらの外部ロケーションにマネージドテーブルまたはボリュームを作成できないようにします。
作成時にシステムが外部ロケーションを適切に検証できるようにします。
外部ロケーションは、作成時に読み取り専用にすることができます。
カタログエクスプローラーを使用して、外部ロケーションの作成後に読み取り専用ステータスを変更することもできます。
サイドバーで、「 カタログ 」をクリックします。
[クイック アクセス] ページで、[外部データ >] ボタンをクリックして外部ロケーション タブに移動します。
外部ロケーションを選択し、「 接続のテスト 」ボタンの横にある「 アクション 」メニューをクリックして、「 編集 」を選択します。
編集ダイアログで、「 詳細オプション 」をクリックし、「 読み取り専用使用に制限」 オプションを選択します。
[更新] をクリックします。
外部ロケーションでの暗号化アルゴリズムの構成
AWS は、S3 のデータを保護するために、Amazon S3 マネージドキー (SSE-S3) または AWS KMS キー (SSE-KMS) を使用したサーバー側の暗号化 (SSE) をサポートしています。 S3バケットで SSE 暗号化が必要な場合は、外部ロケーションで暗号化アルゴリズムを設定して、外部テーブルとUnity Catalog内のボリュームが S3 バケット内のデータにアクセスできるようにすることができます。SSE は、Delta Sharing を使用して共有される外部テーブルではサポートされていません。
サイドバーで、「 カタログ 」をクリックします。
[カタログ] ウィンドウの上部にある [] 歯車アイコンをクリックし、[外部ロケーション] を選択します。
外部ロケーションを選択します。 外部ロケーションは、ストレージ資格情報に IAMロールを使用する必要があります。
[接続のテスト] ボタンの横にある ケバブ メニューをクリックし、[ 編集] を選択します。
編集ダイアログで、[ 詳細オプション] をクリックします。
[暗号化アルゴリズム] で、暗号化キーに応じて [SSE-SE] または [SSE-KMS] を選択します。
SSE-KMS の場合は、[Encryption KMS key arn] の下に、S3 ロケーションにアクセスするときにクライアントが参照する KMS キーの ARN を貼り付けます。
[更新] をクリックします。
外部ロケーショを変更する
外部ロケーショの所有者は、外部ロケーションの名前変更、URIの変更、およびストレージ資格情報の変更を行うことができます。
外部ロケーショの名前を変更するには、次の操作を行います。
ノートブックまたは Databricks SQL エディターで次のコマンドを実行します。 プレースホルダーの値を置き換えます。
<location-name>
:場所の名前。<new-location-name>
:場所の新しい名前。
ALTER EXTERNAL LOCATION <location-name> RENAME TO <new-location-name>;
クラウドテナント内の外部ロケーショが指すURIを変更するには、次の手順を実行します。
ノートブックまたは Databricks SQL エディターで次のコマンドを実行します。 プレースホルダーの値を置き換えます。
<location-name>
:外部ロケーションの名前。<url>
:場所がクラウドテナント内のアクセスを承認する必要がある新しいストレージURL。
ALTER EXTERNAL LOCATION location_name SET URL '<url>' [FORCE];
FORCE
オプションは、外部テーブルが外部ロケーショに依存している場合でも、URLを変更します。
外部ロケーショが使用するストレージ資格情報を変更するには、次の手順を実行します。
ノートブックまたは Databricks SQL エディターで次のコマンドを実行します。 プレースホルダーの値を置き換えます。
<location-name>
:外部ロケーションの名前。<credential-name>
:クラウドテナント内の場所のURLへのアクセスを許可するストレージ資格情報の名前。
ALTER EXTERNAL LOCATION <location-name> SET STORAGE CREDENTIAL <credential-name>;