Vercel 在 8 月 18 日推出 KMS,一个托管的非对称签名密钥服务。函数里签 JWT 或者签任意字节,私钥都留在服务内部,不进代码也不进环境变量。
接口是 @vercel/kms 这个 npm 包,签 JWT 调 signToken,传 issuerId、claims 和 ttl。函数向 KMS 认证走 Vercel 的 OIDC token,不需要另外配凭据。命令行这边用 vercel kms add <名称> --algorithm ES256 建密钥,用 vercel kms add-grant <issuerId> --project <项目> --environment <环境> 授权。密钥支持 RSA、ECDSA 和 EdDSA 三个家族。
验证方对接不需要 Vercel 的 SDK。每个签发方都有 https://kms.vercel.com/<issuerId>/.well-known/openid-configuration 和 https://kms.vercel.com/<issuerId>/jwks.json 两个端点,任何标准 OIDC 或 JOSE 库都能用,官方示例用的是 jose 的 createRemoteJWKSet 配 jwtVerify。
授权粒度落到项目加环境,生产、预览、开发和自定义环境各算独立的一格。一条授权还能限定该项目允许申请哪些声明,声明本身可以按 JSON Schema 校验。官方建议每个项目每个环境用独立签发方,轮换或吊销一把密钥不会牵连别处。
阶段是测试版,适用 Vercel 的 Beta 协议,转正之前行为可能变。全部套餐都能用,公告没有给定价、配额和密钥数量上限。