データアクセス制御
行権限
Dorisの行レベルポリシーにより、機密データに対するきめ細かいアクセス制御を実現できます。Tableレベルで定義されたセキュリティポリシーに基づいて、どのユーザーまたはロールがTable内の特定のレコードにアクセスできるかを決定できます。
メカニズム
Row Policyが設定されたユーザーがクエリを実行する際に、Row Policyで設定された述語セットを自動的に追加することと同等です。
制限事項
デフォルトユーザーのrootとadminに対してはRow Policyを設定できません。
関連コマンド
- 行権限ポリシーの表示 SHOW ROW POLICY
- 行権限ポリシーの作成 CREATE ROW POLICY
行権限の例
- testユーザーがtable1でc1='a'のデータのみをクエリできるよう制限する
CREATE ROW POLICY test_row_policy_1 ON test.table1
AS RESTRICTIVE TO test USING (c1 = 'a');
カラムパーミッション
Dorisのカラムパーミッションを使用することで、Tableに対するきめ細かいアクセス制御を実現できます。Table内の特定のカラムに対してパーミッションを付与することで、どのユーザーまたはロールがTable内の特定のカラムにアクセスできるかを決定できます。
現在、カラムパーミッションはSelect_privのみをサポートしています。
関連コマンド
カラムパーミッションの例
- user1にTabletbl内のカラムcol1とcol2をクエリするパーミッションを付与する。
GRANT Select_priv(col1,col2) ON ctl.db.tbl TO user1
Data Masking
Data Maskingは、元のデータを変更、置換、または隠すことで機密データを保護する手法であり、マスクされたデータが機密情報を含まなくなる一方で、特定の形式と特性を維持します。
例えば、管理者はクレジットカード番号やID番号などの機密フィールドの数字の一部または全部をアスタリスク*や他の文字で置換したり、実名を仮名で置換することを選択できます。
バージョン2.1.2以降、Apache RangerのData Maskingを通じて特定のカラムにマスキングポリシーを設定するData Maskingがサポートされており、現在はApache Rangerを通じてのみ利用可能です。
admin/rootユーザーのData Masking設定は有効になりません。