Snowflake Cortex AI Functions Model RBAC Rollout (Pending)

注意

此行为变更包含在 2026_02 捆绑包中。

有关捆绑包的当前状态,请参阅 捆绑包历史记录

以下 Snowflake Cortex AI 函数现在通过 CORTEX_MODELS_ALLOWLIST 参数和基于模型角色的访问控制 (RBAC) 全面执行模型访问控制:

  • AI_TRANSCRIBE / SNOWFLAKE.CORTEX.TRANSCRIBE

  • AI_EXTRACT / SNOWFLAKE.CORTEX.EXTRACT

  • AI_SENTIMENT / SNOWFLAKE.CORTEX.SENTIMENT / SNOWFLAKE.CORTEX.ENTITY_SENTIMENT

  • AI_TRANSLATE / SNOWFLAKE.CORTEX.TRANSLATE

  • CLASSIFY_TEXT

  • SUMMARIZE

  • EXTRACT_ANSWER

  • AI_PARSE_DOCUMENT / SNOWFLAKE.CORTEX.PARSE_DOCUMENT

  • AI_REDACT

变更前:

模型访问控制(CORTEX_MODELS_ALLOWLIST 和模型 RBAC)已在 AI_COMPLETE/SNOWFLAKE.CORTEX.COMPLETEAI_CLASSIFYAI_FILTERAI_AGGAI_SUMMARIZE_AGG 中全面强制执行。

对于上述 Snowflake Cortex AI 函数,模型访问控制并未强制执行。即使底层模型受到 CORTEX_MODELS_ALLOWLIST 或模型 RBAC 的限制,使用这些函数的查询仍可能成功。

变更后:

当您调用任何列出的 Snowflake Cortex AI 函数时,Snowflake 将:

  1. 先检查模型 RBAC:如果调用角色对相应的模型对象具有使用权限(例如,通过 SNOWFLAKE."CORTEX-MODEL-ROLE-ARCTIC-TRANSLATE"),则允许调用。

  2. 如果未找到模型对象访问权限,请检查 CORTEX_MODELS_ALLOWLIST:如果底层模型或别名列在 CORTEX_MODELS_ALLOWLIST 中,或者如果是 CORTEX_MODELS_ALLOWLIST = 'All',则允许调用。

  3. 否则,调用将失败并显示模型授权错误。

这统一了所列所有 Snowflake Cortex AI 函数的行为,并确保您现有的模型限制得到一致遵守。

备注

如果您受到此变更的影响:

如果您已将 CORTEX_MODELS_ALLOWLIST 参数设置为与默认值 All 不同的值,并且您使用上述任何 Snowflake Cortex AI 函数,您就会受到影响。

如果您尚未更改允许列表参数的值,并且未使用模型 RBAC,您不会看到任何行为变更。

如果您已自定义 CORTEX_MODELS_ALLOWLIST,受影响的查询可能会开始因模型授权错误而失败,除非:

  • 底层模型或其函数特定别名已被 CORTEX_MODELS_ALLOWLIST 所允许,或

  • 执行查询的角色拥有相应的模型应用程序角色。

为此变更做好准备:

  1. 检查您使用了哪些受影响的函数:

    SELECT DISTINCT FUNCTION_NAME
    FROM SNOWFLAKE.ACCOUNT_USAGE.CORTEX_AISQL_USAGE_HISTORY
    WHERE USAGE_TIME >= DATEADD(day, -90, CURRENT_TIMESTAMP())
      AND FUNCTION_NAME IN (
          'AI_TRANSCRIBE', 'TRANSCRIBE', 'AI_EXTRACT', 'AI_SENTIMENT',
          'SENTIMENT', 'ENTITY_SENTIMENT', 'AI_TRANSLATE', 'TRANSLATE',
          'CLASSIFY_TEXT', 'SUMMARIZE', 'EXTRACT_ANSWER',
          'AI_PARSE_DOCUMENT', 'PARSE_DOCUMENT', 'AI_REDACT'
      )
    ORDER BY FUNCTION_NAME;
    
  2. 查看当前的模型治理设置:

    SHOW PARAMETERS LIKE 'CORTEX_MODELS_ALLOWLIST' IN ACCOUNT;
    
  3. 如果使用允许列表(而非 All),请为您使用的函数添加所需的模型别名。常见的模型别名包括:

    • arctic-translate``(适用于 ``AI_TRANSLATE

    • arctic-transcribe``(适用于 ``AI_TRANSCRIBE

    • arctic-extract``(适用于 ``AI_EXTRACT

    • arctic-parse-document``(适用于 ``AI_PARSE_DOCUMENT

    • arctic-extract-answer``(适用于 ``EXTRACT_ANSWER

    • arctic-sentiment``(适用于 ``AI_SENTIMENT

    • arctic-summarize``(适用于 ``SUMMARIZE

    • llama3.1-70b``(对于 ``CLASSIFY_TEXTAI_REDACT

    • mistral-7b``(适用于 ``SUMMARIZE

    示例:

    ALTER ACCOUNT SET CORTEX_MODELS_ALLOWLIST =
      'llama3.1-70b,arctic-translate,arctic-extract,arctic-sentiment,arctic-parse-document,arctic-extract-answer,arctic-summarize';
    

或者,通过设置 CORTEX_MODELS_ALLOWLIST = 'None' 并将模型应用程序角色(例如 SNOWFLAKE."CORTEX-MODEL-ROLE-ARCTIC-TRANSLATE")授予适当角色,以使用模型 RBAC。

此变更旨在:

  • 保持一致的治理

  • 统一强制执行最低权限访问

  • 将托管的 AI 函数与现有的 Cortex 模型访问控制对齐

  • 加强企业级合规性保障

  • 提供透明的模型授权行为

参考:2220