Every member has a role — Administrator, Editor,
or Viewer — that sets their baseline. Only Administrators can connect or
remove accounts and manage members. Viewers cannot use connected cloud accounts at all:
cloud credentials and kubeconfigs are issued only to Editors and
Administrators. For an agent, the person sending the message and the owner of
the conversation must both be Editors or above.
When an account is connected, an Administrator can restrict it to specific team
members with a per-binding allow-list. By default, binding an account grants
access to the person who connected it; the allow-list is how you widen or narrow
that.This is enforced on every credential request from an agent: even if an
agent has an account selected, Nuphos re-checks that the requesting user
is allowed to use it before handing over credentials.
Use allow-lists to keep production accounts to a small group while letting the
whole team work with staging.
Each agent only ever has the credentials you explicitly
selected for it — and only for accounts you’re allowed to use. The
agent can’t reach into an account you didn’t hand it. See
Agents.
These layers compose into least-privilege by default: a Viewer can’t change
anything, a member can only use the accounts they’re on the allow-list for, and
each agent is scoped to exactly the credentials it needs. Federated cloud credentials are short-lived; PATs, API keys and OAuth secrets
have their own lifetimes and revocation rules. See the IAM trust model.Each agent receives a short-lived, agent-scoped Nuphos token rather
than your general login token. For control over changes specifically — approvals and audit — see
Plans & approvals.
A member can connect personal GitHub, Linear, Gmail and Google Drive accounts.
Personal token access is owner-scoped; a shared transcript does not transfer
that account to another participant. Shared turns execute with the actual
sender’s authorization rather than treating every message as the owner’s.A local runtime or local command can also reach sign-ins already on its computer.
Conversation connector selection is not a sandbox around those pre-existing
logins. Share a computer only with people you trust with that user’s access.
{"docsConfig":{"$schema":"https://mintlify.com/docs.json","theme":"mint","name":"Nuphos","colors":{"primary":"#7D36EC","light":"#A469FF","dark":"#7D36EC"},"favicon":"https://mintcdn.com/zeabur/ukwjgUC_bdo0upyg/favicon.svg?fit=max\u0026auto=format\u0026n=ukwjgUC_bdo0upyg\u0026q=85\u0026s=762fb075170b68d66d8fe66d8874c90e","logo":{"light":"https://mintcdn.com/zeabur/1u0P1wZivJFSFJsY/logo/light.svg?fit=max\u0026auto=format\u0026n=1u0P1wZivJFSFJsY\u0026q=85\u0026s=5c8381edd3ec8e9def768eafc454dae1","dark":"https://mintcdn.com/zeabur/1u0P1wZivJFSFJsY/logo/dark.svg?fit=max\u0026auto=format\u0026n=1u0P1wZivJFSFJsY\u0026q=85\u0026s=50adce60af69170536400334f1c99e3c"},"navbar":{"links":[{"label":"Support","href":"mailto:hello@nuphos.com"}],"primary":{"type":"button","label":"Get Nuphos","href":"https://nuphos.ai?utm_source=docs.nuphos.ai\u0026utm_medium=documentation\u0026utm_campaign=docs_navigation\u0026utm_content=topbar_cta"}},"footer":{"socials":{"website":"https://nuphos.ai?utm_source=docs.nuphos.ai\u0026utm_medium=documentation\u0026utm_campaign=docs_navigation\u0026utm_content=footer_website","github":"https://github.com/nuphos/nuphos?utm_source=docs.nuphos.ai\u0026utm_medium=documentation\u0026utm_campaign=docs_navigation\u0026utm_content=footer_github"}},"integrations":{"posthog":{"apiKey":"phc_tD7X8fho5ug5BcC6zTZRWDn7wKFqGk3t3Y5bVE9Z67a9","apiHost":"https://us.i.posthog.com"}},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Website","href":"https://nuphos.ai?utm_source=docs.nuphos.ai\u0026utm_medium=documentation\u0026utm_campaign=docs_navigation\u0026utm_content=anchor_website","icon":"globe"},{"anchor":"GitHub","href":"https://github.com/nuphos/nuphos?utm_source=docs.nuphos.ai\u0026utm_medium=documentation\u0026utm_campaign=docs_navigation\u0026utm_content=anchor_github","icon":"github"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"zeabur","hasAudioNarration":false,"actualSubdomain":"zeabur","customDomains":["docs.nuphos.ai"],"gitSource":{"type":"github","owner":"zeabur","repo":"docs.nuphos.ai","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{},"buildId":"6af3dfb4a41de5ef1dd66140","clientVersion":"0.0.4111","searchFilterCounts":[{"language":"default","tag":"Connectors","count":39},{"language":"default","tag":"Documentation","count":26},{"language":"default","tag":"Cloud Providers","count":14},{"language":"default","tag":"Agents","count":8},{"language":"default","tag":"Get Started","count":7},{"language":"default","tag":"Observability","count":6},{"language":"default","tag":"Data, Documents \u0026 Email","count":5},{"language":"default","tag":"Infrastructure","count":4},{"language":"default","tag":"Security \u0026 Access","count":4},{"language":"default","tag":"Project Management","count":3}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"security/access-control","slug":"/security/access-control","pageMetadata":{"title":"Access control","description":"The layers that decide who can use which connected account — and what the agent is allowed to touch.","href":"/security/access-control"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"The layers that decide who can use which connected account — and what the agent is allowed to touch.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,em:`em`,p:`p`,strong:`strong`,..._provideComponents(),...props.components},{Heading,Tip}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Nuphos controls access in three layers. Together they answer: `,_jsx(_components.em,{children:`who is this\nperson, which accounts may they use, and what can the agent do right now?`})]}),`\n`,_jsx(Heading,{level:`2`,id:`1-team-roles`,children:`1. Team roles`}),`\n`,_jsxs(_components.p,{children:[`Every member has a `,_jsx(_components.a,{href:`/collaboration/teams`,children:`role`}),` — `,_jsx(_components.strong,{children:`Administrator`}),`, `,_jsx(_components.strong,{children:`Editor`}),`,\nor `,_jsx(_components.strong,{children:`Viewer`}),` — that sets their baseline. Only Administrators can connect or\nremove accounts and manage members. Viewers cannot use connected cloud accounts at all:\ncloud credentials and kubeconfigs are issued only to Editors and\nAdministrators. For an agent, the person sending the message and the owner of\nthe conversation must both be Editors or above.`]}),`\n`,_jsx(Heading,{level:`2`,id:`2-member-allow-lists-on-a-binding`,children:`2. Member allow-lists on a binding`}),`\n`,_jsxs(_components.p,{children:[`When an account is connected, an Administrator can restrict it to `,_jsx(_components.strong,{children:`specific team\nmembers`}),` with a per-binding allow-list. By default, binding an account grants\naccess to the person who connected it; the allow-list is how you widen or narrow\nthat.`]}),`\n`,_jsxs(_components.p,{children:[`This is enforced on `,_jsx(_components.strong,{children:`every`}),` credential request from an agent: even if an\nagent has an account selected, Nuphos re-checks that the requesting user\nis allowed to use it before handing over credentials.`]}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`Use allow-lists to keep production accounts to a small group while letting the\nwhole team work with staging.`})}),`\n`,_jsx(Heading,{level:`2`,id:`3-per-agent-credential-selection`,children:`3. Per-agent credential selection`}),`\n`,_jsxs(_components.p,{children:[`Each agent only ever has the credentials `,_jsx(_components.strong,{children:`you explicitly\nselected`}),` for it — and only for accounts you’re allowed to use. The\nagent can’t reach into an account you didn’t hand it. See\n`,_jsx(_components.a,{href:`/agent/sessions`,children:`Agents`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`why-this-matters`,children:`Why this matters`}),`\n`,_jsxs(_components.p,{children:[`These layers compose into least-privilege by default: a Viewer can’t change\nanything, a member can only use the accounts they’re on the allow-list for, and\neach agent is scoped to exactly the credentials it needs. Federated cloud credentials are short-lived; PATs, API keys and OAuth secrets\nhave their own lifetimes and revocation rules. See the `,_jsx(_components.a,{href:`/security/iam-trust`,children:`IAM trust model`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`Each agent receives a short-lived, agent-scoped Nuphos token rather\nthan your general login token. For control over `,_jsx(_components.em,{children:`changes`}),` specifically — approvals and audit — see\n`,_jsx(_components.a,{href:`/agent/plans`,children:`Plans \u0026 approvals`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`personal-credentials-and-local-sign-ins`,children:`Personal credentials and local sign-ins`}),`\n`,_jsx(_components.p,{children:`A member can connect personal GitHub, Linear, Gmail and Google Drive accounts.\nPersonal token access is owner-scoped; a shared transcript does not transfer\nthat account to another participant. Shared turns execute with the actual\nsender’s authorization rather than treating every message as the owner’s.`}),`\n`,_jsx(_components.p,{children:`A local runtime or local command can also reach sign-ins already on its computer.\nConversation connector selection is not a sandbox around those pre-existing\nlogins. Share a computer only with people you trust with that user’s access.`})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Access control","description":"The layers that decide who can use which connected account — and what the agent is allowed to touch.","href":"/security/access-control"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"1. Team roles","slug":"1-team-roles","depth":2,"children":[]},{"title":"2. Member allow-lists on a binding","slug":"2-member-allow-lists-on-a-binding","depth":2,"children":[]},{"title":"3. Per-agent credential selection","slug":"3-per-agent-credential-selection","depth":2,"children":[]},{"title":"Why this matters","slug":"why-this-matters","depth":2,"children":[]},{"title":"Personal credentials and local sign-ins","slug":"personal-credentials-and-local-sign-ins","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"zeabur","siteName":"Nuphos","title":"Access control - Nuphos","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-11T03:23:36.105Z","originalFileLocation":"security/access-control.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"The layers that decide who can use which connected account — and what the agent is allowed to touch.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Nuphos\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/zeabur/_0dGkkBXYfAb2656/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/zeabur/_0dGkkBXYfAb2656/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/zeabur/_0dGkkBXYfAb2656/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/zeabur/_0dGkkBXYfAb2656/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/zeabur/_0dGkkBXYfAb2656/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/zeabur/_0dGkkBXYfAb2656/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/zeabur/_0dGkkBXYfAb2656/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/zeabur/_0dGkkBXYfAb2656/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/zeabur/_0dGkkBXYfAb2656/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Access control - Nuphos\">\u003cmeta data-mint-head property=\"og:description\" content=\"The layers that decide who can use which connected account — and what the agent is allowed to touch.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Nuphos\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.nuphos.ai/security/access-control\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://zeabur.mintlify.site/_mintlify/api/og/v2?division=Security+%26+Access\u0026amp;title=Access+control\u0026amp;description=The+layers+that+decide+who+can+use+which+connected+account+%E2%80%94+and+what+the+agent+is+allowed+to+touch.\u0026amp;theme=9f54d24cba81f66723533884\u0026amp;signature=a938f8fec063a987cee28790fb6743d3c8c719887d8795e58158e7fd47b9f792\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Access control - Nuphos\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"The layers that decide who can use which connected account — and what the agent is allowed to touch.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://zeabur.mintlify.site/_mintlify/api/og/v2?division=Security+%26+Access\u0026amp;title=Access+control\u0026amp;description=The+layers+that+decide+who+can+use+which+connected+account+%E2%80%94+and+what+the+agent+is+allowed+to+touch.\u0026amp;theme=9f54d24cba81f66723533884\u0026amp;signature=a938f8fec063a987cee28790fb6743d3c8c719887d8795e58158e7fd47b9f792\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/zeabur/_0dGkkBXYfAb2656/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Nuphos\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#7D36EC\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.nuphos.ai/security/access-control\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/security/access-control.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.nuphos.ai/#organization\",\"name\":\"Nuphos\",\"url\":\"https://docs.nuphos.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/zeabur/1u0P1wZivJFSFJsY/logo/light.svg?fit=max\u0026auto=format\u0026n=1u0P1wZivJFSFJsY\u0026q=85\u0026s=5c8381edd3ec8e9def768eafc454dae1\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.nuphos.ai#website\",\"name\":\"Nuphos\",\"url\":\"https://docs.nuphos.ai\",\"publisher\":{\"@id\":\"https://docs.nuphos.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.nuphos.ai/security/access-control#webpage\",\"url\":\"https://docs.nuphos.ai/security/access-control\",\"name\":\"Access control\",\"description\":\"The layers that decide who can use which connected account — and what the agent is allowed to touch.\",\"dateModified\":\"2026-11-11T03:23:36.105Z\",\"isPartOf\":{\"@id\":\"https://docs.nuphos.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.nuphos.ai/security/access-control#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.nuphos.ai/security/access-control#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Nuphos\",\"item\":\"https://docs.nuphos.ai\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Access control\",\"item\":\"https://docs.nuphos.ai/security/access-control\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.nuphos.ai/security/access-control#article\",\"headline\":\"Access control\",\"name\":\"Access control\",\"description\":\"The layers that decide who can use which connected account — and what the agent is allowed to touch.\",\"url\":\"https://docs.nuphos.ai/security/access-control\",\"mainEntityOfPage\":{\"@id\":\"https://docs.nuphos.ai/security/access-control#webpage\"},\"dateModified\":\"2026-11-11T03:23:36.105Z\",\"publisher\":{\"@id\":\"https://docs.nuphos.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.nuphos.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Nuphos\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Nuphos\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/security/access-control.md","siteName":"Nuphos","nav":{"global":{"anchors":[{"anchor":"Website","href":"https://nuphos.ai?utm_source=docs.nuphos.ai\u0026utm_medium=documentation\u0026utm_campaign=docs_navigation\u0026utm_content=anchor_website","icon":"globe"},{"anchor":"GitHub","href":"https://github.com/nuphos/nuphos?utm_source=docs.nuphos.ai\u0026utm_medium=documentation\u0026utm_campaign=docs_navigation\u0026utm_content=anchor_github","icon":"github"}]},"tabs":[{"tab":"Documentation","groups":[{"group":"Get Started","pages":[{"title":"Introduction","href":"/introduction"},{"title":"Quickstart","href":"/quickstart"},{"title":"Desktop app","href":"/desktop"},{"title":"Command line (CLI)","href":"/cli"},{"title":"Self-host","href":"/self-host"},{"title":"Core concepts","href":"/concepts"},{"title":"Plans \u0026 billing","href":"/billing"}]},{"group":"Agents","pages":[{"title":"Runtimes and computers","href":"/agent/runtime"},{"title":"Agents and shared sessions","href":"/agent/sessions"},{"title":"Plans \u0026 approvals","href":"/agent/plans"},{"title":"Memory and playbooks","href":"/agent/memory"},{"title":"Instructions and personal setup","href":"/agent/instructions"},{"title":"Skills","href":"/agent/skills"},{"title":"Triggers \u0026 automation","href":"/agent/triggers"},{"title":"Local commands and terminals","href":"/agent/local-commands"}]},{"group":"Infrastructure","pages":[{"title":"Kubernetes clusters","href":"/infrastructure/clusters"},{"title":"Compute \u0026 access","href":"/infrastructure/compute"},{"title":"Cloud resources","href":"/infrastructure/resources"},{"title":"Monitoring overview","href":"/observability/monitoring"}]},{"group":"Collaboration","pages":[{"title":"Teams \u0026 members","href":"/collaboration/teams"}]},{"group":"Migrate","pages":[{"title":"Migrate from Conductor","href":"/migrate/conductor"},{"title":"Migrate from Conductor Cloud","description":"Get your work out of Conductor Cloud before it goes read-only, then continue it with your team on Nuphos cloud computers or your own machines.","href":"/migrate/conductor-cloud"}]},{"group":"Security \u0026 Access","pages":[{"title":"Access control","href":"/security/access-control"},{"title":"IAM trust model","description":"How Nuphos federates into your cloud accounts — short-lived, least-privilege, and without a long-lived key.","href":"/security/iam-trust"},{"title":"Auto Mode and Full Access","href":"/security/auto-mode"},{"title":"Cloud permission errors","href":"/security/permission-admin"}]}]},{"tab":"Connectors","pages":[{"title":"Connectors","href":"/connectors/overview"}]}]},"basePath":"","title":"Access control - Nuphos","buildId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","deploymentId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","dynamics":[],"chunks":[]}