한국어 버전: SECURITY.ko.md
Do not file public issues for security reports. Public exposure before a patch ships puts every adopter at risk.
Choose either:
- GitHub Security Advisory (recommended): https://github.com/keiailab/valkey-operator/security/advisories/new
- Email:
security@keiailab.com(PGP optional):- PGP fingerprint:
89A4 0947 6828 CB99 2338 C378 651E 51AF 520B CB78 - Public key:
artifacthub-repo.ymlon thegh-pagesbranch, or https://keiailab.github.io/valkey-operator/artifacthub-repo.yml - This key is used across all keiailab operator repositories.
- PGP fingerprint:
- Affected versions (release tag or commit SHA)
- Reproduction steps (the smallest reliable repro you can produce)
- Impact assessment (include a CVSS self-score if available)
- Reporter identity — let us know if you would like a credit
| Stage | Target |
|---|---|
| Initial acknowledgement | within 72 hours |
| Severity triage | within 7 days |
| Patch release | by severity (Critical: 14 days, High: 30 days, Medium: 60 days) |
| Public disclosure | 14 days after the patch ships (coordinated disclosure on request) |
| Version | Supported |
|---|---|
| 0.x (alpha) | ✅ Latest minor only |
| 1.0+ (stable) | TBD — updated after the first stable release |
The project is currently in v1alpha1. There is no backward
compatibility guarantee; security fixes ship only on the latest
release.
When you run valkey-operator:
- Force TLS. Set
Spec.TLS.Enabled=true(cert-manager or a user-providedCustomCert). See ADR-0010 and ADR-0014. - Auth is effectively always on. Per ADR-0013 the operator
provisions a 32-byte random password regardless of
Spec.Auth.Enabled. - NetworkPolicy. Set
Spec.NetworkPolicy.Enabled=trueto restrict pod-to-pod ingress. Verify on a CNI that actually enforces NetworkPolicies (Calico, Cilium). - Pod Security Standard: restricted. Apply
pod-security.kubernetes.io/enforce=restrictedto your namespace. - Keep credentials in their own Secret. S3 credentials on
ValkeyBackupTargetbelong in a dedicatedSecretgated by RBAC (ADR-0016). - Prefer external storage for backups. Use
Destination.Type=TargetRefwith external S3. PVC-only backups are lost if the cluster itself is lost. - Verify your container image. The operator image is built only
from dependencies that passed Sonatype and Context7 review
(ADR-0022). When you build your own variant, run
trivyorgrypeagainst the result.
Every dependency-introducing ADR cites the relevant Sonatype Trust
Score and Context7 verification (see docs/kb/adr/0022-*.md for
the canonical example).
Dependabot and Renovate auto-update PRs are reviewed at the front of the queue.
Starting with v1.0.13, every published container image, Helm chart, and SPDX SBOM is signed via Sigstore cosign keyless OIDC and attached with a SLSA-3 provenance attestation (ADR-0045, ADR-0046). Releases prior to v1.0.13 are unsigned; the verification commands below will fail against them as expected.
COSIGN_EXPERIMENTAL=1 cosign verify \
--certificate-identity-regexp '^https://github\.com/keiailab/valkey-operator/\.github/workflows/release\.yml@' \
--certificate-oidc-issuer https://token.actions.githubusercontent.com \
ghcr.io/keiailab/valkey-operator:<version>slsa-verifier verify-image \
--source-uri github.com/keiailab/valkey-operator \
--source-tag v<version> \
ghcr.io/keiailab/valkey-operator:<version>Download valkey-operator-<version>.tgz, .tgz.sig, and .tgz.pem
from the GitHub Release page, then:
cosign verify-blob \
--certificate valkey-operator-<version>.tgz.pem \
--signature valkey-operator-<version>.tgz.sig \
--certificate-identity-regexp '^https://github\.com/keiailab/valkey-operator/\.github/workflows/release\.yml@' \
--certificate-oidc-issuer https://token.actions.githubusercontent.com \
valkey-operator-<version>.tgzSame cosign verify-blob pattern with the .spdx.json / .sig /
.pem triple. The SBOM signature pins the bill-of-materials to the
exact build that produced the image.
- The artifact was produced by a GitHub Actions workflow in this repository (the certificate identity proves the OIDC subject).
- The artifact has not been modified since signing (the Sigstore Rekor transparency log entry is tamper-evident).
- For the container image, the SLSA-3 attestation additionally proves
the build ran in an isolated, hosted GitHub runner using the
documented
release.ymlworkflow.
- README.md → "Known limitations"
- Troubleshooting guide
- See also: GitHub Issues with the
securitylabel.