2026-07-01
今日主题
- curl 请求/响应头查看
- 云 API 鉴权架构
- 认证/授权/鉴权术语辨析
新增认知
curl 请求/响应头查看
-
-I 只返回响应头:curl -I(即 --head)发送 HTTP HEAD 请求,服务器只返回响应头不返回响应体,
常用于检查 URL 是否存在、确认文件大小、查看缓存/重定向头。但 HEAD 请求下看不到请求头,因为 -I 是让服务器少发、不是让 curl 多显示。 -
-v 同时显示请求头和响应头:curl -v(--verbose)输出完整通信过程,> 开头的行是请求头,< 开头的行是响应头,响应体正常输出。
如果只想看头信息,搭配 -o /dev/null 丢弃响应体。需要同时看请求头和响应头时用 -v 而非 -I,因为 -I 只改请求方法不改显示行为。
云 API 鉴权架构
-
从自描述到归一化:用户初始认为云 API 请求自描述 action/resource;修正为 action/resource 由请求格式+API 元数据+服务前端解析规则共同推导,最终统一归一成 IAM 能理解的四元组(principal/action/resource/context)。
RPC 风格用显式 Action 参数,REST/ROA 风格用 method+path+元数据推导,resource 由路径/body 参数经服务元数据归一化为 ARN/资源 ID,而非请求里直接传 ARN。 -
PEP/PDP 逻辑集中物理分散:云厂商鉴权采用 XACML 式 PEP(执行点)+PDP(决策点)分离模型。
PEP 嵌在每个服务前端做验签+归一化,PDP 是中央 IAM 控制面。物理实现上评估大概率在本地做(基于异步复制的策略副本),不是每请求远程调中央——
否则 S3 那种 QPS 扛不住,policy 变更延迟也无法解释。
re:Invent 2021 公开讲过 local policy evaluation 是方向性佐证。 -
推断与事实的边界:用 QPS 扛不住、延迟存在反推评估不走中央时,只能证明不会每请求都远程,不能证明永远不需要远程。
不同服务/操作类型可能机制不同;复杂场景(跨账号、新策略、首次资源访问)可能触发回查中央。
具体缓存机制、刷新周期、in-process 还是 sidecar 等细节 AWS 未公开,不该包装成事实。 -
策略数据多源异构:policy 不是一锅数据,而是 identity-based(IAM 中央存储)/resource-based(资源服务侧如 S3 的 bucket policy)/SCP(Organizations)/session policy(STS 签发时随凭证下发)各自存在不同位置,复制机制各异。
评估时需把这些异构来源聚合起来,这是本地评估实现复杂度的重要来源。 -
瘦 SDK + 元数据胖:云厂商 SDK 不承载鉴权决策(安全边界不允许客户端判,可篡改可伪造),只负责协议序列化+签名+重试。胖的只有协议层——
要内置每个服务的 API 元数据(operation 到 HTTP 协议的映射),从服务模型生成。
鉴权决策 100% 服务端做,客户端最多因服务端返回 403 而失败,绝不会自己先判一遍。
认证/授权/鉴权术语辨析
-
authorize 一词两义致译名错位:英文 authorize 有 ① grant(授予) ② permit/sanction(准许/判定)两义,中文"授权"几乎只覆盖 ①。
安全工程里 authorization 99% 是 ②——
系统判定主体能否访问资源,并非在"授予"任何东西(授予那步叫 provisioning/entitlement,是管理员配角色时做的)。
把 ② 译成"授权",就把判定语义译成了赋予语义,主语宾语都拧了。
典型错位句:"You are not authorized to access" 译"你未被授权访问"听着像没人给你授过权,实则是系统不准许你访问。 -
鉴权才是 authorization 的贴切译法:和"认证"对仗工整——
认证验身份(prove who you are),鉴权判权限(check what you can do)。
台湾和部分国标沿用"授权"是历史约定俗成,语义上偏了。 -
认证译法无问题:认=识别你是谁,证=拿出凭证证明,贴合 authentication 的 prove who you are 核心。
无需纠结,该纠结的只有"授权"。 -
判定该不该用授权看动作主谓宾:若语义是"系统/管理员把权限给某主体"(grant)用"授权"正确;若语义是"系统判定/准许主体能否做某事"(permit)该用"鉴权/权限判定/访问控制"。
仓库实战:grep 全仓"授权"仅一处"确保只有授权人员使用",属 ① 义 grant(被授了权的人),用得对,无需改。