You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

单HTML页面调用AWS SDK所需配置凭证的安全存储与获取方案咨询

前端单页应用调用AWS服务的凭证安全最佳实践

首先明确核心规则:所有运行在浏览器端的代码完全公开可获取,绝对不能在前端代码中硬编码、存储任何长期有效的AWS访问凭证,避免凭证泄露导致账号被滥用、数据泄露或产生超额费用。

针对你的场景,可行的安全方案有以下两种:

  • 方案一:通过Amazon Cognito身份池获取临时凭证
    Cognito身份池是AWS官方提供的客户端身份管理服务,专门用于给Web/移动端客户端下发短期受限的访问凭证:
    1. 在AWS控制台创建Cognito身份池,根据业务需求选择允许未授权用户访问,或者要求用户先登录认证
    2. 为身份池对应的IAM角色配置最小必要权限,仅开放访问指定Secrets Manager密钥的权限,禁止其他不必要的服务权限
    3. 前端代码先调用Cognito API获取临时凭证(包含accessKeyId、secretAccessKey、sessionToken,默认有效期最长12小时),再用临时凭证初始化AWS SDK调用Secrets Manager
      这种方式下发的凭证有自动过期时间,就算被窃取也不会产生长期风险,同时权限被严格限制,危害范围可控。
  • 方案二:新增后端代理层转发请求(推荐)
    完全避免前端直接访问AWS服务,所有对Secrets Manager的请求都走你自己的后端服务代理:
    1. 可以选择用API Gateway + Lambda的无服务架构,或者自己现有的服务端
    2. AWS凭证仅存储在后端的安全配置中(比如服务端的环境变量、Lambda的加密配置项),前端完全不需要接触凭证
    3. 前端只需要请求你自己的业务接口,后端完成Secrets Manager的调用、权限校验、请求限流之后,把需要的内容返回给前端
      这种方案的安全性最高,完全规避了前端凭证泄露的风险,还可以灵活叠加业务逻辑控制。

禁止操作

不要尝试把凭证存储在浏览器的localStorage、sessionStorage等位置,一旦站点存在XSS漏洞,凭证会被攻击者直接窃取,风险和硬编码一致。

内容的提问来源于stack exchange,提问作者EDJ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 16:15:02