> For the complete documentation index, see [llms.txt](https://docs.finops.softwareone.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.finops.softwareone.com/finops-for-cloud/overview/how-finops-for-cloud-works.md).

# How FinOps for Cloud works

FinOps for Cloud supports three major cloud service providers, including Amazon Web Services (AWS), Google Cloud Platform (GCP), and Microsoft Azure.

To use FinOps, you only need to provide **read-only** access to your connected cloud account. This allows FinOps to view and retrieve data without making any changes. It also means that FinOps does not interfere with any processes in your environment.

When the read-only access has been granted, the following data is used:&#x20;

* Billing information, including all details related to your cloud expenses.
* For actively discoverable types, the current state of resources is collected. This is essential for implementing constraints like Time to Live (TTL), expense limits, and recommendations.
* Monitoring data from the cloud is used to identify underutilized instances.

The following sections explain how FinOps for Cloud obtains these details for each of the supported cloud platforms.

### Amazon Web Services

For AWS accounts:

* The billing information is retrieved from the Data Exports located in a designated S3 bucket in the cloud. For details, see [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) in the AWS S3 API Reference Guide.
* [Amazon CloudWatch](https://docs.aws.amazon.com/cloudwatch/) is the source of monitoring data.&#x20;
* Resource discovery is done using the Discovery API. For reference, see the following pages in the Amazon EC2 API Reference:
  * [DescribeInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html) – Describes the specified instances or all instances.
  * [DescribeVolumes](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeVolumes.html) – Describes the specified EBS volumes or all of your EBS volumes.
  * [DescribeSnapshots](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSnapshots.html) – Describes the specified EBS snapshots available to you or all of the EBS snapshots available to you.
  * [ListBuckets](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html) – Returns a list of all buckets owned by the authenticated sender of the request.

### Microsoft Azure

For Azure cloud accounts:

* The billing information is retrieved from the Billing API. For details, see [Usage Details - List](https://learn.microsoft.com/en-us/rest/api/consumption/usage-details/list?view=rest-consumption-2024-08-01\&tabs=HTTP) in the Microsoft documentation.
* The cloud's monitoring service is used as the source of all monitoring data.
* Resource discovery is done using the Discovery API. For reference, see the following pages in Microsoft documentation:
  * [Virtual Machines - List All](https://docs.microsoft.com/en-us/rest/api/compute/virtual-machines/list-all) – Lists all of the virtual machines in the specified subscription.
  * [Disks - List](https://docs.microsoft.com/en-us/rest/api/compute/disks/list) – Lists all the disks under a subscription.
  * [Snapshots - List](https://docs.microsoft.com/en-us/rest/api/compute/snapshots/list) – Lists snapshots under a subscription.
  * [Storage Accounts - List](https://docs.microsoft.com/en-us/rest/api/storagerp/storage-accounts/list) – Lists all the storage accounts available under the subscription.

### Google Cloud Platform

For Google Cloud accounts:

* The billing information is retrieved from the BigQuery Service.
* Cloud's monitoring service is used as the source of all monitoring data.
* Resource discovery is done using the Discovery API. For reference, see the following pages in Google Cloud documentation:
  * [Method: instances.list](https://cloud.google.com/compute/docs/reference/rest/v1/instances/list) – Retrieves the list of instances contained within the specified zone.
  * [Method: disks.list](https://cloud.google.com/compute/docs/reference/rest/v1/disks/list) – Retrieves a list of persistent disks contained within the specified zone.
  * [Method: snapshots.list](https://cloud.google.com/compute/docs/reference/rest/v1/snapshots/list) – Retrieves the list of Snapshot resources contained within the specified project.
  * [Buckets: list](https://cloud.google.com/storage/docs/json_api/v1/buckets/list) – Retrieves a list of buckets for a given project, ordered in the list lexicographically by name.
  * [Method: addresses.list](https://cloud.google.com/compute/docs/reference/rest/v1/addresses/list) – Retrieves a list of addresses contained within the specified region.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.finops.softwareone.com/finops-for-cloud/overview/how-finops-for-cloud-works.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
