bling bucket (reports/cost-csv). Costory generates an API signing key. You upload the public key on a dedicated IAM user. You never paste a private PEM.
- Manual setup
- Terraform
1
Create a dedicated reader user
In the OCI Console, create an IAM user in a group such as That grant is read on Oracle cost reports in the
costory-oci-billing. Do not use an administrator.Attach this policy on the root compartment. The define tenancy OCID is Oracle’s public reporting tenancy. Do not replace it with your own tenancy OCID.bling namespace, under your tenancy OCID, at reports/cost-csv. See Oracle Cost and Usage Reports.2
Open Costory and copy the public key
Go to Integrations, click + Add integration, then choose Oracle Cloud under Billing. The connect URL is
/integration/new/oci/billing. Costory generates a key pair. Copy the Public key from the form. The fingerprint is derived from that key and should match the Console after you upload it. The private key stays in Costory and is never shown. Use Regenerate only if you need a new pair before saving.3
Paste the public key on the OCI user
On the reader user, open API keys > Add API key > Paste a public key. Paste the generated public key. See Oracle API keys and request signing.Do not create a Customer Secret Key / HMAC.
4
Copy identifiers and confirm reports exist
Copy the user OCID (
ocid1.user.oc1...), tenancy OCID (ocid1.tenancy.oc1...), and tenancy home region (for example eu-frankfurt-1). Cost reports live in the home region.Confirm objects exist in Cost and Usage Reports.5
Enter connection details
Fill Connection name (default Oracle Cloud), User OCID, Tenancy OCID, and Home region.Prefix is optional. It defaults to
reports/cost-csv. Do not add a trailing /.6
Validate, then save
Click Validate. Costory signs a native Object Storage list of
reports/cost-csv in the bling bucket. Save stays disabled until that list succeeds. An empty prefix is not success: Oracle always writes reports for metered tenancies. If this is the only billing source and it is demo data, Costory asks you to confirm before replacing it.Field reference
Oracle-managed defaults you do not set: Object Storage namespace
bling, bucket name = tenancy OCID.
What Costory includes
Costory copies native cost reports fromreports/cost-csv and maps them into .
Typical lines are the cost-csv rows Oracle already writes for that tenancy (service, SKU, compartment, and region as the export provides them).
How to analyze Oracle Cloud costs
- Spend by service: group by Service name or SKU
- Spend by compartment or region: group by the matching Standard Column when the export carries it
- Spend next to AWS, GCP, and Azure: filter Provider in Explorer
- FOCUS cost reports (
FOCUS Reports/...) - Deprecated
reports/usage-csv - HMAC / Customer Secret Key / S3-compatible access
- Live OCI Monitoring metrics
Rotate credentials from Integrations. Costory generates a new key pair. Upload the new public key on the same reader user. User OCID, tenancy OCID, home region, and destination stay the same.
Troubleshooting
Related pages
Billing Data
All billing providers and shared setup notes.
AWS billing
Connect AWS CUR 2.0 the same way you connect other clouds.
Azure billing
Import Azure Cost Management exports.
Explorer
Filter and group Oracle Cloud spend with the rest of your stack.
