top of page

Kubernetes 整合 JFrog 打造雲原生供應鏈資安防線

ree

背景:K8s × DevSecOps 時代的供應鏈挑戰

隨著企業導入 Kubernetes 作為容器編排核心,CI/CD 流水線與image儲存庫間的整合已成標準流程。然而,當開發者使用大量 Open Source 套件、容器基底映像(base image)、Helm Chart 與 IaC 模板時,供應鏈的風險也同樣倍增。


根據 JFrog Security Research 報告,超過 90% 的容器映像含有已知 CVE 漏洞,其中 45% 以上的漏洞可被公開利用(Exploitable)。因此,導入 JFrog 平台與 Kubernetes 整合的 DevSecOps 流程,已成為確保軟體生命週期安全的重要關鍵。



架構設計:K8S 與 JFrog 的安全整合

展示 Kubernetes 集群與 JFrog 平台整合的典型架構
展示 Kubernetes 集群與 JFrog 平台整合的典型架構

元件

功能說明

JFrog Artifactory

私有image儲存庫,存放 Base Image、Helm Charts、Artifacts

JFrog Xray

自動化漏洞與 License 掃描、生成 SBOM

JFrog CLI / REST API

供 CI/CD Pipeline 呼叫 API 進行掃描與策略驗證

Kubernetes Cluster

佈署應用的運行環境,透過 Admission Controller 驗證映像

OPA / Kyverno / Kubesec

強制政策層(Policy Enforcement),阻擋含高風險映像部署



實作步驟:從掃描到部署防護

Step 1:建立 JFrog 與 K8s 之間的信任關係

1

kubectl create secret docker-registry artifactory-cred \ --docker-server=artifactory.company.local \ --docker-username=devops_bot \ --docker-password=<API_TOKEN> \ --docker-email=devops@example.com

ℹ️ TIP: 建議以 Kubernetes Secret 搭配 ServiceAccount 使用,避免直接在 Deployment YAML 中暴露憑證


Step 2:在 CI/CD 中導入 Xray 掃描

1

stage('Security Scan') { steps { script { def scanResult=sh(script: """ curl -u ${JFROG_USER}:${JFROG_TOKEN} -X POST \\ -H "Content-Type: application/json" \\ -d '{"repo_path":"docker-local/myapp:latest"}' \\ https://${JFROG_URL}/xray/api/v1/scanArtifact """, returnStdout: true) echo "Scan Result: ${scanResult}" } } }

⚠️ 掃描結果可回傳 JSON,包括漏洞等級(Critical/High/Medium/Low)與 License Type。


Step 3:邏輯串接:從 CI 掃描到 K8S 部署


在 Step 2 中,CI/CD Pipeline 呼叫了 Xray API 並取得了 JSON 格式的掃描結果 。下一步的關鍵,是將此掃描結果傳遞給 Kubernetes。


CI/CD Pipeline 需負責解析該 JSON 回傳值,並將映像檔的安全狀態(例如:是否存在 "Critical" 漏洞)動態注入到 Kubernetes Deployment 或 Pod 的 YAML 檔案中,作為 metadata.annotations(中繼資料標註)。


例如,如果 Step 2 發現 "Critical" 漏洞,CI 應在 YAML 中加入:


1

YAML

1

metadata:

2

  annotations:

3

    jfrog.com/xray-score: "Critical"

4

如此一來,當 CI/CD 流程執行 kubectl apply 提交此 YAML 時,Step 3 的 Admission Controller 才能依據這個標註,成功攔截該部署請求。


Step 4:導入 Admission Controller 阻擋高風險映像

1

apiVersion: kyverno.io/v1 kind: ClusterPolicy metadata: name: deny-critical-cves spec: validationFailureAction: enforce rules: - name: check-cve-score match: resources: kinds: - Pod validate: message: "映像含高風險漏洞,禁止部署" pattern: metadata: annotations: jfrog.com/xray-score: "!~ Critical"

🔴 當映像標註含有 Critical 等級漏洞時,K8S 將拒絕部署。



進階應用:SBOM 與持續監控

  1. 自動生成 SBOM

1

curl -u ${JFROG_USER}:${JFROG_TOKEN} \ -X GET "https://${JFROG_URL}/xray/api/v1/sbom/artifact?path=docker-local/myapp:latest" 

  1. 實時風險監控


    JFrog Security 可監測新 CVE 公告並自動更新影響範圍,當漏洞對應至現有映像或 Package 時,自動發出警報至 Slack 或 Jira。



整合效益:從被動補救 → 主動預防

效益項目

說明

可視化

SBOM 全景揭露供應鏈構成

合規性

License Policy 自動驗證

即時防護

Admission Controller 即時封鎖

風險治理

漏洞關聯至 CVE 資料庫與修補建議

自動化

Pipeline 全流程無人工介入的安全門檻



未來展望:AI 驅動的 DevSecOps 自動修補

隨著 JFrog Security AI 與 Atlassian Rovo Dev Agent 的出現,未來的 DevSecOps 不僅能偵測漏洞,更能自動生成修補建議與 Pull Request。結合 Kubernetes 的 GitOps 模式與 Policy-as-Code,企業將能實現 Self-Healing 的安全基礎架構。



結語

Kubernetes 帶來了極高的可擴展性,但也暴露了供應鏈的複雜性與風險。透過整合 JFrog Artifactory + Xray + K8s Security Policy,不僅能強化企業映像治理與漏洞防禦,更能以 DevSecOps 為核心,實現從開發到部署的持續安全 (Continuous Security)。



想了解更多更多關於JFrog的資訊和功能,DevOps Tec 專業顧問團隊歡迎您來信或來電洽詢!















Comments


bottom of page