Getting Started
The AWS chart catalog scraper 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 are configured with an Athena table
- The
AWSQuicksightAthenaAccess
policy or similar is attached to config-db IAM role
- Pod Identity
- Access Keys
- Configure the
config-db-sa
service account with a AWS IAM Pod Identity / Role - Install the 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: 1m
values:
values.yaml
- accessKey:
- value: string
- valueFrom:
- configMapKeyRef:
- key: string
- name: string
- helmRef:
- key: string
- name: string
- secretKeyRef:
- key: string
- name: string
- serviceAccount: string
- configMapKeyRef:
- assumeRole: - Name of an IAM role to assume
- cloudtrail: - Import and correlate cloudtrail events with AWS resources
Import and correlate cloudtrail events with AWS resources
- exclude[]: - list of events to to exclude
list of events to to exclude
- maxAge: (default: "7d") - Maximum lookback age when querying cloudtrail
- exclude[]:
- compliance: (default: "true") - Import AWS Config Rule failures as insights
- connection: string
- costReporting: - Scrape cost reports and match them with catalog items
Scrape cost reports and match them with catalog items
- database: string
- enabled: boolean
- region: string
- s3BucketPath: string
- table: string
- 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:
- value: string
- valueFrom:
- configMapKeyRef:
- key: string
- name: string
- helmRef:
- key: string
- name: string
- secretKeyRef:
- key: string
- name: string
- serviceAccount: string
- configMapKeyRef:
- skipTLSVerify: (default: "false") - Skip TLS verification
- topology:
- name: string (default: "aws")
- transform:
- changes:
- exclude[]:
- mapping[]:
- exclude[]:
- relationship[]:
- changes:
- Create a new connection for an AWS Access Key
- Install the 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: 1m
values:
connection: connection://mission-control/aws
values.yaml
- accessKey:
- value: string
- valueFrom:
- configMapKeyRef:
- key: string
- name: string
- helmRef:
- key: string
- name: string
- secretKeyRef:
- key: string
- name: string
- serviceAccount: string
- configMapKeyRef:
- assumeRole: - Name of an IAM role to assume
- cloudtrail: - Import and correlate cloudtrail events with AWS resources
Import and correlate cloudtrail events with AWS resources
- exclude[]: - list of events to to exclude
list of events to to exclude
- maxAge: (default: "7d") - Maximum lookback age when querying cloudtrail
- exclude[]:
- compliance: (default: "true") - Import AWS Config Rule failures as insights
- connection: string
- costReporting: - Scrape cost reports and match them with catalog items
Scrape cost reports and match them with catalog items
- database: string
- enabled: boolean
- region: string
- s3BucketPath: string
- table: string
- 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:
- value: string
- valueFrom:
- configMapKeyRef:
- key: string
- name: string
- helmRef:
- key: string
- name: string
- secretKeyRef:
- key: string
- name: string
- serviceAccount: string
- configMapKeyRef:
- skipTLSVerify: (default: "false") - Skip TLS verification
- topology:
- name: string (default: "aws")
- transform:
- changes:
- exclude[]:
- mapping[]:
- exclude[]:
- relationship[]:
- changes:
When you go to the catalog now, you can now see all the AWS Resources