# ポリシーベースのカラムレベルアクセス制御権限

ポリシーベースのカラムレベルアクセス制御権限を作成する際、特定のカラムに対するアクセス制御を定義し、そのポリシーを特定のユーザーに割り当てます。これらの権限を作成するには、ポリシーベースのカラムレベルアクセス制御機能を有効にする必要があります。

カラムのタグベース権限について

* ポリシーを設定する前に、カラムのアクセシビリティの種類とその定義を理解することが重要です。タグを使用してユーザーが定義できるカラムのアクセシビリティには3種類あります：
  * **None** - ユーザーはカラムを表示することもクエリすることもできません
  * **View** - ユーザーはカラムを表示できます
  * **Masked** - ユーザーはハッシュ化された値でカラムを表示し、クエリすることができます
  * アクセシビリティはポリシー内のタグに割り当てられます。これは、タグが付けられたすべてのカラムが、そのタグに割り当てられたアクセシビリティを継承することを意味します。例えば、*PII* タグにアクセシビリティ **None** が割り当てられている場合、*PII* タグが付けられたすべてのカラムは、そのポリシーが割り当てられたユーザーに対して「None」のアクセシビリティを持ちます。
  * ポリシーには常に、デフォルトのカラムアクセシビリティとして「None」の初期設定があります。ユーザーはデフォルトのアクセシビリティを View に変更できます。デフォルトのアクセシビリティ設定は、以下のアクセシビリティを決定します：
    * すべてのカラムの初期状態
    * 新しいカラムおよびタグ付けされていないカラム
  * Email (Raw) などのデフォルトポリシータグは、設計上、削除や編集ができません


このトピックには以下が含まれます：

