Network Policy Advisor

概述

Snowflake 网络策略是一种强大的安全控制,但可能很难正确设计,特别是在当前不存在策略或流量模式复杂的情况下。

Network Policy Advisor 是指导 安全 *管理员*(即具有 SECURITYADMIN 角色的用户)的 分步过程,可根据历史入口访问数据为入口网络策略创建推荐的候选策略。然后,您作为管理员,在激活策略之前,先通过“假设分析”(what-if) 模拟对推荐策略进行评估。您可以为账户中的用户或所有用户推荐和评估候选网络策略。顾问过程涉及调用两个无中断的系统存储过程。这些过程生成人类可读的 SQL 以及您可以手动查看、优化和应用的评估结果。

注意事项

Snowflake Network Policy Advisor 不会自动激活或修改现有网络策略。它无法确定 IP 地址对于您的网络环境来说是否正确且安全。顾问仅提供建议和模拟。任何最终的网络策略决策(即对现有网络规则和策略的任何更改)仍然由客户负责。

主要优势

Network Policy Advisor 提供以下主要优势:

  • 使您能够安全地设计第一个网络策略。

  • 提供在强制执行之前将阻止哪些流量的可见性。

  • 在加强安全控制时减少试错。

  • 支持迭代细化和验证工作流程。

访问控制要求

用户必须具有运行这些存储过程的 SECURITYADMIN 角色。

有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色

有关对 安全对象 执行 SQL 操作的相应角色和权限授予的一般信息,请参阅 访问控制概述

生成和评估候选网络策略

要为账户生成和评估候选网络策略,请登录 Snowsight,打开一个工作表,然后按照以下步骤操作:

  1. 生成候选策略的 SQL 语法,方法是调用 RECOMMEND_NETWORK_POLICY 过程。

    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;