Garrison Agent - AWS CloudFormation
This is a part of the Garrison security project. This agent provides various AWS CloudFormation compliance checks.
Checks Provided
Function Name | Description |
---|---|
check_drift |
Alerts if the stack has drifted from its original configuration. |
Installation & Example
Docker Hub - https://hub.docker.com/r/forward3d/garrison-agent-aws-cloudformation/
docker pull forward3d/garrison-agent-aws-cloudformation
docker run --rm -e "GARRISON_URL=https://garrison.internal.acme.com" forward3d/garrison-agent-aws-cloudformation check_encryption
docker run --rm -e "GARRISON_URL=https://garrison.internal.acme.com" -e "GARRISON_AWS_REGIONS=eu-west-1,us-west-2" forward3d/garrison-agent-aws-cloudformation check_drift
Agent Specific Configuration
These are additional specific configuration options for this agent. Global agent configurations still apply.
Environmental Variable | Default | Expects |
---|---|---|
GARRISON_AWS_REGIONS |
all [1] |
Comma Separated Strings eg. eu-west-1,us-west-2 |
- Standard AWS Regions as returned by the AWS SDK at runtime for CloudFormation.
AWS Authentication
As this requires access to the AWS API you will need this IAM policy as a minimum for it to operate correctly.
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"cloudformation:ListStacks",
"cloudformation:ListStackResources",
"cloudformation:DetectStackDrift",
"cloudformation:DetectStackResourceDrift",
"cloudformation:DescribeStackDriftDetectionStatus"
],
"Resource": "*",
"Effect": "Allow"
}
]
}
We recommend using EC2/ECS Task roles so that you don't need to send credentials into the container, however if you can't use those or want to send in specific Access Keys and Secret keys, please see the AWS Documentation as to how you do that.
STS AssumeRole
)
Cross-Account Authentication (If you run Garrison agents in one account, and want to reach into other AWS accounts you need to send in extra environmental variables to support that.
Environmental Variable | Value |
---|---|
AWS_ACCOUNT_ID |
Not used as part of authentication, but to override the tag set on any alerts |
AWS_ASSUME_ROLE_CREDENTIALS_ARN |
Arn of the role (in the other account) you wish to assume |