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

使用AWS SSO时Gradle构建无法下载S3 Maven构件

解决本地Gradle构建访问S3 Maven仓库被拒的问题

针对切换AWS SSO后本地构建失败、生产环境正常的情况,可以试试以下排查和解决步骤:

  • 确认本地SSO会话有效性
    运行aws sso login重新登录AWS SSO,SSO会话默认存在时间限制,本地大概率是会话过期导致认证失败,而生产环境一般用的是长期有效角色或会话保持机制。登录后可执行aws sts get-caller-identity验证当前身份是否正确。

  • 确保Gradle正确读取SSO配置
    检查~/.aws/config里的SSO配置参数(sso_account_id、sso_role_name、sso_start_url等)是否和生产环境一致。如果你的SSO配置用的不是默认profile,需要在Gradle仓库配置里显式指定:

    maven {
      url = uri("s3://bucket-name/releases")
      authentication {
        create<AwsImAuthentication>("awsIm") {
          profile = "你的SSO配置profile名称"
        }
      }
    }
    
  • 清理残留的旧密钥环境变量
    检查本地是否还存在AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY环境变量,这些旧密钥会被Gradle优先读取,直接覆盖SSO认证设置。可以用echo $AWS_ACCESS_KEY_ID查看,若存在则清空这些变量后重新构建。

  • 验证本地SSO角色的S3权限
    确认本地SSO关联的IAM角色拥有目标S3桶的ListBucket和GetObject权限,同时检查S3桶的资源策略是否限制了访问IP,排查本地IP是否不在允许范围内。

  • 对齐AWS SDK版本
    Gradle的AWS相关组件依赖的SDK版本可能和本地AWS CLI不一致,引发SSO认证兼容性问题。可以在build.gradle.kts里显式指定兼容的AWS SDK版本:

    buildscript {
      dependencies {
        classpath("software.amazon.awssdk:sts:2.20.0")
        classpath("software.amazon.awssdk:s3:2.20.0")
      }
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 06:17:06