Tài liệu này định nghĩa chính sách kiểm soát nguồn GitHub Actions hiện tại cho repository này.
Mục tiêu Giai đoạn 1: khóa nguồn action với ít gián đoạn nhất, trước khi pin SHA đầy đủ.
- Quyền Actions repository: được bật
- Chế độ action cho phép: đã chọn
- Yêu cầu pin SHA: false (hoãn đến Giai đoạn 2)
Các mẫu allowlist được chọn:
actions/*(bao gồmactions/cache,actions/checkout,actions/upload-artifact,actions/download-artifactvà các first-party action khác)docker/*dtolnay/rust-toolchain@*DavidAnson/markdownlint-cli2-action@*lycheeverse/lychee-action@*EmbarkStudios/cargo-deny-action@*rustsec/audit-check@*rhysd/actionlint@*softprops/action-gh-release@*sigstore/cosign-installer@*Swatinem/rust-cache@*
Dùng các lệnh sau để xuất chính sách hiệu lực hiện tại phục vụ kiểm toán/kiểm soát thay đổi:
gh api repos/zeroclaw-labs/zeroclaw/actions/permissions
gh api repos/zeroclaw-labs/zeroclaw/actions/permissions/selected-actionsGhi lại mỗi thay đổi chính sách với:
- ngày/giờ thay đổi (UTC)
- tác nhân
- lý do
- delta allowlist (mẫu được thêm/xóa)
- ghi chú rollback
- Giảm rủi ro chuỗi cung ứng từ các marketplace action chưa được review.
- Bảo tồn chức năng CI/CD hiện tại với chi phí migration thấp.
- Chuẩn bị cho Giai đoạn 2 pin SHA đầy đủ mà không chặn phát triển đang diễn ra.
Vì repository này có khối lượng thay đổi do agent tạo ra cao:
- Mọi PR thêm hoặc thay đổi nguồn action
uses:phải bao gồm ghi chú tác động allowlist. - Các action bên thứ ba mới yêu cầu review maintainer tường minh trước khi đưa vào allowlist.
- Chỉ mở rộng allowlist cho các action bị thiếu đã được xác minh; tránh các ngoại lệ wildcard rộng.
- Giữ hướng dẫn rollback trong mô tả PR cho các thay đổi chính sách Actions.
Sau khi thay đổi allowlist, xác thực:
CIDockerSecurity AuditWorkflow SanityRelease(khi an toàn để chạy)
Failure mode cần chú ý:
action is not allowed by policy
Nếu gặp phải, chỉ thêm action tin cậy còn thiếu cụ thể đó, chạy lại và ghi lại lý do.
Ghi chú quét gần đây nhất:
- 2026-02-26: Chuẩn hóa runner/action cho cache Rust và Docker build
- Đã thêm mẫu allowlist:
Swatinem/rust-cache@* - Docker build dùng
docker/setup-buildx-actionvàdocker/build-push-action
- Đã thêm mẫu allowlist:
- 2026-02-16: Phụ thuộc ẩn được phát hiện trong
release.yml:sigstore/cosign-installer@...- Đã thêm mẫu allowlist:
sigstore/cosign-installer@*
- Đã thêm mẫu allowlist:
- 2026-02-17: Cập nhật cân bằng tính tái tạo/độ tươi của security audit
- Đã thêm mẫu allowlist:
rustsec/audit-check@* - Thay thế thực thi nội tuyến
cargo install cargo-auditbằngrustsec/audit-check@69366f33c96575abad1ee0dba8212993eecbe998được pin trongsecurity.yml - Supersedes đề xuất phiên bản nổi trong #588 trong khi giữ chính sách nguồn action rõ ràng
- Đã thêm mẫu allowlist:
Đường dẫn bỏ chặn khẩn cấp:
- Tạm thời đặt chính sách Actions trở về
all. - Khôi phục allowlist đã chọn sau khi xác định các mục còn thiếu.
- Ghi lại sự cố và delta allowlist cuối cùng.