Skip to content

ci: add reusable Security Scan workflow (zizmor) and pin actions to SHAs#88

Merged
crowecawcaw merged 2 commits into
aws-deadline:mainlinefrom
crowecawcaw:add-reusable-security-scan
Jul 7, 2026
Merged

ci: add reusable Security Scan workflow (zizmor) and pin actions to SHAs#88
crowecawcaw merged 2 commits into
aws-deadline:mainlinefrom
crowecawcaw:add-reusable-security-scan

Conversation

@crowecawcaw

Copy link
Copy Markdown

What

Adds reusable_security_scan.yml — a central, extensible security-scan umbrella workflow that member repos invoke from a thin stub.

  • zizmor (GitHub Actions static analysis, https://zizmor.sh) is the first check.
  • Designed so future checks are added here as sibling jobs — member repos never need re-editing to pick them up.
  • Actions are SHA-pinned, matching the existing botocore/s3transfer zizmor setup.

Rollout posture

zizmor runs advisory by default (fail-on-findings: falsecontinue-on-error) so it does not turn every PR red against the current findings backlog. SARIF still uploads to the Security tab, so results stay visible. Each repo flips fail-on-findings: true once its findings reach zero.

Why here vs per-repo

Member repos already delegate CI to this org repo's reusable workflows (e.g. reusable_python_build.yml, reusable_codeql.yml). Putting the logic here keeps the zizmor version/config centrally managed; the companion PR adds the calling stub to deadline-cloud, which is then copied to the rest of the fleet.

Companion PR: stub in aws-deadline/deadline-cloud.

Findings preview (offline zizmor run, current state)

Repo High Medium
deadline-cloud 91 45
.github (reusable workflows) 88 23
deadline-cloud-job-attachments 48 19
deadline-cloud-worker-agent 35 18

Dominated by unpinned-uses (tags not SHAs), plus real template-injection (github.base_ref into run: blocks) and dangerous-triggers (workflow_run). Many are auto-fixable in follow-ups.

🤖 Draft — not published for review yet.

Introduces a central, extensible security-scan umbrella workflow that
member repos call from a thin stub. zizmor (GitHub Actions static
analysis) is the first check; future checks are added here as sibling
jobs so repos never need re-editing.

zizmor runs advisory by default (continue-on-error) so the existing
findings backlog does not turn every PR red; SARIF still uploads to the
Security tab. Repos flip fail-on-findings: true once at zero.

Actions are SHA-pinned, matching the botocore/s3transfer zizmor setup.

Signed-off-by: Stephen Crowe <6042774+crowecawcaw@users.noreply.github.com>
- Pin all third-party GitHub Actions (actions/*, aws-actions/*,
  github/codeql-action) to full commit SHAs with version comments,
  across every reusable workflow and composite action. Dependabot
  (already configured) keeps them current. Our own aws-deadline/*
  reusable workflows keep their @mainline refs on purpose.

- Add zizmor.yml: a single central config with an unpinned-uses policy
  (aws-deadline/* -> ref-pin, everything else -> hash-pin), consumed by
  reusable_security_scan.yml via --config after checking out this repo.
  One edit here updates policy for every consuming repo.

Eliminates all 77 unpinned-uses findings. Remaining advisory findings
(template-injection, excessive-permissions, etc.) are follow-up work.

Signed-off-by: Stephen Crowe <6042774+crowecawcaw@users.noreply.github.com>
@crowecawcaw
crowecawcaw force-pushed the add-reusable-security-scan branch from 0898019 to 7fb4591 Compare July 7, 2026 17:14
@crowecawcaw crowecawcaw changed the title Add reusable Security Scan workflow (zizmor) ci: add reusable Security Scan workflow (zizmor) and pin actions to SHAs Jul 7, 2026
@crowecawcaw
crowecawcaw marked this pull request as ready for review July 7, 2026 17:18
@crowecawcaw
crowecawcaw requested a review from a team as a code owner July 7, 2026 17:18

- name: Download
uses: actions/download-artifact@v4
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Interesting, should we start pinning the versions for all the repos now ?

@crowecawcaw
crowecawcaw merged commit 4389165 into aws-deadline:mainline Jul 7, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants