You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/posts/unpublished/dependency-track/post.md
+17-17Lines changed: 17 additions & 17 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -23,7 +23,7 @@ Modern applications within the **SCM Platforms** organizations rely on thousands
23
23
***Operational inefficiency:** manual dependency reviews and license auditing have become unsustainable, consuming significant security team effort.
24
24
***Licensing costs:** commercial SCA solutions often incur high per-repository or per-user licensing overhead that does not align with the current scaling model.
25
25
26
-
The decision was made to deploy**Dependency-Track 4.13.5+** on **Amazon EKS** as the centralized SCA platform.
26
+
This led to deploying**Dependency-Track 4.13.5+** on **Amazon EKS** as the centralized SCA platform.
27
27
28
28
## The why: understanding SBOM and Dependency-Track
29
29
@@ -35,7 +35,7 @@ A Software Bill of Materials (SBOM) is effectively a "nutrition label" for softw
35
35
### What is Dependency-Track?
36
36
Dependency-Track is an intelligent Component Analysis platform that takes these SBOMs and turns them into actionable intelligence.
37
37
-**Continuous monitoring:** it ingests SBOMs and continuously monitors components against several vulnerability databases (NVD, OSS Index, GitHub Advisories).
38
-
-**Risk analysis:** it analyzes the entire dependency graph to calculate a Bill of Materials Health (BCV) score and prioritize remediation efforts.
38
+
-**Risk analysis:** it analyzes the entire dependency graph to calculate a Bill of Materials Health (BCV) score and rank remediation efforts.
39
39
-**Policy enforcement:** it enables defining and enforcing security and license policies across projects.
40
40
41
41

@@ -53,32 +53,32 @@ Dependency-Track is an intelligent Component Analysis platform that takes these
53
53
54
54
## Architecture overview: the big picture
55
55
56
-
The solution is built on three robust pillars: the **Infrastructure** (EKS), the **Application** (Dependency-Track), and the **Pipeline** (GitHub Actions). The following diagram illustrates how these pieces interact.
56
+
Three robust pillars underpin the solution: the **Infrastructure** (EKS), the **Application** (Dependency-Track), and the **Pipeline** (GitHub Actions). The following diagram illustrates how these pieces interact.
57
57
58
58

