Overview
nOps connects to Oracle Cloud with read-only access to your cost and usage reports, plus a lookup of which Oracle organization your tenancy belongs to. That’s the whole integration: nOps does not read, create, or change any other resource in your tenancy. You grant this access by running the nOps Resource Manager stack during Integration Setup. The stack’s source is public: nops-io/terraform-oci-nops-integration.Where Your Cost Data Comes From
Oracle writes your cost reports to Object Storage, in a bucket that Oracle owns, not in your tenancy:
What Oracle puts there:
- A new FOCUS report about every 6 hours. A report can be up to 24 hours late.
- Each report is a compressed CSV file (
.csv.gz). Oracle splits large reports into several files of up to one million rows each. - Oracle keeps reports for one year, so nOps can load up to the last 12 months when you connect.
- Non-metered tenancies get no cost reports.
- In an Oracle organization, Oracle writes the reports for the whole organization in the parent tenancy, and they include every child tenancy. Connect the parent.
Permissions
The stack creates one policy, in your root compartment, with three statements:
The first two statements are the policy Oracle documents for reading cost and usage reports. Oracle only lets your tenancy read the bucket named after your own tenancy OCID, so this policy can’t reach any other customer’s reports.
The policy must be in the root compartment. Oracle doesn’t accept
define and endorse statements anywhere else.
The read objects verb grants Oracle’s OBJECT_INSPECT and OBJECT_READ permissions only. It doesn’t include OBJECT_CREATE, OBJECT_OVERWRITE, or OBJECT_DELETE, so nOps can’t add, change, or delete report files.
API Calls nOps Makes
These are every Oracle Cloud API operation nOps calls. All of them are reads.
Every request is signed with the nOps API key on the nOps user, and is sent over HTTPS to Oracle’s public endpoints for your home region.
What nOps can’t do with this access:
- See, create, change, or delete any resource in your tenancy (compute, storage, networks, databases, and so on)
- Read objects in your own Object Storage buckets
- Add, change, or delete report files in Oracle’s report bucket
- Read another tenancy’s cost reports. Oracle only lets your tenancy read the bucket named after your own tenancy OCID
- See the other tenancies, subscriptions, or invitations in your Oracle organization
- Change billing settings, budgets, or subscriptions
- Sign in to the Oracle Cloud console, or use any credential other than the API key
Resources the Stack Creates
All of these are created in the root compartment of your home region, whichever region you run the stack from.<suffix> is 6 hexadecimal characters that each stack picks once (for example nops-cost-reports-reader-3f9a1c). Running Apply again keeps it. A new stack picks a new one, so it never clashes with names an old stack left behind.
Oracle requires an email on every user. The nOps user gets the email you enter in the stack, or yours if you leave it blank. Oracle may send it a welcome message, but the user still can’t sign in.
Resource Manager also keeps the stack itself, with its job history, in the compartment and region you chose when you created it. Keep the stack: you use it later to update or remove everything it created.
Where to find them: in tenancies that use identity domains, the user and group are in the Default domain (Identity & Security > Domains > Default). In older tenancies, look under Identity & Security > Users and Groups. The policy is under Identity & Security > Policies, in the root compartment.
Stack Inputs and Outputs
You fill in two fields. Resource Manager fills in your tenancy, region, and user for you.
When the apply job succeeds, its Outputs show:
The Deploy to Oracle Cloud button always loads a pinned, tagged release of the stack (currently v1.0.2), so the code you read on GitHub is the code that runs.
How nOps Holds the Key
- nOps creates an RSA key pair for each integration. You only ever see the public key.
- The private key stays in an nOps encrypted secret store. It isn’t shown in the nOps app, sent to your browser, or included in the connection code.
- The connection code the stack outputs holds no secret: your tenancy OCID, the user OCID, the key fingerprint, and your home region. nOps checks that the fingerprint matches its own key before it saves the code.
- When you delete the integration in nOps, nOps deletes the private key.
Requirements
Security Model
Removing Access
Do both:- In nOps: delete the Oracle Cloud integration in Settings > Cloud Provider Integrations. nOps stops reading reports and deletes its private key.
- In Oracle Cloud: open the nOps stack in Developer Services > Resource Manager > Stacks and click Destroy. This removes the policy, the user, its API key, and the group. You can then delete the stack.
Related Guides
Integration Setup
Step-by-step guide to connect your Oracle Cloud tenancy.
Cloud Provider Integrations
All the cloud providers and tools you can connect to nOps.