maxlambrecht/rust-spiffe
GitHub: maxlambrecht/rust-spiffe
提供 SPIFFE 工作负载身份、Workload API 客户端、SPIRE gRPC API 以及与 rustls/Tokio 集成的 Rust crate 集合。
Stars: 32 | Forks: 16
# SPIFFE 库
[](https://github.com/maxlambrecht/rust-spiffe/actions/workflows/ci.yml?query=branch%3Amain)
[](https://coveralls.io/github/maxlambrecht/rust-spiffe?branch=main)
[](https://crates.io/crates/spiffe)
[](https://crates.io/crates/spiffe-rustls)
[](https://crates.io/crates/spiffe-rustls-tokio)
[](https://crates.io/crates/spire-api)
[](https://www.bestpractices.dev/projects/11801)
[](LICENSE)
[](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, 加密, 可视化界面, 工作负载身份, 服务网格, 漏洞扫描器, 编程库, 网络安全, 网络流量审计, 证书管理, 通知系统, 隐私保护, 零信任