top of page

Kubernetes (K8s) 與 JFrog 的安全整合,構築 DevSecOps 流程與雲原生供應鏈安全

  • 作家相片: Linktech
    Linktech
  • 12月9日
  • 讀畢需時 3 分鐘

|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 平台整合的典型架構:

K8S 與 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" 

2️⃣ 實時風險監控

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 內容或索取客製化解決方案建議,歡迎透過以下方式聯繫。Linktech 將協助您評估如何將 JFrog 嵌入您現有的開發流程,探討其可行性與導入效益。


Linktech 友環企業 團隊洽詢方式:

留言


bottom of page