AWS Amplify API密钥存储位置及安全授权方案咨询
AWS Amplify API Key 相关问题解答
API密钥的前端存储位置
- 当你通过Amplify CLI初始化项目并添加GraphQL API后,API密钥会自动写入本地的
amplifyconfiguration.json(或aws-exports.js,取决于初始化配置)文件,该文件会被打包进React Native应用的代码包中。 - 若使用Amplify Studio配置API,密钥会自动同步到本地配置文件,无需手动添加。
API密钥防暴露方法
- 务必将
amplifyconfiguration.json/aws-exports.js加入.gitignore,禁止提交到Git等版本控制系统,避免密钥泄露到公共仓库。 - 生产环境建议用环境变量注入:借助
react-native-dotenv这类库,将密钥存在环境变量中,再在配置文件中引用,避免硬编码。 - 限制密钥权限与有效期:在AWS AppSync控制台给API密钥设置较短的过期时间,到期及时更换;同时配置细粒度的IAM策略,缩小密钥可操作的资源范围。
替代API Key的高安全授权方案
Amazon Cognito 用户池
这是最常用的用户级授权方案,支持注册、登录,通过JWT令牌实现权限控制:
- 执行
amplify add auth添加Cognito用户池,更新GraphQL API的授权模式为AMAZON_COGNITO_USER_POOLS。 - 前端通过
Auth.signIn()完成用户登录后,Datastore会自动使用用户的JWT令牌发起请求,实现用户级别的数据访问控制。
IAM授权
适合信任的客户端或后端服务,通过AWS IAM角色/用户的临时凭证签名请求:
- 配置IAM策略限制API的访问权限,前端通过Amplify Auth模块获取临时IAM凭证,Datastore会自动用该凭证签名请求。
OIDC授权
适配已有外部身份提供商(如Google、Facebook)的场景:
- 在AWS AppSync中配置OIDC身份提供商,用户通过第三方登录获取令牌后,即可用该令牌访问API,实现统一身份认证。
内容的提问来源于stack exchange,提问作者hewa
相关产品推荐
相关产品推荐

