動的データマスキングポリシー階層 - Amazon Redshift

動的データマスキングポリシー階層

複数のマスキングポリシーをアタッチする場合は、以下を考慮します。

  • 複数のマスキングポリシーを 1 つの列にアタッチできます。

  • 複数のマスキングポリシーがクエリに適用される場合、それぞれの列にアタッチされている最も優先度の高いポリシーが適用されます。次の例を考えます。

    ATTACH MASKING POLICY partial_hash ON credit_cards(address, credit_card) TO ROLE analytics_role PRIORITY 20; ATTACH MASKING POLICY full_hash ON credit_cards(credit_card, ssn) TO ROLE auditor_role PRIORITY 30; SELECT address, credit_card, ssn FROM credit_cards;

    SELECT ステートメントを実行すると、分析と監査の両方のロールを持つユーザーには、partial_hash マスキングポリシーが適用されたアドレス列が表示されます。クレジットカード列では full_hash ポリシーの優先度が高いため、full_hash マスキングポリシーが適用されたクレジットカード列と SSN 列が表示されます。

  • マスキングポリシーをアタッチするときに優先度を指定しない場合、デフォルトの優先度は 0 です。

  • 同じ列に 2 つのポリシーを同じ優先度でアタッチすることはできません。

  • ユーザーと列、またはロールと列の同じ組み合わせに 2 つのポリシーをアタッチすることはできません。

  • 同じユーザーまたはロールにアタッチされているときに、同じ SUPER パスに複数のマスキングポリシーが適用される場合、最も優先順位の高いアタッチメントのみが有効になります。次に挙げるサンプルを参考にしてください。

    最初の例は、同じパスに 2 つのマスキングポリシーがアタッチされ、優先順位の高いポリシーが有効になっていることを示しています。

    ATTACH MASKING POLICY hide_name ON employees(col_person.name) TO PUBLIC PRIORITY 20; ATTACH MASKING POLICY hide_last_name ON employees(col_person.name.last) TO PUBLIC PRIORITY 30; --Only the hide_last_name policy takes effect. SELECT employees.col_person.name FROM employees;

    2 つ目の例は、同じ SUPER オブジェクト内の異なるパスに 2 つのマスキングポリシーがアタッチされているため、ポリシー間で競合が発生していないことを示しています。両方のアタッチメントが同時に適用されます。

    ATTACH MASKING POLICY hide_first_name ON employees(col_person.name.first) TO PUBLIC PRIORITY 20; ATTACH MASKING POLICY hide_last_name ON employees(col_person.name.last) TO PUBLIC PRIORITY 20; --Both col_person.name.first and col_person.name.last are masked. SELECT employees.col_person.name FROM employees;

特定のユーザーと列またはロールと列の組み合わせにどのマスキングポリシーが適用されるかを確認するには、sys:secadmin ロールを持つユーザーが、SVV_ATTACHED_MASKING_POLICY システムビューで列/ロールまたは列/ユーザーのペアを検索できます。詳細については、「動的データマスキングのシステムビュー」を参照してください。