外部トークン化の使用¶
このトピックでは、Snowflakeでパートナーの統合を使用して外部トークン化を使用する方法と、カスタムの外部トークン化統合を作成する方法についての手順を提供します。
Snowflakeは、 AWS、Microsoft Azure、およびGoogle Cloud Platformでの外部トークン化をサポートしています。
外部トークン化マスキングポリシーは、タグベースの外部トークン化を提供するために、タグに割り当てることができます。タグにマスキングポリシーを割り当てるための詳細については、 タグベースのマスキングポリシー をご参照ください。
重要
外部トークン化には、Snowflake Standard Edition に含まれている 外部関数の記述 が必要です。また、トークン化プロバイダーで外部関数を使用できます。
ただし、トークン化プロバイダーをSnowflake外部トークン化に 統合 することを選択した場合は、 Enterprise Edition またはそれ以上にアップグレードする必要があります。
アップグレードについては、 Snowflakeサポート にお問い合わせください。
外部トークン化パートナーの統合¶
次のパートナーは、Snowflakeでの外部トークン化を促進します。これらのパートナー統合を使用するには、パートナーのドキュメントにある手順に従うか、パートナーに連絡して構成プロセスを開始します。
カスタム外部トークン化の統合を作成する¶
外部トークン化のカスタム統合を作成するには、次のステップを完了します。
ステップ1: 外部関数を作成する¶
Snowflakeで外部関数を作成し、外部関数と通信できるようにクラウドプロバイダー環境を構成します。詳細については、以下をご参照ください。
ステップ2: カスタムロールにマスキングポリシー権限を付与する¶
セキュリティ担当者またはプライバシー担当者 は、マスキングポリシー管理者(つまり、カスタムロール: MASKING_ADMIN)として機能し、マスキングポリシーを定義、管理、および列に適用する権限を持っている必要があります。
Snowflakeは、列レベルのセキュリティマスキングポリシーのセキュリティ担当者またはプライバシー担当者に付与する次の権限を提供します。
権限 |
Object |
説明 |
|---|---|---|
CREATE MASKING POLICY |
Schema |
This privilege controls who can create masking policies. |
APPLY MASKING POLICY |
Account |
This privilege controls who can [un]set masking policies on columns and is granted to the ACCOUNTADMIN role by default. . This privilege only allows applying a masking policy to a column and does not provide any additional table privileges described in アクセス制御権限. |
APPLY |
Masking policy |
オプション。ポリシー所有者はこのポリシーレベルの権限を使用して、列における特定のマスキングポリシーの設定/設定解除操作をオブジェクト所有者に分散させることができます(つまり、オブジェクトに対する OWNERSHIP 権限を持つロール)。. Snowflakeは、オブジェクト所有者がデータスチュワードとも見なされる 任意のアクセス制御 をサポートしています。. ポリシー管理者が保護された列のデータスチュワードとしてオブジェクト所有者を信頼している場合、ポリシー管理者はこの権限を使用して、ポリシーの適用設定/設定解除操作を分散できます。 |
次の例では、 MASKING_ADMIN ロールを作成し、そのロールにマスキングポリシー権限を付与します。
マスキングポリシー管理者のカスタムロールを作成します。
masking_admin ロールに権限を付与します。
table_owner ロールに ssn_mask マスキングポリシーの設定または設定解除を許可します(オプション):
条件:
db_name.schema_name権限を付与するスキーマの識別子を指定します。
詳細については、次をご参照ください。
ステップ3: ユーザーにカスタムロールを付与する¶
セキュリティまたはプライバシー担当者として機能するユーザーに MASKING_ADMIN カスタムロールを付与します。
ステップ4: マスキングポリシーを作成する¶
この代表的な例では、 ANALYST カスタムロールを持つユーザーに、非トークン化されたメールの値が表示されます。ANALYST のカスタムロールがないユーザーには、トークン化された値が表示されます。
メールの値を非トークン化する外部関数は de_email() です。
Tip
既存のマスキングポリシーを更新するために、ポリシーの現在の定義を確認する必要がある場合は、 GET_DDL 関数を呼び出すか、 DESCRIBE MASKING POLICY コマンドを実行します。
ステップ5: テーブルまたはビュー列にマスキングポリシーを適用する¶
これらの例では、テーブルの作成時にテーブル列に対して、またビューの作成時にビュー列に対してマスキングポリシーが適用されないことを前提としています。オプションで、 CREATE TABLE ステートメントを使用してテーブルを作成するとき、または CREATE VIEW ステートメントを使用してビュー列を作成するときに、テーブル列にマスキングポリシーを適用できます。
次のステートメントを実行して、テーブル列またはビュー列にポリシーを適用します。
ステップ6:Snowflakeでデータをクエリする¶
Snowflakeで、2つの異なるクエリを実行します。1つは ANALYST カスタムロールを持つクエリ、もう1つは異なるロールを持つクエリで、 ANALYST カスタムロールのないユーザーにトークン化した値が表示されることを確認します。
外部トークン化のベストプラクティス¶
システムの同期。AWS では、組織のIDプロバイダー(IdP)のユーザーとロールをSnowflakeおよびProtegrityと同期すると便利です。ユーザーとロールが同期されていない場合は、外部関数、 API 統合、マスキングポリシー、トークン化ポリシーに関する予期しない動作、エラーメッセージ、複雑なトラブルシューティングが発生する可能性があります。オプションの1つは、 SCIM を使用して、ユーザーとロールを IdP およびSnowflakeと同期させることです。
エラーの根本的な原因。外部トークン化には複数のシステム(例: IdP、Snowflake、Protegrity、 AWS、Azure、 GCP)を調整する必要があるため、権限、現在の制限、外部関数、 API 統合、マスキングポリシー、およびSnowflakeで外部トークン化のマスキングポリシーを持つ列を常に確認してください。根本的な原因を特定するには、以下をご参照ください。
次のトピック: