Yes, raw brigade-in-SPCS needs an external access integration and a third account-level grant (CREATE INTEGRATION) — but only if the brigade calls api.anthropic.com itself, and BIND SERVICE ENDPOINT stopped being an ask in May
The question
"SPCS brigade enablement — pin the exact minimal grants: the preview-feature identifier string for SYSTEM$ENABLE_PREVIEW_ACCESS (App Runtime only, not all previews), and whether raw brigade-in-SPCS needs external access integrations for Anthropic API reachability beyond CREATE COMPUTE POOL / BIND SERVICE ENDPOINT."
The first half is a dead premise and was retired before this brief started. App Runtime went GA on 2026-09-01, so SYSTEM$ENABLE_PREVIEW_ACCESS is no longer in the path and there is no per-feature identifier string to pin. See [[2026-09-25-spcs-app-runtime-client-account-enablement-gate]]. Everything below researches only the surviving half, plus the two questions that brief left open: whether the P3 C1 gate moves now that the runtime is GA, and whether BIND SERVICE ENDPOINT really defaults to PUBLIC.
What we already know (from the vault)
- C1 is defined in the matrix as an egress problem, in exactly these terms: "brigade-in-SPCS must call the Anthropic API -> needs an EXTERNAL ACCESS INTEGRATION + network rule + secret object, client-account admin approval. This is org-policy surface area, not just config - some clients will say no, which pushes the brigade runtime OUTSIDE Snowflake (P2)." [[2026-07-03-hex-deployment-matrix]]
- P3's two legs have very different maturity. The website leg is exercised (App Runtime, sharp edges documented). The brigade runtime leg "remains unproven and C1-gated," and P2.5 exists so P3 is not the only Snowflake story. [[2026-07-07-hex-deployment-matrix-v2]]
- The parent brief already listed
CREATE INTEGRATIONamong the one-time ACCOUNTADMIN grants for a deploy role, alongsideCREATE COMPUTE POOLandBIND SERVICE ENDPOINT, but treated it as generic env-as-code plumbing rather than as the specific thing that unlocks Anthropic reachability. [[2026-07-12-spcs-app-runtime-enablement-partner-managed]] - The vault has already largely dissolved C1, and not via App Runtime. The CoCo CLI is GA and "can use the Cortex large language models your role has access to, including Claude" - so any CoCo surface calls models through Cortex and needs no direct Anthropic egress. C1 converts into a cross-region-inference and data-residency conversation (
CORTEX_ENABLED_CROSS_REGION, ACCOUNTADMIN-set) rather than an allowlist-a-vendor-host conversation. [[2026-09-13-cortex-code-client-deployable-surface-p3-p4]] - SPCS study notes independently record the same egress mechanic: public-internet reach from a service requires external access integrations, deny-by-default. [[study-snowpark-container-services]]
What the web says
All Snowflake pages below read 2026-09-26. Evidence grade is stated per bullet: verified = primary docs.snowflake.com page fetched directly; primary-via-summary = primary page surfaced through a search summarizer rather than fetched, so the substance is Snowflake's but the exact wording is not quoted.
- Egress from an SPCS service is deny-by-default (primary-via-summary). Per the SPCS service-networking page, "by default, application containers don't have permission to access the internet," and internet access is enabled using External Access Integrations; "typically, you want an account administrator to create EAIs to manage external access allowed from services (including job services)." (Service networking) This is the same fact three vault docs assert, so the convergence is strong even though I did not fetch this page directly.
- The object set is exactly three, one of them optional (verified). A
NETWORK RULEwithMODE = EGRESS,TYPE = HOST_PORT,VALUE_LIST = ('<host>'); an optionalSECRETholding credentials; and anEXTERNAL ACCESS INTEGRATIONthat aggregates them viaALLOWED_NETWORK_RULESandALLOWED_AUTHENTICATION_SECRETS, withENABLED = true. (External network access) - The service then names the integration at creation time (verified).
CREATE SERVICE ... EXTERNAL_ACCESS_INTEGRATIONS = (example_eai). The same page adds a hard failure mode worth knowing: "an oauth secret must be allowed by External Access Integration (EAI); otherwise CREATE SERVICE or EXECUTE JOB SERVICE will fail." (SPCS additional considerations) - The third account-level grant is
CREATE INTEGRATION, and ACCOUNTADMIN is not required for the public-internet case (verified). "When creating an external access integration, you must use a role that has the following: the CREATE INTEGRATION privilege on the account." ACCOUNTADMIN is required only for private connectivity setups. (External network access) The consuming role needsUSAGEon the integration - "enables referencing the integration when executing other commands that use the integration" - plus, where a secret is involved, "the READ privilege on any secret it references, as well as the USAGE privilege on the secret's schema." (Access control privileges) CREATE COMPUTE POOLremains the genuinely un-delegable one (verified). "Enables creating a compute pool to run a Snowpark Container Services service. Must be granted by the ACCOUNTADMIN role." (Access control privileges)- The
BIND SERVICE ENDPOINTconflict has a documented cause: a behavior change (primary-via-summary). Snowflake shipped an un-bundled behavior change, "BIND SERVICE ENDPOINT granted to PUBLIC role," rolling out starting 2026-05-18, which automatically grantsBIND SERVICE ENDPOINT ON ACCOUNTtoPUBLIC. The stated rationale is to let all users already authorized to create SPCS services "offer services that allow authenticated ingress with no additional grants," and administrators who want it back restrict it withREVOKE BIND SERVICE ENDPOINT ON ACCOUNT FROM ROLE PUBLIC. (BCR-2321; corroborated by App Runtime security) - The privileges reference has not caught up in the way you would expect, and that is the trap (verified). The account-privileges table still reads "BIND SERVICE ENDPOINT: enables the ability to create a service that supports public endpoints. Must be granted by the ACCOUNTADMIN role," with no mention of a
PUBLICdefault. (Access control privileges) "Must be granted by ACCOUNTADMIN" answers who may grant it, not whether it is already held. - Network-rule and secret creation are schema-level, and I could not pin them (gap, stated as such). The privileges page surfaced
CREATE SECRETunder schema privileges and onlyOWNERSHIPfor network-rule objects; it did not confirm aCREATE NETWORK RULEschema privilege in the text returned. Treat the schema-level half of the grant list as unpinned.
Convergences and contradictions
- The
BIND SERVICE ENDPOINTcontradiction resolves cleanly, and both sources were right at the time they were written. The SPCS tutorial's explicitGRANT BIND SERVICE ENDPOINTpredates BCR-2321 (rollout from 2026-05-18); the App Runtime security page is written post-BCR. The tutorial grant is now redundant-but-harmless on accounts where the BCR has landed. The live risk is the opposite of what the parent brief assumed: not that you forget to ask for it, but that a security-conscious client has deliberately revoked it fromPUBLIC, which no doc will tell you. - Vault and docs converge on deny-by-default egress. [[2026-07-03-hex-deployment-matrix]]'s C1 wording ("EXTERNAL ACCESS INTEGRATION + network rule + secret object") is an exact match for the documented object set, written from instinct two months before this verification. That instinct was right.
- Contradiction with the framing of the backlog question itself. It asks whether App Runtime GA moves the C1 gate. It does not. App Runtime GA de-risked P3's website leg, which was already the de-risked leg. C1 lives on P3's brigade runtime leg, which runs on raw SPCS - and raw SPCS was GA the whole time, so nothing about the 2026-09-01 GA touches it. What actually moves C1 is the runtime choice documented in [[2026-09-13-cortex-code-client-deployable-surface-p3-p4]], which is an independent axis.
Synthesis for RDCO
Direct answer: yes, and the "beyond" is one extra account-level grant plus a runtime reference. If the brigade process inside the container calls api.anthropic.com itself, CREATE COMPUTE POOL and BIND SERVICE ENDPOINT are not sufficient, because those two govern compute provisioning and inbound endpoint exposure. Outbound is a separate, deny-by-default control plane. The minimal delta is: CREATE INTEGRATION ON ACCOUNT for the role that will create the external access integration (ACCOUNTADMIN not required for the public-internet case, which is a better ask than the parent brief implied), a NETWORK RULE with MODE = EGRESS / TYPE = HOST_PORT / VALUE_LIST = ('api.anthropic.com'), an optional SECRET for the API key, an EXTERNAL ACCESS INTEGRATION binding the two, USAGE on that integration for the deploy role (plus READ on the secret and USAGE on its schema if a secret is used), and EXTERNAL_ACCESS_INTEGRATIONS = (<eai>) named in CREATE SERVICE. The schema-level creation privileges for the network rule and secret are the one part of the list I could not pin from primary docs and should not be recited to a client admin as settled.
The more useful answer is that the whole ask collapses if we pick the runtime deliberately. The brigade only needs an Anthropic-host EAI if the brigade is the thing making the model call. Run it on the GA CoCo CLI inside the container and inference goes through Cortex, so there is no api.anthropic.com in the network rule and no vendor-host allowlist conversation at all - the admin ask becomes CORTEX_ENABLED_CROSS_REGION plus a Cortex database role that arrives through PUBLIC by default. That reframes C1 from "will your security team allowlist an AI vendor's API" (a question that invites a no) to "are you comfortable with cross-region inference routing" (a residency question with a documented answer). Residual egress needs do not vanish - git remotes, non-Snowflake MCP servers, package installs - but those are boring hosts, not an LLM vendor, and a reviewer treats them differently. So C1 is not resolved by App Runtime GA; it is resolved by a runtime decision, and the decision is already available.
Two things get struck from the enablement ask, and that matters more than it sounds. BIND SERVICE ENDPOINT should come off the request list and move onto a verify list: since BCR-2321's 2026-05-18 rollout it is granted to PUBLIC by default, so asking for it signals we have not read the current docs, and asking an ACCOUNTADMIN for privileges they already hold is exactly the friction that makes the next ask harder. The preview toggle is likewise gone. What is left of the original "minimal blast radius" ask for the brigade leg is genuinely small: one un-delegable grant (CREATE COMPUTE POOL, ACCOUNTADMIN-only by design, for cost control), one conditional grant (CREATE INTEGRATION, only if we need non-Cortex egress), one account parameter (CORTEX_ENABLED_CROSS_REGION, only if models are not in-region), and an image repository. That is a one-screen request, and every line has a primary doc behind it.
Practical consequence for the matrix and for any SOW. The P3 row should stop carrying C1 as a single blocker and split it into two independently-checkable cells: model path (Cortex-routed = no Anthropic EAI; direct-API = EAI required, CREATE INTEGRATION needed) and non-model egress (git, MCP, packages - EAI required either way, hosts enumerable up front). Written that way, C1 stops reading as "some clients will say no" and starts reading as a two-question discovery item, which is what it actually is. The one honest caveat: none of this has been run on an account we do not control, and the schema-level grant list plus the per-account BIND SERVICE ENDPOINT state are both facts to check rather than assume.
Why this is in the vault
It closes the last open follow-up of [[2026-07-12-spcs-app-runtime-enablement-partner-managed]] and the C1 follow-up of [[2026-09-25-spcs-app-runtime-client-account-enablement-gate]], and it changes the P3 row of [[2026-07-07-hex-deployment-matrix-v2]] in two concrete ways: BIND SERVICE ENDPOINT moves from the ACCOUNTADMIN ask list to a per-account verify list (BCR-2321), and C1 splits into a model-path cell and a non-model-egress cell, which is the difference between P3 reading as blocked and P3 reading as a two-question discovery item in a client conversation.
Open follow-ups
- Which schema-level privileges does a deploy role actually need to create the egress objects itself (
CREATE NETWORK RULE,CREATE SECRET,CREATE SERVICE,CREATE IMAGE REPOSITORY), or must an ACCOUNTADMIN pre-create the network rule and secret? The privileges reference did not resolve the network-rule case, and this is the difference between a one-time ask and a recurring one. - Can an external access integration be attached to the GA Cortex Agents Coding Agent sandbox (2026-08-26), or is its egress fixed by Snowflake? If egress is fixed, the sandbox cannot host any brigade station that needs git or a non-Snowflake MCP server, which would disqualify it as the P3 upgrade path that [[2026-09-13-cortex-code-client-deployable-surface-p3-p4]] recommends watching.
- Does Snowflake document an external access integration with no
ALLOWED_AUTHENTICATION_SECRETS, and what is the sanctioned way to supply an API key to an SPCS service? The docs show the secret-bearing pattern only, and the no-secrets-on-disk rule makes the alternative worth pinning before it is designed around.
Related
- [[2026-09-25-spcs-app-runtime-client-account-enablement-gate]]
- [[2026-07-12-spcs-app-runtime-enablement-partner-managed]]
- [[2026-09-13-cortex-code-client-deployable-surface-p3-p4]]
- [[2026-07-03-hex-deployment-matrix]]
- [[2026-07-07-hex-deployment-matrix-v2]]
- [[2026-07-05-brigade-skills-snowflake-cortex-code]]
- [[study-snowpark-container-services]]
- [[2026-09-14-brigade-snowflake-connection-profile-governed-rollout]]
Sources
- [[2026-09-25-spcs-app-runtime-client-account-enablement-gate]] —
rdco-vault/06-reference/research/2026-09-25-spcs-app-runtime-client-account-enablement-gate.md(sibling brief; App Runtime GA 2026-09-01 kills the preview-toggle half of this question) - [[2026-07-12-spcs-app-runtime-enablement-partner-managed]] —
rdco-vault/06-reference/research/2026-07-12-spcs-app-runtime-enablement-partner-managed.md(parent brief; the account-level grant list; this question as its open follow-up #5) - [[2026-09-13-cortex-code-client-deployable-surface-p3-p4]] —
rdco-vault/06-reference/research/2026-09-13-cortex-code-client-deployable-surface-p3-p4.md(CoCo CLI is GA and routes inference through Cortex; cross-region inference is the real admin gate) - [[2026-07-03-hex-deployment-matrix]] —
rdco-vault/01-projects/phdata/2026-07-03-hex-deployment-matrix.md(verbatim C1 definition: EAI + network rule + secret, client-admin approval) - [[2026-07-07-hex-deployment-matrix-v2]] —
rdco-vault/01-projects/phdata/2026-07-07-hex-deployment-matrix-v2.md(P3 brigade-in-SPCS unproven and C1-gated; P2.5 fallback) - [[2026-07-05-brigade-skills-snowflake-cortex-code]] —
rdco-vault/06-reference/research/2026-07-05-brigade-skills-snowflake-cortex-code.md(C1 named as the predicted hurdle; C1-dissolution flagged promising-but-unconfirmed) - [[study-snowpark-container-services]] —
rdco-vault/01-projects/certifications/snowpro-genai-c02/study-snowpark-container-services.md(SPCS egress requires external access integrations) - Snowflake — Creating and using an external access integration (fetched 2026-09-26): https://docs.snowflake.com/en/developer-guide/external-network-access/creating-using-external-network-access
- Snowflake — Access control privileges (fetched 2026-09-26): https://docs.snowflake.com/en/user-guide/security-access-control-privileges
- Snowflake — SPCS additional considerations for services and jobs (fetched 2026-09-26): https://docs.snowflake.com/en/developer-guide/snowpark-container-services/additional-considerations-services-jobs
- Snowflake — SPCS service networking (primary page via search summary, not fetched, 2026-09-26): https://docs.snowflake.com/en/developer-guide/snowpark-container-services/service-network-communications
- Snowflake — BCR-2321, "BIND SERVICE ENDPOINT granted to PUBLIC role," un-bundled behavior change, rollout from 2026-05-18 (primary page via search summary, not fetched, 2026-09-26): https://docs.snowflake.com/en/release-notes/bcr-bundles/un-bundled/bcr-2321
- Snowflake — Securing Snowflake App Runtime applications (corroborating the PUBLIC default, read 2026-09-25 in the sibling brief): https://docs.snowflake.com/en/developer-guide/snowflake-app-runtime/security