Network Policy Advisor

概要

Snowflakeのネットワークポリシーは強力なセキュリティコントロールですが、正しく設計することが難しい場合もあります。特に現在のポリシーが存在しない場合やトラフィックパターンが複雑な場合にはそうなります。

Network Policy Advisorは、SECURITYADMINロールを持つユーザーである*セキュリティ管理者*をガイドし、過去のイングレスアクセスデータに基づいてイングレスネットワークポリシーの推奨候補を作成するための、:ref:`ステップワイズ手法のプロシージャ<label-gen-and-eval-candidate-network-policy>`です。管理者は、推奨されたポリシーをアクティブ化する前に、what-ifシミュレーションを使用してポリシーを評価します。1人のユーザーまたはアカウント内の全ユーザーに対して、ネットワークポリシーの候補を推奨し、評価できます。アドバイザープロシージャには、2つの無停止システムストアドプロシージャの呼び出しが含まれます。これらのプロシージャによって人間が解読できるSQLと評価結果が生成され、それらを精査・改良してから手動で適用できます。

考慮事項

Snowflake Network Policy Advisorが、既存のネットワークポリシーを自動的にアクティブ化または変更することはありません。IPアドレスがネットワーク環境に対して適切または安全であるかについては判断しません。アドバイザーは推奨事項とシミュレーションのみを提供します。ネットワークポリシーの最終的な決定、つまり、既存のネットワークルールやポリシーの変更は、引き続きお客様の責任となります。

主な利点

Network Policy Advisorには、次のような重要な利点があります。

  • 最初のネットワークポリシーを安全に設計できる。

  • どのトラフィックがブロックされるかを施行前に可視化できる。

  • セキュリティ管理を強化する際の試行錯誤を軽減する。

  • 反復的な改良と検証のワークフローをサポートする。

アクセス制御の要件

これらのストアドプロシージャを実行するユーザーには、少なくともSECURITYADMINロールが必要です。

指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。

セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。

ネットワークポリシー候補の生成と評価

アカウントのネットワークポリシー候補を生成して評価するには、|sf-web-interface|にログインし、ワークシートを開いて、以下の手順に従います。

  1. RECOMMEND_NETWORK_POLICYプロシージャを呼び出し、ポリシー候補のSQL構文を生成します。

    USE ROLE SECURITYADMIN;
    
    CALL SNOWFLAKE.NETWORK_SECURITY.RECOMMEND_NETWORK_POLICY(
      LOOKBACK_DAYS => 30,
      );
    
  2. 前のステップで生成されたSQL構文を精査します。

  3. 精査した結果に基づいて次の例のようなコマンドを実行し、ネットワークのルールとポリシーの候補を作成します。

    USE ROLE SECURITYADMIN;
    
    -- Create a network rule
    CREATE OR REPLACE NETWORK RULE my_ingress_rule
      MODE = INGRESS
      TYPE = IPV4
      VALUE_LIST = ('203.0.113.0/24', ...);
    
    -- Create a network policy
    CREATE OR REPLACE NETWORK POLICY my_ingress_policy
      ALLOWED_NETWORK_RULE_LIST = ('my_ingress_rule');
    
  4. ポリシー候補に対してEVALUATE_CANDIDATE_NETWORK_POLICYプロシージャを実行し、どのIPアドレスが許可またはブロックされるかをシミュレートします。

    USE ROLE SECURITYADMIN;
    
    CALL SNOWFLAKE.NETWORK_SECURITY.EVALUATE_CANDIDATE_NETWORK_POLICY(
      POLICY_NAME => 'my_ingress_policy'
      );
    
  5. 出力を分析し、推奨されたポリシー候補によってどのIPアドレスが許可またはブロックされるかを分析します。

  6. 評価結果に基づいて候補ポリシーを改良します。

    たとえば、正規のIPsがブロックされた場合は許可するルールを追加し、不正なIPsが許可された場合はルールを削除できます。

  7. 必要に応じて、受け入れ可能な結果が返されるまでEVALUATE_CANDIDATE_NETWORK_POLICYプロシージャを再実行してポリシー候補を再評価し、ネットワークポリシー候補を改良します。

  8. (オプション)ポリシー候補が正常に実行されると判断した後、そのポリシーをアクティブ化します。

    ALTER ACCOUNT SET NETWORK_POLICY = 'my_ingress_policy';
    
  9. (オプション)次のようなクエリを実行して、ネットワークのイングレストラフィックの履歴を表示します。

    USE ROLE ACCOUNTADMIN;
    
    SELECT *
      FROM SNOWFLAKE.ACCOUNT_USAGE.INGRESS_NETWORK_ACCESS_HISTORY
      LIMIT 100;