【Databricks】Unity Catalogを作成してみた-3

# 背景・目的
以前、下記の記事でUnity Catalogのセットアップを行いました。

- [【Databricks】Unity Catalogを作成してみた-1](https://qiita.com/zumax/items/c84ea4f13459f887b393)
- [【Databricks】Unity Catalogを作成してみた-2](https://qiita.com/zumax/items/c7f158b6f314079a714e)


引き続き、Unity Catalogについて操作していきたいと思います。今回、実施する内容は下記のとおりです。

- (オプション)メタストアを追加のワークスペースにリンクする
- (推奨)メタストアの所有権をグループ に移行する

# まとめ
- デフォルトではメタストアの管理者は作成者になるため、属人性を回避するためにグループに置き換えます。

# 概要
## メタストア管理者を割り当てる
> メタストア管理者は、 Unity Catalogの高度な特権を持つユーザーまたはグループです。 メタストア管理者には、次の権限があります。

> - カタログ、外部ロケーション、共有、および受信者を作成します。
> - メタストア内のオブジェクト (ストレージ資格情報、外部ロケーション、共有、受信者、プロバイダーなど) の特権を管理したり、所有権を譲渡したりできます。
> - メタストア内のすべてのオブジェクトのメタデータを読み取って更新します。
> - メタストアを削除します。
> - メタストア内のすべてのデータに対する読み取りおよび書き込みアクセス権を自分自身に付与します (デフォルトによる直接アクセスはなく、アクセス許可の付与は監査ログに記録されます)。

> メタストアを作成するアカウント管理者は、その初期所有者およびメタストア管理者です。 Databricks では、アカウント管理者がグループをメタストア管理者として指名することで、この責任を委任することをお勧めします。 これにより、グループのメンバーは自動的にメタストア管理者になります。

メタストア管理者のデフォルトは、メタストアを作成したアカウント管理者になりますが、
アカウント管理者をグループに委譲することで、属人性を排除できます。


# 実践
## (オプション)メタストアを追加のワークスペースにリンクする

[【Databricks】ワークスペースを作成してみた](https://qiita.com/zumax/items/eb2eb11213f3f3129813)と同じ手順で、ワークスペースを作成します。

最終的には、下記のような構成にします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206276/f5ab32fd-7271-dfab-c34d-27fbba6c6804.png)


### ワークスペース用のS3バケットを作成
1. Databricksにサインインし、ナビゲーションペインで、「クラウドリソース」をクリックします。
    <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206276/8e6b0bee-6b1d-34a3-36f7-2c335ed661c8.png" width=200>

1. 「ストレージ設定」をクリックし、「ストレージ設定を追加」をクリックします。
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206276/e2c655ce-dd25-5db1-3e12-da2c556f2353.png)

1. ストレージ設定名と、バケット名を入力し、ポリシーを生成をクリック後、「追加」します。

1. AWSにログインし、S3バケットを作成します。
1. 上記で作成したDatabricksのストレージ設定で表示されたバケットポリシーを設定します。

### ワークスペースを作成
1. ナビゲーションペインでワークスペースを作成します。
    <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206276/805dd28f-372b-3054-d7ff-327976dc5220.png" width=200 />

1. 「カスタムAWS構成」をクリックします。
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206276/adb015d4-b071-ae75-88b8-bbe49506c6de.png)

1. 下記を入力し、「保存」をクリックします。
    - ワークスペース名：任意
    - リージョン：ストレージと同様のリージョン
    - 資格情報の設定：作成済みの資格情報
    - ストレージ設定：上記で作成したストレージ設定
    - Unity Catalog：作成したUnity Catalogを指定
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206276/38c3c92c-2b1f-7df3-5a20-05655e934ad8.png)

:::note info
Unity Catalog を有効化したところ、エラーになりました。
ワークスペース作成後に、あらためてUnity Catalogをアタッチすることで作成できました。
:::

## (推奨)メタストアの所有権をグループ に移行する

1. アカウントコンソールにログインします。
1. ナビゲーションペインで、「データ」をクリックします。
    <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206276/5394b0e8-7a1d-8b4d-b140-07a367bce88f.png" width=200 />

1. メタストア名をクリックします。
1. メタストア管理者の「編集」をクリックします。
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206276/e889b6f5-5062-6ef1-32cb-5ce93d1556b6.png)

1. メタストア管理者の編集がポップアップで表示されるので、グループを選択します。ここでは「admin」グループを指定しています。
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/206276/c727eb83-a474-c07a-1c82-6f71adf63371.png)

# 考察
今回は、ワークスペースを新たに作成しメタストアに紐づけました。また、メタストアの管理者をグループに置き換えました。
今後は、AWSの別アカウントにワークスペースを紐づけて、複数アカウントで管理できるようにしたいと思います。

# 参考
https://docs.databricks.com/ja/data-governance/unity-catalog/get-started.html

https://qiita.com/zumax/items/eb2eb11213f3f3129813