短信服务商要求 API Key 每 90 天轮换,到期当天发送接口全部 401,监控大盘上证书剩余天数还是 67 天,没有任何告警。碰到这种情况,我一般先确认改动有没有真的生效。
原因不复杂,到期监控只覆盖了 TLS 证书,API Key 的有效期没有纳入。密钥创建时间记录在文档里,没有写进配置或资产表。轮换是人工操作,没有提前提醒。
「API 密钥过期」相关的日志我一般连着看前后五分钟,单看一条报错经常判断不出是哪一步失败。日志级别临时调高可以,记得改回去,长期开着既占磁盘又掩盖真问题。
curl -s -o /dev/null -w '%{http_code}\n' -H 'Authorization: Bearer $SMS_KEY' https://sms.example.com/ping
grep -rn 'expire' config/integrations.yml
权限不要一口气开到最大,先加到够用再往上试,范围小才好收。把复现步骤压到三条以内,交给同事也能跑出来,才算真的定位清楚。
具体做法是,把所有外部 API Key 的签发和到期时间录进资产表;到期前 14 天和 3 天各告警一次;轮换做成双密钥并行 新旧同时有效一周;把新 Key 写进配置后发一条测试短信验证。
最后用这个标准收尾,新 Key 调 ping 返回 200 资产表里下次到期时间往后推了 90 天。
