❄️

Snowflakeのデータアプリケーションセキュリティ #4 データシェアとセキュリティの最新情報

2023/11/19に公開

データエンジニアの是枝です。
Snowflakeのデータアプリケーションセキュリティの第4回の記事になります。

前回、データアプリケーションのセキュリティとアクセス制御について述べました。
https://zenn.dev/t_koreeda/articles/3acaecf569b46b
今回は データシェアとセキュリティの最新情報 について述べていきます。データシェアは、データアプリケーション環境において、異なる理由でデータを共有したい場合に重要な役割を果たします。本記事では、Snowflakeデータシェアの最新情報とセキュリティについて詳しく説明します。以下の動画を参考に、chatGPTの力を借りながら執筆していきますのでよろしくお願いします。

Security Best Practices For Building Data Applications With Snowflake
https://www.youtube.com/watch?v=jhWa7ANML5U

データシェアと権限

データシェアの過去

過去にデータ共有を行う際、唯一の特権である「imported privilege」が存在し、これによりデータシェア内のすべてのオブジェクトへのアクセスが付与されていました。しかし、このアプローチは過度に包括的で、データシェア内のオブジェクトごとにアクセスを制御することが難しかったです。


出典:https://www.youtube.com/watch?v=jhWa7ANML5U

データベースレベルのロール

最新のアップデートにより、データベースレベルのロールが導入されました。これにより、データ提供者(データアプリケーションプロバイダ)とデータ消費者(データアプリケーションコンシューマー)に対して、データシェア内のオブジェクトに対するアクセス権をより詳細に制御できるようになりました。

データマスキングポリシーの適用

データ提供者は、データベースレベルのロールを使用してデータマスキングポリシーを作成できます。これにより、データマスキングポリシーはデータ提供者からデータ消費者に伝播し、データへのアクセスが制御されます。新しいコンテキスト関数「is database role in session」を活用して、データ提供者がデータマスキングポリシーを設定し、データ消費者がそれを適用できるようになりました。この仕組みにより、データ提供者がポリシーを変更した場合でも、全てのデータシェアにリアルタイムで適用されます。

アクセス制御の最適化

アクセス制御のベストプラクティス

データシェアにおいて、データ提供者はデータアクセス権を最小限に抑えるために、ロールの階層構造や最小特権アクセスを適用することが重要です。データ提供者はアクセス制御の管理とデータオブジェクトの設定を行うべきです。

デプロイメントパターンに応じた管理

データアプリケーションを管理する際、データ提供者とデータ消費者の役割が異なります。管理アプリケーションを持つ場合、データ提供者がアクセス制御を管理すべきです。一方、コネクテッドアプリケーションでは、データ消費者が管理を行い、データ提供者にスキーマレベルのアクセスを委任することができます。

データの暗号化とセキュリティ

データ暗号化の重要性

データセキュリティにおいて、データの暗号化は不可欠です。SnowflakeはAES 256を使用したデータの暗号化を提供しており、データセキュリティを確保しています。データの暗号化には「Tri-Secret Secure」という機能が導入されており、データ提供者が独自の鍵を使用してデータを暗号化できるようになりました。

アカウントごとの鍵管理

データ共有を跨いだり、データを豊かにするために、アカウントごとに異なる鍵を使用する必要がある場合、データベースロールを検討することが重要です。これにより、異なるテナントごとに異なる暗号鍵を設定できます。データベースロールを使用すれば、より効果的な鍵の管理が可能です。

機密データの削除

アプリケーションの使用を停止し、データを削除する際には、データの暗号鍵を無効化または削除することができます。これにより、GDPRなどの規制に対応できます。

監査とモニタリング

データアクセスの監査

データアクセスの監査とモニタリングは非常に重要です。Snowflakeでは「アクセス履歴」を活用することで、データの読み取りと書き込み、ポリシーの適用、タグの適用、DMLおよびDDL操作などが追跡できます。データのリレーションシップやログイン履歴なども監査対象となります。

監査のオプション

監査ツールを選択する際、オプションAとオプションBの2つの選択肢があります。オプションAでは、すべてのSnowflakeアカウントに接続するツールを使用します。一方、オプションBでは、各アカウントが独自の監査とモニタリングデータを作成し、データ共有を通じてセキュアに共有することができます。

出典:https://www.youtube.com/watch?v=jhWa7ANML5U

結論

Snowflakeデータシェアとセキュリティの最新情報を把握することで、データの安全な共有とアクセス管理を実現できます。データベースレベルのロール、データマスキングポリシー、データの暗号化、監査とモニタリングなど、セキュリティの実現に役立つ機能が提供されています。データアプリケーションを展開する際には、適切なアクセス制御とセキュリティを確保しましょう。

GitHubで編集を提案

Discussion