Skip to content
Agentmart
Submit a tool

nebius-service-account-auth

Set up or verify unattended Nebius CLI authentication on a VM or CI runner using a project-scoped service account, an attached VM identity, or an…

Skill by nebius

IndexedApache-2.0★ 60
Write a review

Chalk Labs

Need help deploying nebius-service-account-auth?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/nebius-nebius-service-account-auth

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Set up or verify unattended Nebius CLI authentication on a VM or CI runner using a project-scoped service account, an attached VM identity, or an authorized-key profile. Use human OAuth skills when the operator needs their personal identity.

Use cases: devops, security

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/nebius-service-account-auth

What's inside

Skill name
nebius-service-account-auth
Description
Set up or verify unattended Nebius CLI authentication on a VM or CI runner using a project-scoped service account, an attached VM identity, or an authorized-key profile. Use human OAuth skills when the operator needs their personal identity.
License
Apache-2.0
Instructions
160 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Nebius service-account authentication

A service account gives the VM its own identity and permissions. Initial setup
requires an authenticated administrator for the target project; subsequent CLI
authentication needs no browser or copied human OAuth cache. Nebius documents
the [authorized-key flow](https://docs.nebius.com/cli/no-browser) and
[VM attachment](https://docs.nebius.com/cli/compute-vm).

## Choose the identity before changing IAM

Use this route for unattended workloads or a requested service-account setup.
For interactive work as the human operator, prefer
[vm-nebius-auth](../vm-nebius-auth/SKILL.md) when SSH forwarding is available,
or [nebius-headless-oauth](../nebius-headless-oauth/SKILL.md) when a private
terminal is available but callback forwarding is not. Human OAuth needs no
new IAM identity and retains the operator's existing permissions; a service
account has its own grants and credential lifecycle.

For a readiness-only request, run the selected profile's Nebius preflight and
report its result without changing credentials or IAM. Perform authorized IAM
setup on the already authenticated operator machine. Resolve the exact project
and operator profile privately, verify the project's
parent, and run `npa workbench health preflight --checks nebius --json` with
`NPA_NEBIUS_PROFILE` selecting that operator profile before creating resources.
Reuse an explicitly selected, verified account when appropriate. Record the
provider-created IDs and their ownership before the next mutation. Capture CLI
responses privately; keep identities, keys, tokens, and infrastructure details
out of chat, Git, logs, and public validation reports.

## Choose project permissions

| Project role | Intended use | IAM distinction |
| --- | --- | --- |
| `viewer` | Read resource information | Cannot create resources or manage permissions |
| `editor` | Create and manage workload resources | Can create service accounts; cannot create authorized keys or manage groups and grants |
| `admin` | Automate project setup, including IAM | Can manage project groups, grants, memberships, and authorized keys |

Use narrower service-specific roles where they cover the workload. See the
[role matrix](https://docs.nebius.com/iam/authorization/roles). S3 access keys
are separate from the authorized key used for Nebius CLI authentication.

The service account does not need `admin` merely to authenticate. A project
administrator is needed for initial group/permission and authorized-key setup.
Choose the service account's runtime role for its actual work; use `admin`
when project IAM administration is requested, not as a login workaround.

Create an account and a custom group in the selected project when needed.
Replace `<role>` with the chosen project role, then add the account to the group:

```bash
nebius --profile "<operator-profile>" iam service-account create \
  --parent-id "<project-id>" --name "<service-account-name>"
nebius --profile "<operator-profile>" iam group create \
  --parent-id "<project-id>" --name "<group-name>"
nebius --profile "<operator-profile>" iam access-permit create \
  --parent-id "<group-id>" --resource-id "<project-id>" --role "<role>"
nebius --profile "<operator-profile>" iam group-membership create \
  --parent-id "<group-id>" --member-id "<service-account-id>"
```

Capture returned IDs privately and verify each object's parent, the permit's
resource and role, and the membership's account. An administrator of that
project can perform this setup; tenant-wide admin is
unnecessary. The default `admins` and `editors` groups have tenant-wide scope.
Follow the [custom-group guide](https://docs.nebius.com/iam/authorization/groups/manage)
for project-scoped bindings. Use `editor` instead when IAM administration is
outside the workload's scope.

## Configure the VM identity

For a new Nebius VM, specify its service account at creation. The CLI can use
the token supplied at `/mnt/cloud-metadata/token`. Preserve an existing
npa-agent VM's attached identity and profile. This avoids distributing a
private authorized key. It does not authorize creating, replacing, or
reattaching a VM solely to complete authentication.

If a dedicated CLI profile is needed for an already attached identity, check
the installed CLI's help for `profile create "<service-account-profile>"`
with `--endpoint api.nebius.cloud --parent-id "<project-id>"`
and `--token-file /mnt/cloud-metadata/token --skip-auth`. Verify the returned
identity matches the attached account; token-file presence alone does not
establish authentication or permissions.

For an existing development VM without an attached service account:

1. An administrator creates the service account, project group, role permit,
   and membership, then generates an authorized key:

   ```bash
   umask 077
   nebius --profile "<operator-profile>" iam auth-public-key generate \
     --parent-id "<project-id>" --service-account-id "<service-account-id>" \
     --output "<private-credentials-file>"
   ```

2. Deliver only that credentials file through a private SSH channel or secret
   manager. Keep it readable only by its intended user and out of Git, chat,
   command arguments, logs, and images. Create a dedicated profile on the VM:

   ```bash
   nebius --no-browser --no-check-update profile create "<service-account-profile>" \
     --endpoint api.nebius.cloud --parent-id "<project-id>" \
     --service-account-file "<private-credentials-file>" --skip-auth
   ```

Profile creation activates the new profile. When adding a profile alongside an
existing operator profile, preserve the previous active selection and restore
it with `nebius profile activate "<previous-profile>"`; explicitly select the
service-account profile for its workload. Keep the key available for future
token exchanges. Rotate it through the administrator's approved credential
lifecycle rather than copying the operator's human CLI cache.

## Verify authentication and the intended permission

On the target machine, verify that the explicit profile's `iam whoami` result
matches the selected service account; capture the result privately. Then run:

```bash
env -u NEBIUS_IAM_TOKEN -u NEBIUS_IAM_TOKEN_FILE \

From nebius/nebius-physical-ai, Apache-2.0.

More from nebius/nebius-physical-ai

Signals

Stars
60
Forks
19
Open issues
10
Last commit (this folder)
Sep 15, 2026 (1 month ago)

From GitHub (fetched Oct 24, 2026).

Details

License
Apache-2.0
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from nebius

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get nebius-service-account-auth running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying nebius-service-account-auth?

CallGet help
Cite this page

nebius-service-account-auth skill. Agent Mart. https://agentmart.dev/skills/nebius-nebius-service-account-auth (last updated 2026-10-24)