CertSafari
    Snowflake SnowPro Advanced: Architect (ARA-C01)· Lessons

    Domain 1 · Lesson 3/13

    Snowflake Encryption, Network Policies, Network Rules and Private Connectivity

    Outline Snowflake security principles and identify use cases where they should be applied.

    10 min read
    8.33% of exam
    6 sources
    Published 5 Oct 2026
    Docs as of 4 Oct 2026

    What you will be able to do

    • Explain how end-to-end encryption and Tri-Secret Secure protect data at rest and in transit
    • Design network rules and network policies, and predict which policy wins when several apply
    • Use AWS PrivateLink, Azure Private Link or Google Cloud Private Service Connect identifiers in network rules, and block public access
    • Control outbound traffic from UDFs and procedures with egress rules and external access integrations

    Key concept

    Network rule — A network rule is a schema-level object that groups network identifiers of one type, such as IPv4 ranges, private endpoint IDs or domains. The rule never decides whether to allow or block. The feature that uses it makes that decision: a network policy for inbound traffic, or an external access integration for outbound traffic.

    1.Encryption: the baseline every account gets, and the extra layer some need

    Every other security control in this lesson sits on top of encryption. Snowflake uses end-to-end encryption (E2EE), which stops third parties from reading customer data while it is at rest or moving to and from Snowflake. The E2EE design covers two kinds of stage. Internal stages are provided by Snowflake. External stages are containers in a cloud storage service, such as Amazon S3, that the customer controls. When a user uploads files to an external stage, the user may also encrypt them with client-side encryption before they leave the corporate network.

    Some regulated customers need more control over keys. For them, Snowflake offers Tri-Secret Secure. This dual-key model combines a key maintained by Snowflake with a customer-managed key (CMK) that the customer creates on the cloud platform hosting the account. Together they form a composite master key, which wraps the account's key hierarchy. For example, it wraps table master keys, and those are used to derive the file keys that encrypt raw data. The composite key itself never encrypts raw data. Owning the CMK brings responsibility: if the customer revokes it, Snowflake can no longer decrypt the data. So choose Tri-Secret Secure when a requirement says the customer must control a key. Don't choose it as a default upgrade.

    Checkpoint 1 of 6· Check yourself

    A customer using Tri-Secret Secure revokes its customer-managed key in its cloud provider's KMS. What is the effect?

    Sources12

    2.Network rules: grouping identifiers by type and mode

    Encryption protects the data itself. Network controls decide who can reach Snowflake at all, and where Snowflake code can send data. Both directions use network rules. A rule holds identifiers of a single TYPE: IPv4 ranges in CIDR notation, IPv6 ranges (AWS only), AWS VPCE IDs, Azure LinkIDs, Google Cloud PSC connection IDs, Snowpark Container Services compute pools for inbound traffic, or domains with ports for outbound traffic. The rule's MODE says which direction of traffic the feature using it will restrict.

    Network rule modes and what they protect
    MODEUsed withWhat it controls
    INGRESSNetwork policyThe Snowflake service. With TYPE=IPV4 and ENFORCE_NETWORK_RULES_FOR_INTERNAL_STAGES enabled, it also covers an AWS internal stage
    INTERNAL_STAGENetwork policyAn AWS internal stage only. Needs TYPE=AWSVPCEID and the ENFORCE_NETWORK_RULES_FOR_INTERNAL_STAGES parameter
    SNOWFLAKE_MANAGED_STORAGE_VOLUMENetwork policyAn AWS Snowflake-managed storage volume only. Needs TYPE=AWSVPCEID
    EGRESSExternal access integrationTraffic sent from Snowflake by a UDF or procedure

    To create a rule, you need the CREATE NETWORK RULE privilege on its schema. By default, only ACCOUNTADMIN, SECURITYADMIN and the schema owner hold that privilege, so a custom network-admin role must be granted it explicitly. Snowflake recommends many small rules with clear purposes. For example, keep one rule for North American client IPs and another for privileged and service users. Use the COMMENT property to record what each rule is for.

    Checkpoint 2 of 6· Check yourself

    A custom role NETWORK_ADMIN has USAGE on a database and schema but cannot create network rules there. What is missing?

    Sources3

    3.Network policies: allowed lists, blocked lists and precedence

    By default, anyone can connect from any device. A network policy changes that by adding network rules to an allowed list and a blocked list. The workflow has three steps, and a policy does nothing until the last one: you activate it on an account, a user or a security integration. New policies should use network rules. The older ALLOWED_IP_LIST and BLOCKED_IP_LIST parameters still work, but you should not mix the two styles in one policy.

    Checkpoint 3 of 6· Put it in order

    Put the steps for restricting inbound traffic in order

    1. 1.Activate the policy for an account, user, or security integration
    2. 2.Create a network policy that adds those rules to its allowed or blocked list
    3. 3.Create network rules grouped by purpose and identifier type

    Three evaluation rules come up again and again. First, an allowed list implicitly blocks: if you allow one IPv4 address, every other IPv4 address is blocked, with no blocked-list entry needed. Second, when the same value appears in both lists, the blocked list is applied first. You can use this to allow a range except for one address. Third, the most specific policy wins. An account policy is overridden by a user policy, and a user policy is overridden by a security-integration policy. One exception: for Snowflake OAuth, the user-level policy is ignored on token requests. The only integration that still enforces it there is the built-in SNOWFLAKE$LOCAL_APPLICATION. Snowflake recommends scoping policies to groups of users or to integrations instead of the whole account.

    Checkpoint 4 of 6· Fill the gap

    Which mode completes this rule so a network policy can use it to allow a client IP range?

    CREATE NETWORK RULE allow_access_rule
      MODE =  ? 
      TYPE = IPV4
      VALUE_LIST = ('192.168.1.0/24');

    Sources4

    4.Private connectivity: PrivateLink, Private Link and Private Service Connect

    Traffic to Snowflake can travel over the public internet or through a private IP address on the cloud platform that hosts the account. Which service you use depends on that platform: AWS PrivateLink, Azure Private Link or Google Cloud Private Service Connect. With private endpoints, inbound traffic can stay private for the Snowflake service, Snowsight, Streamlit in Snowflake, internal stages, Snowflake-managed storage volumes and Snowpark Container Services.

    Allow one VPC endpoint and block all public IPv4 trafficsql
    CREATE NETWORK RULE block_public_access
      MODE = INGRESS
      TYPE = IPV4
      VALUE_LIST = ('0.0.0.0/0');
    
    CREATE NETWORK RULE allow_vpceid_access
      MODE = INGRESS
      TYPE = AWSVPCEID
      VALUE_LIST = ('vpce-0fa383eb170331202');
    
    CREATE NETWORK POLICY allow_vpceid_block_public_policy
      ALLOWED_NETWORK_RULE_LIST = ('allow_vpceid_access')
      BLOCKED_NETWORK_RULE_LIST=('block_public_access');

    When a private request matches an allowed AWSVPCEID or AZURELINKID rule, Snowflake ignores all IPv4 and IPv6 rules for that request. On Azure, the function SYSTEM$GET_PRIVATELINK_AUTHORIZED_ENDPOINTS returns the account's LinkID. Sometimes several VPCs, business units or overlapping subnets share one endpoint. In that case, tuple syntax pairs the endpoint ID with IP ranges, so Snowflake judges the pair and not the IP alone. Note one platform gap: on Azure, a network rule cannot restrict an internal stage, but Azure Private Link can block all public access to it.

    Checkpoint 5 of 6· Check yourself

    Two business units reach Snowflake through the same shared PrivateLink endpoint, and their private IP ranges overlap. How do you let only one unit's subnet connect?

    Sources5

    5.External access: controlling outbound traffic

    Network policies only protect inbound traffic. To let a UDF or procedure call an external API, you need external network access. You create EGRESS network rules that list allowed domains. If no port is given, it defaults to 443, and port 0 means all ports. You then list those rules in an external access integration, which can also name the secrets and API authentication security integrations the handler is allowed to use.

    External access integration syntaxsql
    CREATE [ OR REPLACE ] EXTERNAL ACCESS INTEGRATION <name>
      ALLOWED_NETWORK_RULES = ( <rule_name_1> [, <rule_name_2>, ... ] )
      [ ALLOWED_API_AUTHENTICATION_INTEGRATIONS = { ( <integration_name_1> [, <integration_name_2>, ... ] ) | none } ]
      [ ALLOWED_AUTHENTICATION_SECRETS = { ( <secret_name_1> [, <secret_name_2>, ... ] ) | all | none } ]
      ENABLED = { TRUE | FALSE }
      [ COMMENT = '<string_literal>' ]

    Setting ENABLED = FALSE works as a kill switch. Any handler code that relies on a disabled integration can no longer reach the external location.

    Checkpoint 6 of 6· Check yourself

    An engineer adds an INGRESS IPv4 rule to ALLOWED_NETWORK_RULES of an external access integration. What happens?

    Sources36

    Exam traps

    Each one states something that sounds right. Open it to see what is actually true.

    1. 1.Allowing a VPCE ID or Azure LinkID in a network policy automatically blocks public internet access.Why is that wrong?

      Private-endpoint rules do not apply to public requests. You must also add an IPv4 rule such as 0.0.0.0/0 to the blocked list.

      Covered in Private connectivity: PrivateLink, Private Link and Private Service Connect

    2. 2.A user-level network policy always overrides every other policy that applies to that user.Why is that wrong?

      A policy activated on a security integration is the most specific, so it overrides both user and account policies.

      Covered in Network policies: allowed lists, blocked lists and precedence

    Sources

    Every claim above is drawn from one of these pages, quoted as it was written on the date shown.

    1. 1.
      “End-to-end encryption (E2EE) is a method to secure customer data that prevents third parties from reading the data while at-rest or in transit”
      ↩︎ Encryption: the baseline every account gets, and the extra layer some need
    2. 2.
      “The composite master key is never used to encrypt raw data.”
      ↩︎ Encryption: the baseline every account gets, and the extra layer some need
      “If the customer-managed key (CMK) in the composite master key hierarchy is revoked, your data can no longer be decrypted by Snowflake.”
      ↩︎ Checkpoint
    3. 3.
      “The mode of a network rule indicates whether the Snowflake feature that uses the rule restricts incoming or outgoing requests.”
      ↩︎ Network rules: grouping identifiers by type and mode
      “Indicates that the network rule is used for traffic sent from Snowflake.”
      ↩︎ External access: controlling outbound traffic
      “A network rule does not define whether its identifiers should be allowed or blocked.”
      ↩︎ Key concept
      “By default, only the ACCOUNTADMIN and SECURITYADMIN roles, along with the schema owner, have this privilege.”
      ↩︎ Checkpoint
      “Snowflake evaluates the combination of the PrivateLink ID and private IP, not the IP alone”
      ↩︎ Checkpoint
    4. 4.
      “Whenever possible, narrowly scope a network policy to a group of users or a security integration rather than an entire account.”
      ↩︎ Network policies: allowed lists, blocked lists and precedence
      “For Snowflake OAuth, the user-level network policy is not considered for client-to-Snowflake traffic such as token requests.”
      ↩︎ Network policies: allowed lists, blocked lists and precedence
      “has no effect on requests coming from the public network”
      ↩︎ Exam trap 1
      “Network policies applied to a security integration are the most specific network policies. They override both accounts and users.”
      ↩︎ Exam trap 2
      “Create network rules based on their purpose and type of network identifier.”
      ↩︎ Checkpoint
      “has no effect on requests coming from the public network”
      ↩︎ Prediction
    5. 5.
      “These connections use AWS PrivateLink, Azure Private Link, or Google Cloud Private Service Connect.”
      ↩︎ Private connectivity: PrivateLink, Private Link and Private Service Connect
    6. 6.
      “If the integration is disabled, any handler code that relies on it will be unable to reach the external network location.”
      ↩︎ External access: controlling outbound traffic
      “Specifies the allowed network rules. Only egress rules may be specified.”
      ↩︎ Checkpoint

    Continue to page 2 of 2

    Snowflake Authentication, Authentication Policies, RBAC and SCIM Provisioning

    Spotted a mistake, or was something unclear? Tell us.