CertSafari
    Snowflake SnowPro Advanced: Security Engineer (SEA-C01)· Lessons

    Domain 4 · Lesson 15/21

    Snowflake threat scenarios: privileged roles, service credentials, third-party connections

    Perform threat modeling, identification, and analyses.

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

    What you will be able to do

    • Identify over-privileged roles and users and reduce them with role hierarchies and managed access schemas
    • Analyze the risk of compromised service account credentials and choose stronger authentication
    • Assess threats from third-party OAuth clients, drivers, and outbound code
    • Use Trust Center roles and findings to drive and verify mitigations

    1.Over-privileged roles and users

    The most common Snowflake threat scenario is too much privilege. ACCOUNTADMIN sits at the top of the system role hierarchy. It is not a superuser, though: it can only view and manage objects when it, or a role below it in the hierarchy, holds privileges on them. Snowflake's recommendations are clear. Give ACCOUNTADMIN to only a few people, and to at least two so they can reset each other's passwords. Require MFA for all of them. Don't make it anyone's default role. Use a different role for automated scripts.

    Grant sprawl is a quieter version of the same problem. Outside managed access schemas, an object owner can grant access to any role, including PUBLIC. That is true under RBAC and under user-based access control (UBAC). Managed access schemas take that ability away from object owners: only the schema owner or a role with MANAGE GRANTS can grant privileges there. For review, the GRANTS_TO_ROLES view in ACCOUNT_USAGE lists grants to roles, users, and applications. Direct grants to users skip the role hierarchy, so this query is a useful check:

    List privileges granted directly to users, bypassing rolessql
    SELECT * FROM SNOWFLAKE.ACCOUNT_USAGE.GRANTS_TO_ROLES
      WHERE granted_to = 'USER';

    The Trust Center automates much of this review. It covers finding over-privileged roles and limiting the number of ACCOUNTADMIN and SECURITYADMIN users. It flags tasks that run with those roles' privileges. Its Users with administrator privileges scanner reports new users whose default role is an administrator role, and recent administrator grants to existing users.

    Checkpoint 1 of 6· Check yourself

    Data engineers who own tables keep granting SELECT to broad roles. Which control stops owners from granting access while keeping central grant management?

    Sources12

    2.Compromised service account credentials

    Service users authenticate without a person present, so a stolen credential can be used silently. Snowflake asks for TYPE = SERVICE on users created for service-to-service applications. Users marked TYPE=LEGACY_SERVICE need to move to stronger authentication. The baseline rule is that every service user must use an authentication method stronger than a password. The authentication methods differ in what an attacker would steal:

    Service-to-service authentication methods and their credential exposure
    MethodDocumented ratingCompromise consideration
    Workload identity federationPreferred optionSecretless: no client IDs or secrets to secure and rotate
    External OAuthStrong optionCan be secretless if the IdP supports it
    Key-pairNot ratedLong-lived credential; mitigate with network policies and a storage and rotation strategy
    Programmatic access token (PAT)Not ratedCan be scoped to a specific role to limit damage if compromised

    The Threat Intelligence scanner package looks for signs of credential compromise. It classifies users as human or service and checks for password sign-in without MFA, inactivity, and abnormal failure rates. It runs once a day by default. The Trust Center's Strong Authentication Hub tracks which service users still need to migrate.

    Checkpoint 2 of 6· Match them up

    Match each Threat Intelligence scanner to what it reports

    Tap a term, then the definition that fits it.

    Sources34

    3.Third-party connections and packages

    Third-party tools usually connect through an integration, a Snowflake object that sits between Snowflake and the outside service. For a custom OAuth client, you create the integration with CREATE SECURITY INTEGRATION and OAUTH_CLIENT = CUSTOM. The main threat-reduction setting is BLOCKED_ROLES_LIST. It lists roles that a user cannot consent to use with that integration, so the vendor application cannot get tokens for those roles.

    Checkpoint 3 of 6· Exam question

    Which ACCOUNT_USAGE view should an analyst query to list every table column that currently carries the `PRIVACY_CATEGORY` tag, together with the tag value, when ranking assets by sensitivity?

    Client software is a risk too. The Trust Center can raise a detection when drivers or other client versions in use have known vulnerabilities or are end-of-life. Its Users with unusual applications used in sessions scanner flags clients that are new for a given user. For code that runs inside Snowflake and calls out, the external access integration from the egress model limits which hosts the code can reach, whoever wrote it. The provided sources do not describe scanning third-party code packages (such as Python libraries) for vulnerabilities. Treat that as a gap to cover with your own process.

    Checkpoint 4 of 6· Check yourself

    A BI vendor connects through a custom Snowflake OAuth integration. Which setting stops its users from consenting to privileged roles for that integration?

    Sources52

    4.Implementing and verifying mitigations

    Each threat above has a matching control. Use network policies and the precedence rules for entry points. Use egress rules in external access integrations for exit points. Use role hierarchies under SYSADMIN, managed access schemas, and MFA on ACCOUNTADMIN for privilege. Use SERVICE users with secretless authentication or role-scoped tokens for service credentials. Use BLOCKED_ROLES_LIST for OAuth clients. Programmatic access tokens are a good example of controls working together. The AI Security package flags PATs used with Cortex Code CLI that have no role restriction (ALLOWED_ROLES) or no compliant network policy. If either control is missing, a stolen token could give broad access.

    The Trust Center connects identifying a threat to confirming that its mitigation worked, and access to it should follow least privilege as well. An ACCOUNTADMIN grants one of two application roles:

    Separate Trust Center admin and viewer rolessql
    USE ROLE ACCOUNTADMIN;
    
    CREATE ROLE trust_center_admin_role;
    GRANT APPLICATION ROLE SNOWFLAKE.TRUST_CENTER_ADMIN TO ROLE trust_center_admin_role;
    
    CREATE ROLE trust_center_viewer_role;
    GRANT APPLICATION ROLE SNOWFLAKE.TRUST_CENTER_VIEWER TO ROLE trust_center_viewer_role;
    Minimum Trust Center application role per task
    TaskMinimum application role
    View detection findingsSNOWFLAKE.TRUST_CENTER_VIEWER
    View violation findingsSNOWFLAKE.TRUST_CENTER_VIEWER
    Manage violation findings lifecycleSNOWFLAKE.TRUST_CENTER_ADMIN
    Manage scanner packagesSNOWFLAKE.TRUST_CENTER_ADMIN

    Checkpoint 5 of 6· Exam question

    A newly appointed engineer must document every path through which data can enter or leave an account. Which THREE commands, run across the account, help enumerate those paths?(Select 3)

    Violations and detections are mitigated differently. To fix a violation, change the configuration, following the Trust Center's remediation guidance. The finding stays visible until the scanner package runs again, either on schedule or on demand. You can also mark a violation Resolved and record a justification for audit. A detection is a past event and cannot be fixed directly. Investigate it, and if it matters, change controls to prevent similar events.

    Checkpoint 6 of 6· Check yourself

    You remove an unnecessary ACCOUNTADMIN grant that the Trust Center reported. The violation is still listed. Why?

    Sources2

    Exam traps

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

    1. 1.ACCOUNTADMIN is a superuser that can see and manage every object in the account.Why is that wrong?

      ACCOUNTADMIN can only view and manage objects when it, or a role below it in its hierarchy, has privileges on them.

      Covered in Over-privileged roles and users

    2. 2.A Trust Center detection, such as a login from an unrecognized IP, can be remediated and resolved like a violation.Why is that wrong?

      A detection is a one-time past event. You investigate it and prevent recurrence, and its lifecycle cannot currently be managed.

      Covered in Implementing and verifying mitigations

    Practise it for real

    Set up least-privilege Trust Center access and check the account for direct user grants

    1. 1.As ACCOUNTADMIN, create trust_center_admin_role and grant it the SNOWFLAKE.TRUST_CENTER_ADMIN application role

      Why: Only an admin-level application role can manage scanners and the lifecycle of violations

      You should see: Both statements succeed and the role exists

    2. 2.Create trust_center_viewer_role and grant it SNOWFLAKE.TRUST_CENTER_VIEWER, then grant it to an analyst user

      Why: Analysts can review findings without being able to change scanners

      You should see: The analyst can open the Violations and Detections tabs but cannot manage scanners

    3. 3.Run SELECT * FROM SNOWFLAKE.ACCOUNT_USAGE.GRANTS_TO_ROLES WHERE granted_to = 'USER';

      Why: Direct grants to users bypass the role hierarchy and are a common source of over-privilege

      You should see: A list of privileges granted directly to users, to review for over-privilege

    Stuck? Get a nudge

    If the Trust Center tabs are empty for the viewer role, check that the application role was granted to the role and that the role was granted to the user.

    Sources

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

    1. 1.
      “Assign this role only to a select/limited number of people in your organization.”
      ↩︎ Over-privileged roles and users
      “Managed access schemas remove the ability for object owners to grant access to other roles or users.”
      ↩︎ Over-privileged roles and users
      “Note that ACCOUNTADMIN is not a superuser role.”
      ↩︎ Exam trap 1
      “Only schema owners or a role with the MANAGE GRANTS privilege can grant privileges on objects in a managed access schema.”
      ↩︎ Checkpoint
    2. 2.
      “Finds newly created users whose default role is an administrator role”
      ↩︎ Over-privileged roles and users
      “Some client versions (for example, drivers) currently in use may have known vulnerabilities or have reached their end-of-life status.”
      ↩︎ Third-party connections and packages
      “When either control is missing, a compromised PAT could allow broad access to the account.”
      ↩︎ Implementing and verifying mitigations
      “To view or manage scanners and their findings by using the Trust Center, a user with the ACCOUNTADMIN role must grant the SNOWFLAKE.TRUST_CENTER_VIEWER”
      ↩︎ Implementing and verifying mitigations
      “Because the event is unique and happened in the past, direct remediation of a detection isn’t possible.”
      ↩︎ Exam trap 2
      “which might indicate attempted takeovers of an account, misconfigurations, exceeded quotas, or permission issues.”
      ↩︎ Checkpoint
      “the violation still appears in the Violations tab until the next scheduled run of the scanner package”
      ↩︎ Checkpoint
    3. 3.
      “When you create a Snowflake user object for a service-to-service application, specify TYPE = SERVICE.”
      ↩︎ Compromised service account credentials
      “Security risks associated with long-lived credentials must be mitigated with other security measures like network policies and a robust storage and rotation strategy.”
      ↩︎ Compromised service account credentials
    4. 4.
      “every service user must use an authentication method that is stronger than a password.”
      ↩︎ Compromised service account credentials
    5. 5.
      “An integration is a Snowflake object that provides an interface between Snowflake and third-party services, such as a client that supports OAuth.”
      ↩︎ Third-party connections and packages
      “The optional BLOCKED_ROLES_LIST parameter allows you to list Snowflake roles that a user cannot explicitly consent to using with the integration.”
      ↩︎ Checkpoint

    Ready to test yourself?

    Practise the 16 questions on this subdomain.

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