59
59
60
60
The architecture automates the ingestion and analysis of **Software Bill of Materials (SBOM)** data, ensuring that every code commit undergoes security scrutiny.
61
61
62
62
### Key components
63
-
***CI/CD integration:** GitHub Actions automates the generation and upload of SBOM data upon developer code commits.
63
+
***CI/CD integration:** GitHub Actions automates SBOM generation and upload upon developer code commits.
64
64
***Orchestration layer:** hosted on **Amazon EKS**, utilizing specialized Kubernetes pods for the user interface (UI) and vulnerability analysis.
65
-
***Security and traffic control:****AWS WAF** filters incoming traffic to protect the Dependency-Track API and UI.
65
+
***Security and traffic control:****AWS WAF** filters incoming traffic, protecting the Dependency-Track API and UI.
66
66
***Secret management:** an **External Secrets Operator** synchronizes sensitive credentials directly from **AWS Secrets Manager** into the Kubernetes cluster.
67
-
***Data persistence:****Amazon Aurora**provides a secured, high-availability data storage layer for vulnerability data and project history.
67
+
***Data persistence:****Amazon Aurora**serves as a secured, high-availability storage layer for vulnerability data and project history.
68
68
***Access control:** fine-grained **IAM Roles** manage permissions for the underlying EKS infrastructure and AWS service interactions.
69
69
70
70
## Deep dive: the infrastructure layer (EKS)
71
71
72
72
The Dependency-Track platform is fully managed within the existing EKS ecosystem, ensuring scalability, resilience, and security.
73
73
74
74
### 4.1 Application deployment
75
-
The app is deployed via **Helm Releases**, managed by **OpenTofu** (Terraform) pipelines. This ensures a repeatable and version-controlled deployment.
75
+
**Helm Releases**, managed by **OpenTofu** (Terraform) pipelines, deploy the app. This ensures a repeatable and version-controlled deployment.
76
76
-**Frontend pods:** serve the Dependency-Track user interface.
77
77
-**API server pods:** handle REST API requests, including SBOM uploads.
78
78
-**Database:** a highly available **Aurora PostgreSQL** instance provides persistent storage for projects, findings, and metrics.
79
79
80
80
### 4.2 Ingress and traffic flow
81
-
All external traffic is secured and routed through several layers:
81
+
Several layers secure and route all external traffic:
82
82
-**DNS** points to the **Application Load Balancer (ALB)**.
83
83
- A **Web Application Firewall (WAF)** protects the ALB by filtering out common web exploits.
84
84
- The ALB terminates SSL/TLS and forwards traffic to the **Frontend Pods**.
@@ -88,10 +88,10 @@ All external traffic is secured and routed through several layers:
88
88
### 4.3 Secure secrets management with ESO
89
89
Credentials are never hardcoded. The flow for managing secrets like database passwords and API keys follows a secure, GitOps-friendly pattern:
90
90
91
-
1.**Source of truth:**secrets are stored and managed in **AWS Secrets Manager**.
91
+
1.**Source of truth:****AWS Secrets Manager** stores and manages all secrets.
92
92
2.**Synchronization:** the **External Secrets Operator (ESO)** running in the cluster watches for **External Secret** resources.
93
-
3.**Kubernetes secret creation:** ESO fetches the values from AWS and creates standard **Kubernetes Secrets**.
94
-
4.**Pod consumption:** the frontend and API server pods use **EKS Pod Identity** to assume specific IAM roles, granting them access only to the necessary secrets. This eliminates the need for long-lived credentials in the cluster.
93
+
3.**Kubernetes secret creation:** ESO fetches values from AWS and creates standard **Kubernetes Secrets**.
94
+
4.**Pod consumption:** the frontend and API server pods use **EKS Pod Identity** to assume specific IAM roles, granting access to the necessary secrets and nothing else. This eliminates the need for long-lived credentials in the cluster.
95
95
96
96
### 4.4 Helm values that matter in production
97
97
The values template used by the EKS module controls the deployment. The following examples are the most useful knobs to call out for platform teams.
@@ -210,7 +210,7 @@ apiServer:
210
210
initialDelaySeconds: 120
211
211
```
212
212
213
-
The generous **initialDelaySeconds** (120 s) accommodates the API server's startup time, particularly during initial database migrations and vulnerability feed synchronization. The high **failureThreshold** on startup (60) prevents premature pod restarts during first-time initialization.
213
+
The generous **initialDelaySeconds** (120 s) accommodates the API server's startup time, during initial database migrations and vulnerability feed synchronization. The high **failureThreshold** on startup (60) prevents premature pod restarts during first-time initialization.
214
214
215
215
#### JVM tuning for large SBOM ingestion
216
216
@@ -229,7 +229,7 @@ extraEnv:
229
229
The magic happens in the GitHub Actions pipelines, which automate the entire SBOM lifecycle from code commit to security analysis.
230
230
231
231
### 5.1 Pipeline triggers
232
-
The pipelines are flexible and can be triggered by:
232
+
The pipelines support three trigger modes:
233
233
- **Schedule:** automated daily or weekly scans to catch new vulnerabilities in existing dependencies.
234
234
- **Manual:** on-demand execution for ad-hoc analysis or testing.
235
235
- **Pull request:** automatic SBOM generation and upload for PRs, allowing teams to "shift left" and see the security impact of a change before it merges.
@@ -251,7 +251,7 @@ The following architecture illustrates the GitHub Actions pipeline structure and
251
251
252
252
### Multi-stack generation strategy
253
253
254
-
SBOM creation is standardized across six technology stacks without sacrificing ecosystem-specific optimizations:
254
+
A single SBOM creation strategy covers six technology stacks without sacrificing ecosystem-specific optimizations:
255
255
256
256
| Stack | Tool | Key Configuration |
257
257
|-------|------|-------------------|
@@ -303,7 +303,7 @@ generateSBOM(){
303
303
**Design decisions worth noting:**
304
304
-**Production-only scope**—dev dependencies and test-scoped libraries don't ship to production, so excluding them reduces noise
305
305
-**Lockfile enforcement**—guarantees reproducible SBOMs across environments
306
-
-**Validation**—**jq** syntax verification prevents uploading malformed JSON to Dependency-Track
306
+
-**Validation**—a **jq** syntax verification prevents uploading malformed JSON to Dependency-Track
307
307
308
308
### Handling complex project boundaries
309
309
@@ -471,7 +471,7 @@ curl_dt_upload(){
471
471
472
472
#### Observability by design
473
473
474
-
Execution state is surfaced directly in GitHub Actions using job summaries:
474
+
The pipeline surfaces execution state directly in GitHub Actions using job summaries:
475
475
476
476
```bash
477
477
# State tracking
@@ -511,7 +511,7 @@ The implementation of this automated SBOM pipeline marks a significant step forw
511
511
512
512
**What this means for your team:**
513
513
-**Visibility:** every team can now see what's in their apps.
514
-
-**Proactive security:**vulnerabilities are caught earlier in the development cycle.
514
+
-**Proactive security:**the pipeline catches vulnerabilities earlier in the development cycle.
515
515
-**Compliance:** the organization is better positioned to meet evolving software supply chain security regulations.
0 commit comments