Ein signiertes Image garantiert, dass es aus Ihrem Build stammt und nicht modifiziert wurde. Cosign + Sigstore lösen das elegant.
Cosign — Signierung und Verifizierung¶
Signierung (keyless — OIDC-Identität)¶
cosign sign –yes ghcr.io/myorg/myapp:v1.0
Verifizierung¶
cosign verify ghcr.io/myorg/myapp:v1.0
Mit Schlüssel¶
cosign generate-key-pair cosign sign –key cosign.key ghcr.io/myorg/myapp:v1.0 cosign verify –key cosign.pub ghcr.io/myorg/myapp:v1.0
Kubernetes Admission — Kyverno¶
apiVersion: kyverno.io/v1 kind: ClusterPolicy metadata: name: verify-images spec: rules: - name: verify-cosign match: resources: kinds: [Pod] verifyImages: - imageReferences: [“ghcr.io/myorg/*“] attestors: - entries: - keyless: subject: “*@myorg.com” issuer: “https://accounts.google.com”
Wichtigste Erkenntnis¶
Images in CI/CD signieren, in Kubernetes verifizieren (Kyverno/OPA). Keyless Signing mit Sigstore.