kubewarden/kubewarden-controller

GitHub: kubewarden/kubewarden-controller

基于 WebAssembly 的 Kubernetes 动态准入控制器,支持使用多种编程语言编写策略来管理和审计集群资源。

Stars: 225 | Forks: 44

[![Kubewarden 核心仓库](https://github.com/kubewarden/community/blob/main/badges/kubewarden-core.svg)](https://github.com/kubewarden/community/blob/main/REPOSITORIES.md#core-scope) [![稳定版](https://img.shields.io/badge/status-stable-brightgreen?style=for-the-badge)](https://github.com/kubewarden/community/blob/main/REPOSITORIES.md#stable) [![Artifact HUB](https://img.shields.io/badge/ArtifactHub-Helm_Charts-blue?style=flat&logo=artifacthub&link=https%3A%2F%2Fartifacthub.io%2Fpackages%2Fsearch%3Frepo%3Dkubewarden%26kind%3D0%26verified_publisher%3Dtrue%26official%3Dtrue%26cncf%3Dtrue%26sort%3Drelevance%26page%3D1)](https://artifacthub.io/packages/search?repo=kubewarden&kind=0&verified_publisher=true&official=true&cncf=true&sort=relevance&page=1) [![OpenSSF 最佳实践](https://www.bestpractices.dev/projects/6502/badge)](https://www.bestpractices.dev/projects/6502) [![FOSSA 许可证扫描](https://app.fossa.com/api/projects/custom%2B25850%2Fgithub.com%2Fkubewarden%2Fkubewarden-controller.svg?type=shield)](https://app.fossa.com/projects/custom%252B25850%252Fgithub.com%252Fkubewarden%252Fkubewarden-controller?ref=badge_shield) [![OpenSSF 记分卡](https://api.scorecard.dev/projects/github.com/kubewarden/kubewarden-controller/badge)](https://scorecard.dev/viewer/?uri=github.com/kubewarden/kubewarden-controller) [![CLOMonitor](https://img.shields.io/endpoint?url=https://clomonitor.io/api/projects/cncf/kubewarden/badge)](https://clomonitor.io/projects/cncf/kubewarden) Kubewarden 是一个 Kubernetes Dynamic Admission Controller,它使用 WebAssembly 编写的策略。 欲了解更多信息,请参阅 [Kubewarden 官方网站](https://kubewarden.io/)。 # Kubewarden Admission Controller - Monorepo 本仓库是一个 monorepo,包含 Kubewarden Admission Controller 所有不同 组件的源代码: - **kubewarden-controller**:一个 Kubernetes controller,允许您动态注册 Kubewarden 准入策略,并将其与部署它的集群中的 Kubernetes webhooks 进行协调 - **policy-server**:评估用 WebAssembly 编写的准入策略的运行时组件 - **audit-scanner**:根据注册的策略扫描集群中现有资源的组件 - **kwctl**:用于测试和管理 Kubewarden 策略的 CLI 工具 ## 文档 完整详尽的文档可在 [docs.kubewarden.io](https://docs.kubewarden.io) 获取。 [`docs/`](./docs) 文件夹包含每个组件的 README 文件: - [Controller](./docs/controller) - [Policy Server](./docs/policy-server) - [Audit Scanner](./docs/audit-scanner) - [kwctl](./docs/kwctl) - [CRDs](./docs/crds) ## 安装 kubewarden-controller 可以使用 Helm chart 进行部署。有关说明, 请参阅 https://charts.kubewarden.io。 请参阅我们的[快速入门](https://docs.kubewarden.io/quick-start)以了解更多详情。 # 软件物料清单 & 来源 所有 Kubewarden 组件在每次发布时都会发布其软件物料清单 (SBOM) 和构建 [Provenance](https://slsa.dev/spec/v1.0/provenance) 信息。它遵循 [SPDX](https://spdx.dev/) 格式和 [SLSA](https://slsa.dev/provenance/v0.2#schema) 来源模式。 这两个文件均由 [Docker buildx](https://docs.docker.com/build/metadata/attestations/) 在构建 过程中生成,并与容器镜像一起存储在容器注册表中, 同时也上传到发布页面。 您可以在[发布资产](https://github.com/kubewarden/kubewarden-controller/releases)中找到它们以及用于签名它的签名和证书, 并且它们作为遵循 [in-toto SPDX predicate](https://github.com/in-toto/attestation/blob/main/spec/predicates/spdx.md) 格式的 JSON 编码文档附加到镜像中。您可以使用 [`crane`](https://github.com/google/go-containerregistry/blob/main/cmd/crane/README.md) 或 [`docker buildx imagetools inspect`](https://docs.docker.com/reference/cli/docker/buildx/imagetools/inspect) 获取它们。 您可以使用以下命令验证容器镜像: ``` cosign verify-blob --certificate-oidc-issuer=https://token.actions.githubusercontent.com \ --certificate-identity="https://github.com/kubewarden/kubewarden-controller/.github/workflows/attestation.yml@" \ --bundle kubewarden-controller-attestation-amd64-provenance.intoto.jsonl.bundle.sigstore \ kubewarden-controller-attestation-amd64-provenance.intoto.jsonl ``` 要验证证明清单及其层签名: ``` cosign verify --certificate-oidc-issuer=https://token.actions.githubusercontent.com \ --certificate-identity="https://github.com/kubewarden/kubewarden-controller/.github/workflows/attestation.yml@" \ ghcr.io/kubewarden/kubewarden-controller@sha256:1abc0944378d9f3ee2963123fe84d045248d320d76325f4c2d4eb201304d4c4e ``` 该 sha256 哈希值是证明清单或其层的摘要。 因此,您需要使用 UI 或 `crane` 等工具在注册表中找到此哈希值。 例如,以下命令将显示 `latest` 标签的所有 证明清单: ``` crane manifest ghcr.io/kubewarden/kubewarden-controller:latest | jq '.manifests[] | select(.annotations["vnd.docker.reference.type"]=="attestation-manifest")' { "mediaType": "application/vnd.oci.image.manifest.v1+json", "digest": "sha256:fc01fa6c82cffeffd23b737c7e6b153357d1e499295818dad0c7d207f64e6ee8", "size": 1655, "annotations": { "vnd.docker.reference.digest": "sha256:611d499ec9a26034463f09fa4af4efe2856086252d233b38e3fc31b0b982d369", "vnd.docker.reference.type": "attestation-manifest" }, "platform": { "architecture": "unknown", "os": "unknown" } } { "mediaType": "application/vnd.oci.image.manifest.v1+json", "digest": "sha256:e0cd736c2241407114256e09a4cdeef55eb81dcd374c5785c4e5c9362a0088a2", "size": 1655, "annotations": { "vnd.docker.reference.digest": "sha256:03e5db83a25ea2ac498cf81226ab8db8eb53a74a2c9102e4a1da922d5f68b70f", "vnd.docker.reference.type": "attestation-manifest" }, "platform": { "architecture": "unknown", "os": "unknown" } } ``` 然后您可以使用 `digest` 字段来验证证明清单及其 层签名。 ``` cosign verify --certificate-oidc-issuer=https://token.actions.githubusercontent.com \ --certificate-identity="https://github.com/kubewarden/kubewarden-controller/.github/workflows/attestation.yml@" \ ghcr.io/kubewarden/kubewarden-controller@sha256:fc01fa6c82cffeffd23b737c7e6b153357d1e499295818dad0c7d207f64e6ee8 crane manifest ghcr.io/kubewarden/kubewarden-controller@sha256:fc01fa6c82cffeffd23b737c7e6b153357d1e499295818dad0c7d207f64e6ee8 { "schemaVersion": 2, "mediaType": "application/vnd.oci.image.manifest.v1+json", "config": { "mediaType": "application/vnd.oci.image.config.v1+json", "digest": "sha256:eda788a0e94041a443eca7286a9ef7fce40aa2832263f7d76c597186f5887f6a", "size": 463 }, "layers": [ { "mediaType": "application/vnd.in-toto+json", "digest": "sha256:563689cdee407ab514d057fe2f8f693189279e10bfe4f31f277e24dee00793ea", "size": 94849, "annotations": { "in-toto.io/predicate-type": "https://spdx.dev/Document" } }, { "mediaType": "application/vnd.in-toto+json", "digest": "sha256:7ce0572628290373e17ba0bbb44a9ec3c94ba36034124931d322ca3fbfb768d9", "size": 7363045, "annotations": { "in-toto.io/predicate-type": "https://spdx.dev/Document" } }, { "mediaType": "application/vnd.in-toto+json", "digest": "sha256:dacf511c5ec7fd87e8692bd08c3ced2c46f4da72e7271b82f1b3720d5b0a8877", "size": 71331, "annotations": { "in-toto.io/predicate-type": "https://spdx.dev/Document" } }, { "mediaType": "application/vnd.in-toto+json", "digest": "sha256:594da3e8bd8c6ee2682b0db35857933f9558fd98ec092344a6c1e31398082f4d", "size": 980, "annotations": { "in-toto.io/predicate-type": "https://spdx.dev/Document" } }, { "mediaType": "application/vnd.in-toto+json", "digest": "sha256:7738d8d506c6482aaaef1d22ed920468ffaf4975afd28f49bb50dba2c20bf2ca", "size": 13838, "annotations": { "in-toto.io/predicate-type": "https://slsa.dev/provenance/v0.2" } } ] } cosign verify --certificate-oidc-issuer=https://token.actions.githubusercontent.com \ --certificate-identity="https://github.com/kubewarden/kubewarden-controller/.github/workflows/attestation.yml@" \ ghcr.io/kubewarden/kubewarden-controller@sha256:594da3e8bd8c6ee2682b0db35857933f9558fd98ec092344a6c1e31398082f4d ``` 请注意,每个证明清单(针对每个架构)都有自己的层。 每一层都是 Docker Buildx 在多阶段构建过程中生成的不同 SBOM SPDX 或 provenance 文件。您也可以使用 `crane` 下载证明文件: ``` crane blob ghcr.io/kubewarden/kubewarden-controller@sha256:7738d8d506c6482aaaef1d22ed920468ffaf4975afd28f49bb50dba2c20bf2ca ``` ## 安全披露 请参阅 kubewarden/community 仓库中的 [SECURITY.md](https://github.com/kubewarden/community/blob/main/SECURITY.md)。 # 变更日志 参见 [GitHub Releases 内容](https://github.com/kubewarden/kubewarden-controller/releases)。
标签:AI工具, CNCF, DevSecOps, Go, Helm Charts, Kubewarden, PyVis, Ruby工具, Rust, WASM, WebAssembly, Web截图, web渗透, 上游代理, 准入控制器, 动态准入控制, 可视化界面, 子域名突变, 安全策略管理, 容器安全, 提示注入, 日志审计, 策略即代码, 策略引擎, 网络安全挑战, 网络流量审计, 聊天机器人安全, 软件供应链安全, 远程方法调用, 通知系统, 集群管理