Use this if
Scan your AWS environment for misconfigurations with Prowler, deployed as a scheduled ECS Fargate task — no EC2, no always-on compute.
- Audience
- Cloud engineers, security engineers, platform teams
- Typical time
- 5 minutes
Guide public
Scan your AWS environment for misconfigurations with Prowler, deployed as a scheduled ECS Fargate task — no EC2, no always-on compute. Audience: Cloud engineers, security engineers, platform teams. Temps moyen de mise en place: 5 minutes.
Scan your AWS environment for misconfigurations with Prowler, deployed as a scheduled ECS Fargate task — no EC2, no always-on compute.
Copy a working starter, run it in your environment, then come back here for the deeper rollout details.
Demonstration only
This configuration is designed for ease of use. To deploy scanner clients at scale, please plan your deployment architecture accordingly or contact us for enterprise best practices.
Download the exact source files referenced on this page, or run the one-command installer to write them locally before following the deployment steps.
Creates the AWS CDK project under `deploy/aws-cloud-scanner/` so the scheduled Fargate deployment commands on this page work unchanged.
BLACKSHIELD_CLOUD_IMAGE=public.ecr.aws/blackshield-security/cloud-scanner:1.0.6 \
bash <(curl -fsSL https://blackshield.chaplau.com/source-bundles/aws-cloud-scanner.sh)
cd deploy/aws-cloud-scanner# Bootstrap the local source bundle first
bash <(curl -fsSL https://blackshield.chaplau.com/source-bundles/aws-cloud-scanner.sh)
cd deploy/aws-cloud-scanner
# Create a Python 3.11 virtual environment
python3.11 -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txt
# 1. Store API key (once per account)
aws secretsmanager create-secret \
--name "blackshield/cloud-scanner/api-key" \
--secret-string "sp_xxxx"
# 2. Bootstrap CDK (once per account+region)
# Export required env vars before bootstrap and deploy
export BLACKSHIELD_API_URL=https://api.blackshield.chaplau.com
export SCANNER_IMAGE_URI=public.ecr.aws/blackshield-security/cloud-scanner:1.0.6
cdk bootstrap
# 3. Deploy — Fargate runs Prowler every 6 hours
cdk deploy --require-approval never# Read stack outputs for a one-off ECS task run
STACK_NAME=BlackShieldCloudScanner
CLUSTER_NAME=$(aws cloudformation describe-stacks --stack-name "$STACK_NAME" \
--query "Stacks[0].Outputs[?OutputKey=='ClusterName'].OutputValue" --output text)
TASK_DEFINITION_ARN=$(aws cloudformation describe-stacks --stack-name "$STACK_NAME" \
--query "Stacks[0].Outputs[?OutputKey=='TaskDefinitionArn'].OutputValue" --output text)
SUBNET_IDS=$(aws cloudformation describe-stacks --stack-name "$STACK_NAME" \
--query "Stacks[0].Outputs[?OutputKey=='SubnetIds'].OutputValue" --output text)
SECURITY_GROUP_ID=$(aws cloudformation describe-stacks --stack-name "$STACK_NAME" \
--query "Stacks[0].Outputs[?OutputKey=='SecurityGroupId'].OutputValue" --output text)
aws ecs run-task \
--cluster "$CLUSTER_NAME" \
--launch-type FARGATE \
--task-definition "$TASK_DEFINITION_ARN" \
--network-configuration "awsvpcConfiguration={subnets=[$SUBNET_IDS],securityGroups=[$SECURITY_GROUP_ID],assignPublicIp=DISABLED}"
# Follow execution logs in real time
aws logs tail /aws/ecs/BlackShieldCloudScanner --follow
# Check findings arrived
curl -sf \
-H "X-API-Key: sp_xxxx" \
"https://api.blackshield.chaplau.com/api/v1/findings?scanner=cloud&limit=5" \
| python3 -m json.toolUse the guided steps below when you want to tailor the rollout, validate ownership, or expand the deployment safely.
Étape 1
Install the CDK, store your API key in Secrets Manager, and bootstrap the target account.
What success looks like
Bootstrap the account+region: cdk bootstrap (once per account/region).
Étape 2
Three commands deploy Fargate + EventBridge + IAM + CloudWatch logging.
What success looks like
The stack creates a one-shot Fargate task in private subnets, IAM role with SecurityAudit + ViewOnlyAccess, and an EventBridge schedule.
Étape 3
Trigger a manual run, confirm findings, then roll out to the entire AWS Organization.
What success looks like
For multi-account: use CloudFormation StackSets targeting your OU — see the Developer Guide.
Keep your rollout moving with the next recommended step.
Ingérer vos premières détections