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

EC2堡垒机挂载AWS EFS时出现AWS密钥错误求助

解决EFS挂载时的AWS凭证找不到问题

核心问题在于你用sudo执行mount命令,此时进程以root用户身份运行,系统会优先读取/root/.aws/credentials和/root/.aws/config,而你检查的是普通用户家目录(~/.aws)下的配置文件,这是两个完全独立的路径。

以下是几种可行的解决方法:

方法1:将普通用户的凭证复制到root目录

执行以下命令把你已配置好的凭证文件同步到root用户的对应目录:

sudo mkdir -p /root/.aws
sudo cp ~/.aws/credentials /root/.aws/
sudo cp ~/.aws/config /root/.aws/
# 确保权限符合AWS要求
sudo chmod 700 /root/.aws
sudo chmod 600 /root/.aws/credentials /root/.aws/config

之后重新执行你的mount命令即可。

方法2:让sudo继承当前用户的环境

如果你的AWS凭证是通过环境变量(AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY)设置的,可以用-E参数让sudo保留当前用户的环境变量:

sudo -E mount -t efs -o tls,iam,accesspoint=fsap-xxx fs-xxx: /myDirThatINeedToMountOnRoot

注意:如果依赖的是本地文件凭证,这种方式需要确保root用户能读取普通用户的~/.aws目录(默认700权限下root是可以读取的)。

方法3:给EC2实例附加IAM角色(推荐)

这是AWS官方推荐的安全做法,不需要在实例上存储任何静态凭证:

  1. 登录IAM控制台,创建一个新角色,信任实体选择EC2,并添加允许访问EFS的权限(比如AmazonEFSFullAccess,或根据需求配置更细粒度的权限)
  2. 到EC2控制台,找到你的堡垒机实例,选择操作 > 安全 > 修改IAM角色,将刚创建的角色附加到实例上
  3. 等待几分钟让实例元数据服务刷新凭证,之后直接执行你的mount命令即可,无需依赖本地凭证文件

额外检查点

  • 确认执行mount命令时,accesspoint=fsap-xxx和fs-xxx的ID完全正确,没有拼写错误
  • 确保EC2实例的安全组允许与EFS的安全组建立NFS(端口2049)连接

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 08:05:53