Snowflake Cortex: CORTEX_ MODELS_ ALLOWLIST no longer controls model access (Pending)¶
Attention
This behavior change is in the 2026_07 bundle.
For the current status of the bundle, refer to Bundle history.
Access control based on the CORTEX_MODELS_ALLOWLIST account parameter is removed. Model role-based
access control (RBAC) becomes the only supported model access control mechanism for Snowflake AI,
and model RBAC is also enforced for embedding models.
This change is the enforcement phase of the CORTEX_MODELS_ALLOWLIST deprecation, which was announced as an unbundled behavior change.
- Before the change:
Snowflake checked model RBAC first, then fell back to the
CORTEX_MODELS_ALLOWLISTparameter. Access was allowed if either the calling role had access to the model object inSNOWFLAKE.MODELSor the model was covered by the allowlist. Model RBAC wasn’t enforced for embedding models.- After the change:
When the 2026_07 behavior change bundle is enabled in your account,
CORTEX_MODELS_ALLOWLISTisn’t consulted during authorization. Access is determined exclusively by model RBAC: the calling role must have access to the model through the corresponding model application role. Model RBAC is also enforced for embedding models, including AI_EMBED, AI_MULTI_EMBED, AI_SIMILARITY, EMBED_TEXT_768, and EMBED_TEXT_1024.
Model RBAC provides the same access outcomes the allowlist provided. An allowlist of 'All' is
equivalent to granting CORTEX-MODEL-ROLE-ALL to the PUBLIC role, and an allowlist of specific
models is equivalent to granting those model application roles to PUBLIC. Accounts that grant
CORTEX-MODEL-ROLE-ALL also gain access to models Snowflake releases later, while accounts that
grant specific model roles must grant a new role for each new model.
What you need to do¶
Before the bundle is enabled by default, confirm that the roles running your Cortex workloads have the model application roles they need.
-
Check your current allowlist value. If it’s already
'None', your account uses model RBAC exclusively and no action is required. -
Review the model application roles granted to the PUBLIC role.
-
Grant the equivalent model application roles for any models your workloads use, then set the allowlist to
'None'. For the full procedure, see Migrate from the allowlist to RBAC.
Test in a non-production account first. Test with a role other than ACCOUNTADMIN, because ACCOUNTADMIN always has access to all models.
This change is being made to standardize model access on a single, consistent authorization mechanism, so that access follows the same role-based framework used elsewhere in Snowflake.
Note
Managed reader accounts without the SNOWFLAKE.MODELS schema continue to use
CORTEX_MODELS_ALLOWLIST during this migration.
Ref: 2378