# Getting Started

Installs a [catalog scraper](/docs/guide/config-db/scrapers/aws.md) that:

* Scrapes AWS Resources and detects changes in the resource definition
* Ingests changes from CloudTrail
* Ingests cost data from AWS Cost & Usage Reporting
* Links AWS EKS resources to the corresponding Kubernetes resources

Prerequisites

* IAM Role for scraping AWS API's
* Mission Control configured to use Pod Identity/IRSA or an AWS access key

For Cost & Usage Reporting

* [Cost and Usage Reports](https://docs.aws.amazon.com/cur/latest/userguide/what-is-cur.html) are configured with an [Athena](https://docs.aws.amazon.com/cur/latest/userguide/use-athena-cf.html) table
* The `AWSQuicksightAthenaAccess` policy or similar is attached to config-db IAM role

- Pod Identity
- Access Keys

1. Configure the `config-db-sa` service account with a [AWS IAM Pod Identity / Role](/docs/integrations/aws/iam.md?type=pod)
2. Install the [mission-control-aws](https://artifacthub.io/packages/helm/flanksource/mission-control-aws) chart

* Helm
* Flux

```
helm install mission-control-aws flanksource/mission-control-aws \

 -n mission-control --wait 
```

```
apiVersion:  helm.toolkit.fluxcd.io/v2

kind: HelmRelease

metadata:

  name: mission-control-aws

  namespace: mission-control

spec:

  chart:

    spec:

      chart: mission-control-aws

      sourceRef:

        kind: HelmRepository

        name: flanksource

        namespace: mission-control

  interval: 5m

values:
```

values.yaml

* accessKey: (default:
  <!-- -->
  "null"
  <!-- -->
  )

* assumeRole: - Name of an IAM role to assume

* cloudtrail:

  Import and correlate cloudtrail events with AWS resources

  * exclude

    <!-- -->

    \[]:

    list of events to to exclude

    \- list of events to to exclude

  * maxAge: (default:
    <!-- -->
    "36h"
    <!-- -->
    ) - Maximum lookback age when querying cloudtrail

  \- Import and correlate cloudtrail events with AWS resources

* compliance: (default:
  <!-- -->
  "true"
  <!-- -->
  ) - Import AWS Config Rule failures as insights

* connection: string
  <!-- -->

* costReporting:

  Scrape cost reports and match them with catalog items

  * database: string
    <!-- -->
  * enabled: boolean
    <!-- -->
  * region: string
    <!-- -->
  * s3BucketPath: string
    <!-- -->
  * table: string
    <!-- -->

  \- Scrape cost reports and match them with catalog items

* endpoint: - Custom AWS endpoint e.g. for testing with LocalStack

* excludeResources
  <!-- -->
  \[]:

* global:

  Global values are values that can be accessed from any chart or subchart by exactly the same name.



  \- Global values are values that can be accessed from any chart or subchart by exactly the same name.

* includeResources
  <!-- -->
  \[]:

* labels:

  \- yaml-language-server: $schema=values.schema.json

* region

  <!-- -->

  \[]:

  AWS regions to pull from

  \- AWS regions to pull from

* scraper:
  * name: string
    <!-- -->
    (default:
    <!-- -->
    "aws"
    <!-- -->
    )

* secretKey: (default:
  <!-- -->
  "null"
  <!-- -->
  )

* skipTLSVerify: (default:
  <!-- -->
  "false"
  <!-- -->
  ) - Skip TLS verification

* transform:

  * changes:

    * exclude
      <!-- -->
      \[]:
    * mapping
      <!-- -->
      \[]:

  * relationship
    <!-- -->
    \[]:

1. Create a new connection for an [AWS Access Key](/docs/integrations/aws/iam.md?type=accessKey)
2. Install the [mission-control-aws](https://artifacthub.io/packages/helm/flanksource/mission-control-aws) chart

* Helm
* Flux

```
helm install mission-control-aws flanksource/mission-control-aws \

 --set connection=connection://mission-control/aws \

 -n mission-control --wait 
```

```
apiVersion:  helm.toolkit.fluxcd.io/v2

kind: HelmRelease

metadata:

  name: mission-control-aws

  namespace: mission-control

spec:

  chart:

    spec:

      chart: mission-control-aws

      sourceRef:

        kind: HelmRepository

        name: flanksource

        namespace: mission-control

  interval: 5m

values:

  connection: connection://mission-control/aws
```

values.yaml

* accessKey: (default:
  <!-- -->
  "null"
  <!-- -->
  )

* assumeRole: - Name of an IAM role to assume

* cloudtrail:

  Import and correlate cloudtrail events with AWS resources

  * exclude

    <!-- -->

    \[]:

    list of events to to exclude

    \- list of events to to exclude

  * maxAge: (default:
    <!-- -->
    "36h"
    <!-- -->
    ) - Maximum lookback age when querying cloudtrail

  \- Import and correlate cloudtrail events with AWS resources

* compliance: (default:
  <!-- -->
  "true"
  <!-- -->
  ) - Import AWS Config Rule failures as insights

* connection: string
  <!-- -->

* costReporting:

  Scrape cost reports and match them with catalog items

  * database: string
    <!-- -->
  * enabled: boolean
    <!-- -->
  * region: string
    <!-- -->
  * s3BucketPath: string
    <!-- -->
  * table: string
    <!-- -->

  \- Scrape cost reports and match them with catalog items

* endpoint: - Custom AWS endpoint e.g. for testing with LocalStack

* excludeResources
  <!-- -->
  \[]:

* global:

  Global values are values that can be accessed from any chart or subchart by exactly the same name.



  \- Global values are values that can be accessed from any chart or subchart by exactly the same name.

* includeResources
  <!-- -->
  \[]:

* labels:

  \- yaml-language-server: $schema=values.schema.json

* region

  <!-- -->

  \[]:

  AWS regions to pull from

  \- AWS regions to pull from

* scraper:
  * name: string
    <!-- -->
    (default:
    <!-- -->
    "aws"
    <!-- -->
    )

* secretKey: (default:
  <!-- -->
  "null"
  <!-- -->
  )

* skipTLSVerify: (default:
  <!-- -->
  "false"
  <!-- -->
  ) - Skip TLS verification

* transform:

  * changes:

    * exclude
      <!-- -->
      \[]:
    * mapping
      <!-- -->
      \[]:

  * relationship
    <!-- -->
    \[]:

When you go to the catalog now, you can now see all the AWS Resources

![](/assets/images/aws-registry-catalog-scraper-87703a61ec28dce2995179ff9165f2b4.png)

## Next Steps[​](#next-steps "Direct link to Next Steps")

AWS Cloudformation

[relationship]()

[](/docs/guide/canary-checker/reference/aws-cloudwatch.md)

[](/docs/guide/canary-checker/reference/aws-cloudwatch.md)

[AWS Cloudwatch Alarms](/docs/guide/canary-checker/reference/aws-cloudwatch.md)

[Aggregate Alarms](/docs/guide/canary-checker/reference/aws-cloudwatch.md)

[](/docs/guide/canary-checker/reference/aws-cloudwatch.md)[health-check]()

[](/docs/guide/canary-checker/reference/aws-config.md)

[](/docs/guide/canary-checker/reference/aws-config.md)

[AWS Config](/docs/guide/canary-checker/reference/aws-config.md)

[Check for AWS resources matching a query](/docs/guide/canary-checker/reference/aws-config.md)

[](/docs/guide/canary-checker/reference/aws-config.md)[health-check]()

[](/docs/guide/canary-checker/reference/aws-config-rule.md)

[](/docs/guide/canary-checker/reference/aws-config-rule.md)

[AWS Config Rules](/docs/guide/canary-checker/reference/aws-config-rule.md)

[Check for non-compliant AWS resources](/docs/guide/canary-checker/reference/aws-config-rule.md)

[](/docs/guide/canary-checker/reference/aws-config-rule.md)[health-check]()

[](/docs/guide/config-db/scrapers/aws.md)

[](/docs/guide/config-db/scrapers/aws.md)

[ScrapeConfig](/docs/guide/config-db/scrapers/aws.md)

[](/docs/guide/config-db/scrapers/aws.md)[CRD]()
