本地IntelliJ访问AWS S3时出现403 Access Denied错误求助
问题排查与解决步骤
一、先修正AWS配置文件的核心错误
你的~/.aws/credentials和config文件存在配置混乱问题,这是引发报错的关键诱因:
credentials文件只存密钥,移除角色配置
credentials文件里的[dev-role]段完全多余(角色配置属于config文件的范畴),直接删除这段内容:[dev-role] region = ap-south-1 output = json role_arn = arn:aws:iam::03************5:role/cult-pass-devs source_profile = diksha@**.com-mfa统一Profile名称匹配
config里的profile名称是diksha@**.com,但credentials里对应的是diksha.nagpal@**.com,名称不匹配会导致source_profile无法正确关联。把两边名称统一:- 将config里的
[profile diksha@**.com]改为[profile diksha.nagpal@**.com] - 将config里的
[profile diksha@**.com-mfa]改为[profile diksha.nagpal@**.com-mfa]
修正后的config文件示例:
[profile diksha.nagpal@**.com] region = ap-south-1 output = json [profile diksha.nagpal@**.com-mfa] region = ap-south-1 output = text [profile dev-role] region = ap-south-1 output = json role_arn = arn:aws:iam::03************5:role/dev-role source_profile = diksha.nagpal@**.com-mfa- 将config里的
二、确认项目构建时使用的Profile
AWS Explorer能正常访问说明Toolkit凭证配置正确,但构建流程可能没指定正确的profile:
- 如果用Maven/Gradle构建,检查脚本里的AWS配置项,是否明确指定了
dev-role这个profile - 如果是代码加载凭证,确认代码是否通过
ProfilesConfigFile加载dev-role,或者是否设置了环境变量AWS_PROFILE=dev-role - 直接在IntelliJ的Run Configuration里添加环境变量
AWS_PROFILE=dev-role,强制构建时使用该profile
三、验证IAM角色权限
即使profile配置正确,dev-role角色可能没有目标S3桶的访问权限:
- 登录AWS控制台,找到ARN为
arn:aws:iam::03************5:role/dev-role的角色 - 检查该角色附加的政策,是否包含对目标S3桶的
s3:GetObject、s3:ListBucket等必要权限(根据你的构建操作调整) - 可临时添加S3全权限政策做测试,如果能正常构建,说明是权限不足,再细化政策到具体桶和操作
四、验证会话令牌有效性
检查diksha.nagpal@**.com-mfa里的session token是否过期:
- 打开终端执行
aws s3 ls --profile diksha.nagpal@**.com-mfa,看是否能正常列出桶 - 如果报错,重新生成带MFA的会话令牌,替换credentials里的对应内容
五、检查IntelliJ AWS Toolkit的默认Profile
确认IntelliJ的AWS Toolkit是否将dev-role设为默认:
- 打开AWS Explorer,点击顶部的Profile选择器,确认选中
dev-role - 也可以在
Settings -> Tools -> AWS Toolkit里,把dev-role设为默认profile
内容的提问来源于stack exchange,提问作者DiNagpal
相关产品推荐
相关产品推荐

