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

AWS S3报错:Access Key ID未在AWS记录中找到,cPanel部署求助

解决方案

1. 核对cPanel环境变量配置

  • 确保在cPanel的「Node.js应用」管理界面(或环境变量设置面板)中,已正确配置AWS_ACCESSKEYID、AWS_SECRETACCESSKEY、AWS_REGION三个环境变量,变量名大小写必须和代码中的完全一致(比如代码用AWS_ACCESSKEYID就不能写成小写的aws_accesskeyid)。
  • 检查变量值是否输入正确:避免末尾有空格、特殊字符,复制粘贴密钥时确保完整无遗漏。
  • 设置完成后重启cPanel上的Node.js应用,部分环境变量需重启才能生效。

2. 验证环境变量是否被正确加载

在创建S3Client前添加临时调试日志,确认变量读取情况:

// 临时调试代码,上线前删除
console.log("AWS Access Key Loaded:", process.env.AWS_ACCESSKEYID);
console.log("AWS Region Loaded:", process.env.AWS_REGION);

const s3 = new S3Client({
  region: process.env.AWS_REGION,
  credentials: {
    accessKeyId: process.env.AWS_ACCESSKEYID,
    secretAccessKey: process.env.AWS_SECRETACCESSKEY,
  },
});

部署后查看cPanel应用的日志:

  • 如果日志中AWS Access Key Loaded为空或显示错误值,说明环境变量未正确配置;
  • 如果值正确,再排查其他原因。

3. 检查IAM密钥的权限与限制

  • 登录AWS控制台,进入IAM服务,找到对应密钥所属的IAM用户:
    • 确认密钥状态为「Active」,未被删除或禁用;
    • 检查用户的权限策略,确保包含S3操作所需的权限(如s3:PutObject、s3:GetObject等);
    • 查看是否设置了IP访问限制:如果IAM策略中添加了SourceIp条件,需将cPanel服务器的公网IP加入允许列表,否则AWS会拒绝非授权IP的请求(可能表现为密钥未找到的错误)。

4. 匹配Node.js版本与依赖

  • 确认cPanel上的Node.js版本与本地开发环境一致:如果本地用Node 18+,cPanel用低版本(如Node 14),可能导致@aws-sdk/client-s3依赖兼容问题,引发密钥读取错误。
  • 在cPanel终端进入应用目录,执行npm ls @aws-sdk/client-s3,确认依赖已正确安装,无版本冲突。

5. 排除部署时的配置遗漏

  • 确保未将本地的.env文件上传至cPanel:cPanel的Node.js环境默认不会读取.env文件,必须通过cPanel自带的环境变量面板配置;
  • 检查应用部署包是否完整,没有遗漏node_modules目录或相关依赖文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 23:36:11