maxlambrecht/rust-spiffe

GitHub: maxlambrecht/rust-spiffe

提供 SPIFFE 工作负载身份、Workload API 客户端、SPIRE gRPC API 以及与 rustls/Tokio 集成的 Rust crate 集合。

Stars: 32 | Forks: 16

# SPIFFE 库 [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/d983e5a5ea164347.svg)](https://github.com/maxlambrecht/rust-spiffe/actions/workflows/ci.yml?query=branch%3Amain) [![Coverage](https://coveralls.io/repos/github/maxlambrecht/rust-spiffe/badge.svg?branch=main)](https://coveralls.io/github/maxlambrecht/rust-spiffe?branch=main) [![Crates.io](https://img.shields.io/crates/v/spiffe.svg)](https://crates.io/crates/spiffe) [![Crates.io](https://img.shields.io/crates/v/spiffe-rustls.svg)](https://crates.io/crates/spiffe-rustls) [![Crates.io](https://img.shields.io/crates/v/spiffe-rustls-tokio.svg)](https://crates.io/crates/spiffe-rustls-tokio) [![Crates.io](https://img.shields.io/crates/v/spire-api.svg)](https://crates.io/crates/spire-api) [![OpenSSF Best Practices](https://www.bestpractices.dev/projects/11801/badge)](https://www.bestpractices.dev/projects/11801) [![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](LICENSE) [![Safety](https://img.shields.io/badge/unsafe-forbidden-success.svg)](https://github.com/rust-secure-code/safety-dance) 用于 SPIFFE 工作负载身份(Workload Identity)、Workload API 客户端、SPIRE 特定 API 以及 TLS 集成的 crate 集合。 ## 项目范围与目标 这些 crate 提供了符合标准的构建块,用于将 SPIFFE 和 SPIRE 集成到 Rust 应用程序中。 该项目专注于: - API 的正确性与清晰度 - 与 SPIFFE 规范保持一致 - 保守的面向安全的设计 - 显式的依赖和特性管理 本仓库**不**声称经过正式的安全审计或保证适用于生产环境。用户 应根据自身需求和威胁模型评估其适用性。 ## 可用的 Crate 这些 crate 可以根据所需的抽象级别独立使用或组合使用。 ### `spiffe` 面向 **SPIFFE Workload API** 的符合标准的 SPIFFE 身份原语和客户端。 **如果你需要以下功能,请使用此 crate:** - X.509 和 JWT SVID 处理 - 信任包(Trust Bundle)管理 - 流式身份更新 - 强类型的 SPIFFE 标识符和信任域(Trust Domain) 请参阅 [spiffe README](./spiffe/README.md) 以了解用法和 API 文档。 ### `spire-api` 用于 **SPIRE 特定 gRPC API**(非 SPIFFE 标准部分)的 Rust 绑定。 **如果你需要以下功能,请使用此 crate:** - SPIRE 委托身份 API(Delegated Identity API) - 与 SPIRE agent 或 server 扩展直接交互 请参阅 [spire-api README](./spire-api/README.md) 以了解详情。 ### `spiffe-rustls` SPIFFE 身份与 [`rustls`](https://crates.io/crates/rustls) 之间的集成。 **如果你需要以下功能,请使用此 crate:** - 使用 SPIFFE 身份的双向 TLS (mTLS) - SVID 和信任包轮换的自动处理 - 基于 SPIFFE ID 的 TLS 层级对等授权 请参阅 [spiffe-rustls README](./spiffe-rustls/README.md) 以了解配置和示例。 ### `spiffe-rustls-tokio` 用于 `spiffe-rustls` 配置的原生 Tokio 异步 accept/connect 辅助工具。 **如果你需要以下功能,请使用此 crate:** - 使用 Tokio 的异步 TLS 连接 - 从 TLS 连接中自动提取对等端的 SPIFFE ID - `TlsAcceptor` 和 `TlsConnector` API 请参阅 [spiffe-rustls-tokio README](./spiffe-rustls-tokio/README.md) 以了解用法和示例。 ## 选择 Crate 大多数用户将使用以下一个或多个 crate: - **SPIFFE 身份或 Workload API 访问** → `spiffe` - **SPIRE gRPC API** → `spire-api` - **基于 rustls 的 SPIFFE mTLS** → `spiffe-rustls` - **基于 Tokio 的 SPIFFE 异步 TLS** → `spiffe-rustls-tokio` ### 开发设置 ``` # 克隆 repository git clone https://github.com/maxlambrecht/rust-spiffe.git cd rust-spiffe # 快速检查 (formatting + linting + build,无测试) make check # 完整测试套件 (formatting + linting + build + tests) make all # 本地运行完整 CI 检查 (包含 MSRV 验证) make ci # 运行集成测试 (需要 SPIRE 设置) make integration-tests ``` 请查看 `make help` 以获取所有可用的目标。 ### 问题反馈 请通过 [GitHub Issues](https://github.com/maxlambrecht/rust-spiffe/issues) 提交 Bug 和功能请求。 ### 安全 对于安全相关问题,请遵循 [SECURITY.md](SECURITY.md) 中描述的披露流程。 ## 许可证 根据 Apache License 2.0 版本授权。 请参阅 [LICENSE](./LICENSE) 了解详情。
标签:crates, JSONLines, mTLS, Python工具, Rust, Rustls, SPIFFE, SPIRE, TLS集成, Tokio, 加密, 可视化界面, 工作负载身份, 服务网格, 漏洞扫描器, 编程库, 网络安全, 网络流量审计, 证书管理, 通知系统, 隐私保护, 零信任