* [ポリシーベースのカラムレベルアクセス制御の有効化](#%E3%83%9D%E3%83%AA%E3%82%B7%E3%83%BC%E3%83%99%E3%83%BC%E3%82%B9%E3%81%AE%E3%82%AB%E3%83%A9%E3%83%A0%E3%83%AC%E3%83%99%E3%83%AB%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E5%88%B6%E5%BE%A1%E3%81%AE%E6%9C%89%E5%8A%B9%E5%8C%96)
* [カラムレベル権限の設定原則](#%E3%82%AB%E3%83%A9%E3%83%A0%E3%83%AC%E3%83%99%E3%83%AB%E6%A8%A9%E9%99%90%E3%81%AE%E8%A8%AD%E5%AE%9A%E5%8E%9F%E5%89%87)
* [ポリシーベース権限の作成](#%E3%83%9D%E3%83%AA%E3%82%B7%E3%83%BC%E3%83%99%E3%83%BC%E3%82%B9%E6%A8%A9%E9%99%90%E3%81%AE%E4%BD%9C%E6%88%90)
* [ユーザーへのポリシーの適用](#%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%81%B8%E3%81%AE%E3%83%9D%E3%83%AA%E3%82%B7%E3%83%BC%E3%81%AE%E9%81%A9%E7%94%A8)
* [ポリシーがデータに与える影響](#%E3%83%9D%E3%83%AA%E3%82%B7%E3%83%BC%E3%81%8C%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AB%E4%B8%8E%E3%81%88%E3%82%8B%E5%BD%B1%E9%9F%BF)
* [カラムレベル権限設定の一般的なシナリオ](#%E3%82%AB%E3%83%A9%E3%83%A0%E3%83%AC%E3%83%99%E3%83%AB%E6%A8%A9%E9%99%90%E8%A8%AD%E5%AE%9A%E3%81%AE%E4%B8%80%E8%88%AC%E7%9A%84%E3%81%AA%E3%82%B7%E3%83%8A%E3%83%AA%E3%82%AA)


# ポリシーベースのカラムレベルアクセス制御の有効化

ポリシーベースのカラムレベルアクセス制御機能が必要です。この機能の有効化については、カスタマーサクセス担当者にお問い合わせください。機能を有効にすると、Treasure Data は自動的に新しい権限ポリシー「`Columns full`」を作成し、既存のすべてのユーザーに適用します。これにより、初期状態と同様に、既存のすべてのユーザーがすべてのカラムにアクセスできることが保証されます。その後、管理者は「Columns full」ポリシーからユーザーを削除し、新しいポリシーで他のカラムレベルアクセス制御権限を割り当てることができます。

# カラムレベル権限の設定原則

カラムレベルアクセス制御ポリシーを作成する際、管理者は以下の点を考慮する必要があります：

* 望ましい目標は何か？このポリシーの主な目的は、カラムデータへのアクセスを許可することか、それとも防止することか？
* ポリシーのデフォルトアクセシビリティは何か？すべてのタグに対して、アクセス不可（None）または表示アクセス（View）のどちらから始める方が適切か？
* ポリシーがアクセスを提供または防止するカラムはどれか？


例えば、特定のタグが付いたカラムへのアクセスをブロックすることが目標の場合、以下の手順を推奨します：

1. デフォルトのアクセシビリティを **View** に更新することから始めます。
2. **Reset all tags to default** を選択して、すべてのタグのアクセシビリティをデフォルトのアクセシビリティと同じに設定します。
既存のすべてのポリシータグのアクセシビリティ設定が **View** に設定されます。この設定は、このポリシーが割り当てられたユーザーが、タグ付けされたカラムを含むすべてのカラムへの表示アクセス権を持つことを意味します。


上記の設定により、管理者は特定のタグのアクセシビリティを **None** に設定できます。

最初のカラムレベル権限ポリシーを作成する前に、[カラムレベル権限設定の一般的なシナリオ](#%E3%82%AB%E3%83%A9%E3%83%A0%E3%83%AC%E3%83%99%E3%83%AB%E6%A8%A9%E9%99%90%E8%A8%AD%E5%AE%9A%E3%81%AE%E4%B8%80%E8%88%AC%E7%9A%84%E3%81%AA%E3%82%B7%E3%83%8A%E3%83%AA%E3%82%AA) を確認してください。

# ポリシーベース権限の作成

1. Treasure コンソール を開きます。
2. **Control Panel** > **Policies** に移動します。
3. **Add Policy** を選択します。
4. ポリシーの説明的な名前を入力し、オプションで説明を含めます。
![](/assets/image2023-9-19_3-25-55.565e289be19c53966e42280a474000ec8bb55725e5d954609f9f5b61f7e82213.f0cddcd7.png)
5. **Add Policy** を選択します。
6. **Permissions** を選択し、パネルの下部までスクロールします。
7. 鉛筆アイコンを選択して、カラムレベルアクセス制御権限を追加します。


##### ![](/assets/image2023-9-19_3-27-49.f99d59733d02602ac4c5c8f682269f9e6f795ab19288befa630e9e5fc32aa451.f0cddcd7.png)

1. 以下の表に従って権限を設定します。


フォームに入力する際、パラメーターの横に疑問符が表示されている場合は、それを選択して詳細情報を取得することを忘れないでください。

| パラメーター | 説明 |
|  --- | --- |
| Policy default accessibility | - **None**（デフォルト）：ユーザーはカラムを表示することもクエリすることもできません。
- **View**：ユーザーはカラムを表示できます。
- **Masked**：ユーザーはハッシュ化された値でカラムを表示し、クエリすることができます。

 |
| Tag | タグ名。 |
| Accessibility Type | カラムタグごとの none、view、または masked のアクセシビリティ権限。 |
| New column accessibility | ポリシーに新しいカラムを追加すると、そのカラムはポリシーのデフォルトアクセシビリティを継承します。 |


1. **Save** を選択します。


# ユーザーへのポリシーの適用

1. **APPLIED TO** タブを選択します。
2. **Apply policy** を選択してユーザーをポリシーに追加します。


##### ![](/assets/image2023-9-19_3-31-54.e50aaab4c78a4b20fb33e1fdb8d3b86c5948614bd92e54d19f73ce3e31293de6.f0cddcd7.png)

1. 左右のトグルキーを使用して、ユーザーをポリシーに追加または削除します。
2. **Save** を選択します。


# ポリシーがデータに与える影響

ポリシーが設定されると、その設定に応じてデータの表示方法が異なります。

### テーブルプレビュー

データの概要は、テーブルページおよびクエリエディターのテーブルプレビューで確認できます。ポリシーが設定されている場合、ユーザーの権限に応じて、各設定は以下のように動作します。

| ポリシー | データ型 | 結果 |
|  --- | --- | --- |
| None | すべて | 空白 |
| View | すべて | 生データが表示されます |
| Masked | String | ハッシュ化されたデータが表示されます |
| Masked | その他 | Null |


テーブルプレビューはデータ取り込み時のキャッシュを使用するメカニズムであるため、データ型はテーブル定義ではなく、インポート時の型に依存します。例えば、`1` を文字列としてインポートした場合、テーブルプレビューはハッシュ化された値を表示します。col1 のデータ型を数値データ型に変更した後、クエリ結果は null になりますが、テーブルプレビューはハッシュ化されたデータを表示する場合があります。

### クエリ結果

テーブルをクエリする場合、それぞれの権限に応じて以下のように動作します。

| ポリシー | データ型 | 結果 |
|  --- | --- | --- |
| None | すべて | クエリは以下のように失敗します
`Access Denied: Cannot select from columns [column_name] in table or view table_name` |
| View | すべて | クエリはデータを返します |
| Masked | String | クエリはハッシュ化されたデータを取得します |
| Masked | Numeric | クエリは null を取得します |


# カラムレベル権限設定の一般的なシナリオ

TD 管理者がポリシーでカラムレベルアクセス制御を設定する方法には、3つの一般的なシナリオがあります：

1. 特定のタグが付いたカラムへの **アクセス不可**。例えば、*PII* タグが付いたカラムおよび *Sensitive* タグが付いたカラムへのアクセス不可。
2. 特定のタグが付いたカラムへの **アクセスのみ許可**。例えば、*Finance* タグが付いたカラムへのアクセスのみ許可。
3. **アクセス不可とアクセス許可の組み合わせ**。例えば、*Finance* タグが付いたカラムへのアクセスを許可、*Sensitive* タグが付いたカラムをマスク、*PII* タグが付いたカラムへのアクセス不可。


### シナリオ A - 特定のタグが付いたカラムへのアクセス不可

以下の例では、Policy default accessibility を **None** から始め、デフォルトを **View** に変更し、特定のカラムをアクセス不可にするために **None** に変更します。

1. Treasure コンソール を開きます。
2. **Control Panel** > **Policies** に移動します。
3. ポリシーを選択します。
4. **Permissions** を選択します。
5. Permissions パネルの下部までスクロールし、**COLUMN LEVEL ACCESS CONTROL** の鉛筆アイコンを選択します。
6. policy default visibility を選択し、**None** から **View** に変更します。
![](/assets/image2023-9-22_13-28-31.766300974109a82b3fd65473fc0982d86cf9b3a97e8e9867f0e6adbb29ae42f3.f0cddcd7.png)
7. **Reset All Tags To Default** を選択して、すべてのタグのアクセシビリティをデフォルトのアクセシビリティと同じに設定します。すべてのタグが **View** と表示されます。
![](/assets/image2023-9-19_3-36-7.0656c675bc8df3f31ba7e8f2dcee7d5dd7ca8192c071119047329f40e4537de4.f0cddcd7.png)
8. Home Address タグのアクセシビリティタイプを **View** から **None** に更新します。
![](/assets/image2023-9-22_13-29-11.a2a3fcb4b68631053a0d67594349fa18b1d45f8c28512c62790bb0cead8d3ab5.f0cddcd7.png)
9. **Save** を選択します。


### シナリオ B - 特定のタグが付いたカラムへのアクセス

以下の例では、Policy default accessibility を **None** から始め、特定のカラムをアクセス可能にするために **View** に変更します。

1. Treasure コンソール を開きます。
2. Control Panel > Policies に移動します。
3. ポリシーを選択します。
4. Permissions を選択します。
5. Permissions パネルの下部までスクロールし、COLUMN LEVEL ACCESS CONTROL の鉛筆アイコンを選択します。
6. Policy default accessibility を None のままにします。


##### ![](/assets/image2023-9-22_13-30-28.c968ea5bcd7d40b812840196d88d12a6c5cb030273036b28cdb5497f2ff7bc19.f0cddcd7.png)

1. Finance タグのアクセシビリティタイプを None から View に変更します。


##### ![](/assets/image2023-9-22_13-31-55.a98a0c1b9db1e29d449a9b8d5b0893cffd0ce4653c06663752e92d2462c0b96c.f0cddcd7.png)

1. Save を選択します。


### シナリオ C - 特定のタグが付いたカラムへのアクセスと制限付きアクセス

以下の例では、Policy default accessibility を **None** から始め、特定のカラムをアクセス可能にするために **View** と **Masked** に変更します。

1. Treasure コンソール を開きます。
2. Control Panel > Policies に移動します。
3. ポリシーを選択します。
4. Permissions を選択します。
5. Permissions パネルの下部までスクロールし、COLUMN LEVEL ACCESS CONTROL の鉛筆アイコンを選択します。
6. Policy default accessibility を None のままにします。
7. PII タグはデフォルトで None なので、そのままにします。
8. Finance タグのアクセシビリティタイプを None から View に変更します。
9. Security タグのアクセシビリティタイプを None から Masked に変更します。
![](/assets/image2023-9-22_13-51-31.071738cfe466738f2081dc736a6fadda239a439ab41b0f7503093027d9ba66d0.f0cddcd7.png)
10. Save を選択します。


## 加算モデルとアクセシビリティ権限

ユーザーを複数のポリシーに割り当てた場合、そのユーザーのアクセシビリティ権限はポリシー割り当ての合計になります。以下の例を考えてみましょう：

* ポリシー A は Finance タグのアクセシビリティを **View** として権限を付与します。
* ポリシー B は Finance タグのアクセシビリティを **None** として権限を付与します。


権限の合計 *Finance* タグのアクセシビリティ = **View と None** は *Finance* タグ = **View** となります。異なるポリシーで同じタグに対して2つの異なるアクセシビリティ権限が設定されている場合、最も許可度の高い権限がユーザーに付与されるアクセシビリティ権限となります。以下の情報は、各ユースケースで可能なすべての組み合わせとそのアクセシビリティ権限を示しています：

* None + Masked = **Masked**
* View + Masked = **View**
* None + View = **View**


## ユーザーのアクセシビリティ権限の確認

1. Treasure コンソール を開きます。
2. **Control Panel** > **Users** に移動します。
3. ユーザーを選択します。
4. **Policies** を選択します。