Nebius Cloud

Firefly integrates with Nebius Cloud to pull in information about your cloud resources—such as compute instances, GPU clusters, Kubernetes node groups, PostgreSQL clusters, container registries, and more—directly into your Firefly Inventory. This enables you to view, manage, and govern Nebius assets. You can use Firefly to enforce infrastructure-as-code (IaC) practices and apply policies across your Nebius environment, helping ensure compliance, visibility, and best practices at scale.

Best Practices

  1. For governance, mark your production integrations using the "Mark as Production" option during setup (or edit this setting later in the Integrations window).

  2. Use a dedicated Nebius service account for Firefly's access rather than sharing with other applications.

  3. Store Firefly API credentials securely using environment variables or a secrets manager.

Integration Method

Nebius integration is performed using a Terraform module that creates the necessary IAM resources and registers the integration with Firefly.

  • Terraform Module Creates a service account with read access to your Nebius resources and optionally configures audit log permissions for event-driven integration.

Using Terraform Module

The Terraform module is the recommended method for Nebius integration as it provides automated, repeatable deployment that fits into your existing IaC workflows.

Prerequisites

  • Terraform >= 1.5.0 installed

  • Nebius CLI installed and configured (Installation Guidearrow-up-right)

  • Firefly Credentials (access key and secret key from Firefly console)

  • IAM admin permissions in your Nebius tenant (to create service accounts and access permits)

Setup Procedure

  1. Log in to your Nebius tenant with permissions to create IAM resources.

  2. In Firefly, go to Settings > Integrations.

  3. Select Add New > Nebius.

  4. Enter your Tenant ID and Project ID (see Getting Your IDs below).

  5. (Optional) Enter an Integration Name to customize how this integration appears in Firefly.

  6. (Optional) Select Mark as Production to flag this account as production in Firefly.

  7. (Optional) Select Enable Event-Driven to enable audit log permissions for real-time event-driven scanning.

  8. Click Generate Terraform Snippet to create the module configuration.

  9. Copy the generated Terraform snippet to a new file (e.g., main.tf).

  10. Configure Nebius authentication (see Authentication Methods below).

  11. Run terraform init && terraform plan && terraform apply.

  12. Once the Terraform apply completes, Firefly will automatically detect the integration and begin scanning your resources.

Getting Your IDs

Use the Nebius CLI to retrieve your Tenant ID and Project ID:

Nebius Authentication Methods

The Terraform module supports three authentication methods for running the onboarding:

Option 1: Environment Variables (Recommended for CI/CD)

Set the following environment variables before running Terraform:

In your Terraform configuration:

Option 2: Direct Credentials

Specify credentials directly in the Terraform module:

Option 3: CLI Profile (Local Development)

Use an existing Nebius CLI profile:

Creating Nebius Admin Credentials

If you need to create new admin credentials for running the Terraform module:

Terraform Module Example

Module Variables

Required Variables

Variable
Description

tenant_id

Nebius Tenant ID

project_id

Nebius Project ID where service account will be created

firefly_access_key

Firefly access key (from Settings > Access Keys)

firefly_secret_key

Firefly secret key

Optional Variables

Variable
Default
Description

integration_name

Tenant name

Custom integration name in Firefly

prefix

""

Prefix for created resource names

suffix

""

Suffix for created resource names

existing_service_account_id

null

Use existing service account instead of creating new

existing_group_id

null

Use existing group instead of creating new

is_prod

true

Mark integration as production environment

enable_audit_logs

true

Enable audit log permissions for event-driven

skip_integration_request

false

Skip Firefly API registration (for testing)

Created Resources

The Terraform module creates the following resources in your Nebius tenant:

Resource
Name
Description

Service Account

firefly-integration

Used by Firefly to access your environment

Group

firefly-group

Contains the service account

Group Membership

Links service account to group

Access Permit

viewer

Read-only access on tenant for inventory discovery

Access Permit

auditlogs.audit-event-viewer

View audit logs (if event-driven enabled)

Access Permit

auditlogs.audit-event-exporter

Export audit logs (if event-driven enabled)

Auth Public Key

RSA key pair for service account authentication

IAM Permissions

The integration creates the following access permits:

  • Viewer Role — Allows Firefly to discover and inventory all Nebius resources in your tenant, including compute instances, GPU clusters, Kubernetes resources, databases, and storage.

When event-driven integration is enabled:

  • Audit Log Viewer — Allows reading audit log events for real-time change detection.

  • Audit Log Exporter — Allows exporting audit log events to Firefly for processing and analysis.

Event-Driven Integration

When enable_audit_logs is set to true (default), the integration configures audit log permissions for real-time event-driven scanning. This enables Firefly to detect changes in your Nebius environment as they happen, providing faster drift detection and inventory updates.

Nebius Discovery Status

To scan your integration for changes and discover new assets on-demand:

Procedure

  1. Go to Settings > Integrations > Nebius.

  2. Find the integration you want to scan.

  3. For asset changes, on the integration menu, select Scan Assets.

  4. For IaC stacks changes, on the integration menu, select Scan Stacks.

  5. View changes in the Inventory and/or IaC Explorer after several minutes.

Policy Evolution

The Terraform module uses versioned policies (policy_version output) to track permission changes over time. When Firefly requires additional permissions in the future, you can update the module version and re-apply to get the new policy.

Additional Resources

Last updated

Was this helpful?