https://github.com/crowdstrike/aws-eks-protection
Automatically deploy Falcon Sensor against EKS Clusters in AWS
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (10.7%) to scientific vocabulary
Repository
Automatically deploy Falcon Sensor against EKS Clusters in AWS
Basic Info
- Host: GitHub
- Owner: CrowdStrike
- License: mit
- Language: Shell
- Default Branch: main
- Size: 3.42 MB
Statistics
- Stars: 1
- Watchers: 6
- Forks: 1
- Open Issues: 0
- Releases: 1
Metadata Files
README.md
CrowdStrike Falcon EKS Protection
An automated solution for deploying CrowdStrike Falcon Operator, Sensor, KAC and ImageAnalyzer to EKS clusters across your AWS Organization using event-driven architecture.
Usage Guides
| Guide | Description | |-------|-------------| | Deployment Guide | Complete setup instructions, prerequisites, and deployment options for new installations | | Existing Cluster Guide | Manual deployment instructions for protecting existing EKS clusters | | Customization Guide | Advanced configuration options for modifying Falcon deployment manifests and scripts |
✨ Features
- 🚀 Event-Driven Automation: Automatically installs Falcon components when EKS clusters are created
- 🐳 No Build Dependencies: Uses public
alpine/k8s:1.28.4container image - 🎯 Intelligent Sensor Selection: Auto-detects cluster type and deploys appropriate sensors
- 🔒 Secure: API credentials stored in AWS Secrets Manager
- 📊 Observable: Complete CloudWatch logging with structured output
- 🌐 Self-Contained Infrastructure: Creates own VPC and networking
- 🏢 Organization Support: Deploy across AWS Organizations or single accounts
⚙️ How It Works
1. Infrastructure Setup
- Self-Contained: ECS Task runs in a dedicated VPC, subnets, NAT Gateway, and security groups
- Container Image: Uses public
alpine/k8s:1.28.4image- pre-installed tools: kubectl, aws-cli, helm, bash, curl, jq, eksctl
- pulls latest scripts from GitHub at runtime
2. Script Details
- Event Handler: Retrieves event data and configures ECS Task environment with required variables such as Cluster name, AWS Account ID, AWS Region
- Setup Script: Adds the ECS Task ARN to the EKS Cluster Access entries and the ECS Task VPC NAT IP address to the inbound CIDR list
- Deploy Script: Determines sensor type and apply Falcon Operator and Falcon Deployment Components using kubectl
- Falcon Deployment: YAML manifest template with dynamic parameter substitution stored in Parameter Store
3. Enhanced Event-Driven Architecture
- EventBridge Rule: Triggers when EKS clusters are created
- Centralized Custom EventBus: EventBridge Rules across the AWS Organization target this to allow for a single, centralized ECS Cluster.
- ECS Fargate Task: Invoked via EventBridge rule to run EKS Protection Scripts
4. Intelligent Sensor Deployment
- Auto Mode: Set
SensorType=autoto automatically select appropriate sensors based on cluster type- Fargate-only clusters → Falcon Container sensor
- Node-based clusters → Falcon Node sensor
- Hybrid clusters → Falcon Node sensor & Falcon Container sensor
- Manual Override: Set
SensorTypetonode,containerorbothto force a sensor type and bypass cluster type detection
Container Sensor Injection Behavior
- Container sensor injection disabled by default
falcon-sidecar-injectorpods may run but only inject the container sensor if Fargate pods are labeled.- This prevents duplicative sensors when running hybrid clusters (EC2 and Fargate) and allows both
DEPLOY_FALCON_NODE_SENSOR = trueandDEPLOY_FALCON_CONTAINER = true.
NOTE: Use the following label to inject Falcon Container to your pods
falcon.crowdstrike.com/inject: "true"
📊 Event-Driven Architecture
EKS Cluster Creation → EventBridge → Centralized EventBus → ECS Fargate Task
↓ ↓
Get cluster name, alpine/k8s:1.28.4
region, account Id (in private VPC)
↓
Secrets Manager
(Falcon API credentials)
↓
GitHub Repository
(curl latest scripts)
↓
Parameter Store
(Falcon Deployment manifest)
↓
Apply Falcon Operator Deployment
(with auto-detection)
📋 CloudFormation Parameters
The following table describes all parameters available when deploying the CloudFormation template:
| Parameter | Type | Default | Description | Allowed Values |
|-----------|------|---------|-------------|----------------|
| Deployment Configuration |
| Scope | String | organization | Whether to deploy across the organization or locally to the current AWS account | organization, local account |
| Regions | List<String> | (empty) | Which regions to deploy EventBridge rules | |
| OUs | List<String> | (empty) | Which OUs to onboard if Scope = organization. If onboarding the entire organization, use the root OU (r-***) | |
| OrganizationId | String | (empty) | Your AWS Organization Id if Scope = organization | |
| DelegatedAdmin | String | false | Indicates whether this is a Delegated Administrator account | true, false |
| PermissionsBoundary | String | (empty) | The name of the policy used to set the permissions boundary for IAM roles | |
| *Network Configuration |
| VpcCidr | String | 10.0.0.0/22 | CIDR block for the VPC | |
| Falcon API Credentials |
| FalconClientId | String | (required) | CrowdStrike Falcon Client ID | |
| FalconClientSecret | String | (required) | CrowdStrike Falcon Client Secret | |
| FalconCloud | String | (required) | CrowdStrike Falcon Cloud | us-1, us-2, eu-1, us-gov-1, us-gov-2 |
| Falcon Operator Options |
| DeployFalconAdmission | String | true | Deploy Falcon Kubernetes Admission Controller | true, false |
| DeployFalconImageAnalyzer | String | true | Deploy Falcon Image Analyzer (requires additional API permissions) | true, false |
| Backend | String | kernel | Backend for Daemonset (node) sensor | kernel, bpf |
| FalconSensorType | String | auto | Which Falcon Sensor to deploy. auto will determine sensor based on cluster type (Recommended) | auto, both, node, container |
| Resource Names |
| ResourcePrefix | String | crowdstrike-eks-protection | The prefix to be added to all resource names | |
| ResourceSuffix | String | (empty) | The suffix to be added to all resource names | |
Parameter Notes
- Falcon API Credentials: All three Falcon parameters (
FalconClientId,FalconClientSecret,FalconCloud) are required for deployment - Organization Deployment: When
Scopeis set toorganization, you must also provideOrganizationIdandOUs - Sensor Type Auto-Detection: When
FalconSensorTypeis set toauto, the system automatically selects the appropriate sensor based on cluster configuration - Secure Parameters:
FalconClientIdandFalconClientSecretare marked asNoEchoand will be stored securely in AWS Secrets Manager
📄 Support and License
License
This project is licensed under the MIT License - see the LICENSE file for details.
Support
This is a community-driven, open source project. While it is not an official CrowdStroke product, it is actively maintained by CrowdStrike and supported in collaboration with the open source developer community.
For more information, please see our SUPPORT file.
Owner
- Name: CrowdStrike
- Login: CrowdStrike
- Kind: organization
- Email: github@crowdstrike.com
- Location: United States of America
- Website: https://www.crowdstrike.com
- Repositories: 183
- Profile: https://github.com/CrowdStrike
GitHub Events
Total
- Delete event: 3
- Issue comment event: 1
- Member event: 1
- Push event: 32
- Pull request event: 4
- Create event: 1
Last Year
- Delete event: 3
- Issue comment event: 1
- Member event: 1
- Push event: 32
- Pull request event: 4
- Create event: 1
Committers
Last synced: about 1 year ago
Top Committers
| Name | Commits | |
|---|---|---|
| Gax | g****o@c****m | 34 |
| Ryan Payne | r****e@o****m | 11 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: about 1 year ago
All Time
- Total issues: 0
- Total pull requests: 2
- Average time to close issues: N/A
- Average time to close pull requests: 4 months
- Total issue authors: 0
- Total pull request authors: 2
- Average comments per issue: 0
- Average comments per pull request: 1.5
- Merged pull requests: 1
- Bot issues: 0
- Bot pull requests: 1
Past Year
- Issues: 0
- Pull requests: 1
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 1
- Average comments per issue: 0
- Average comments per pull request: 0.0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 1
Top Authors
Issue Authors
Pull Request Authors
- ryanjpayne (4)
- dependabot[bot] (2)