Skip to content

Commit 382f430

Browse files
committed
refactor: [#251] separate SARIF upload to dedicated job with minimal permissions
- Scan jobs now upload SARIF files as artifacts - New dedicated upload-sarif-results job with only security-events:write permission - Display steps show all security issues (CVEs + secrets) for visibility - Scan steps only fail on HIGH/CRITICAL CVE vulnerabilities
1 parent afb653c commit 382f430

File tree

1 file changed

+34
-6
lines changed

1 file changed

+34
-6
lines changed

.github/workflows/docker-security-scan.yml

Lines changed: 34 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ jobs:
2323
name: Scan Project-Built Docker Images
2424
runs-on: ubuntu-latest
2525
timeout-minutes: 15
26+
permissions:
27+
contents: read
2628
strategy:
2729
fail-fast: false
2830
matrix:
@@ -61,16 +63,20 @@ jobs:
6163
exit-code: "1"
6264
scanners: "vuln" # Only vulnerabilities, skip secrets (test containers have legitimate SSH keys)
6365

64-
- name: Upload Trivy results to GitHub Security
65-
uses: github/codeql-action/upload-sarif@v4
66+
- name: Upload SARIF artifact
67+
uses: actions/upload-artifact@v4
6668
if: always()
6769
with:
68-
sarif_file: "trivy-results-${{ matrix.image.name }}.sarif"
70+
name: sarif-project-${{ matrix.image.name }}
71+
path: "trivy-results-${{ matrix.image.name }}.sarif"
72+
retention-days: 30
6973

7074
scan-third-party-images:
7175
name: Scan Third-Party Docker Images
7276
runs-on: ubuntu-latest
7377
timeout-minutes: 15
78+
permissions:
79+
contents: read
7480
strategy:
7581
fail-fast: false
7682
matrix:
@@ -100,8 +106,30 @@ jobs:
100106
exit-code: "1"
101107
scanners: "vuln" # Focus on CVEs, not secrets
102108

103-
- name: Upload Trivy results to GitHub Security
104-
uses: github/codeql-action/upload-sarif@v4
109+
- name: Upload SARIF artifact
110+
uses: actions/upload-artifact@v4
105111
if: always()
106112
with:
107-
sarif_file: "trivy-results.sarif"
113+
name: sarif-third-party-${{ matrix.image }}
114+
path: "trivy-results.sarif"
115+
retention-days: 30
116+
117+
upload-sarif-results:
118+
name: Upload SARIF Results to GitHub Security
119+
runs-on: ubuntu-latest
120+
needs: [scan-project-images, scan-third-party-images]
121+
if: always()
122+
permissions:
123+
security-events: write
124+
steps:
125+
- name: Download all SARIF artifacts
126+
uses: actions/download-artifact@v4
127+
with:
128+
pattern: sarif-*
129+
merge-multiple: false
130+
131+
- name: Upload SARIF files to GitHub Security
132+
uses: github/codeql-action/upload-sarif@v4
133+
with:
134+
sarif_file: "."
135+
category: "docker-security-scan"

0 commit comments

Comments
 (0)