使用Gradle的maven-publish插件发布至AWS CodeArtifact时遇403错误
解决AWS CodeArtifact Maven仓库Gradle发布403 Forbidden错误
检查IAM权限
确认用于访问CodeArtifact的IAM身份(用户/角色)拥有codeartifact:GetRepositoryEndpoint、codeartifact:ReadFromRepository和codeartifact:PublishPackageVersion权限。可在IAM控制台添加如下策略片段(替换占位符为实际信息):{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codeartifact:GetRepositoryEndpoint", "codeartifact:ReadFromRepository", "codeartifact:PublishPackageVersion" ], "Resource": "arn:aws:codeartifact:region:account-id:repository/domain/repo-name" } ] }验证Gradle凭证配置
确保build.gradle/settings.gradle中的CodeArtifact认证信息正确。使用AWS CLI生成临时令牌(aws codeartifact get-authorization-token),并在Gradle中配置:repositories { maven { url "https://domain-account-id.d.codeartifact.region.amazonaws.com/maven/repo-name/" credentials { username "aws" password awsCodeArtifactToken // 替换为实际令牌 } } } publishing { publications { mavenJava(MavenPublication) { from components.java } } repositories { maven { url "https://domain-account-id.d.codeartifact.region.amazonaws.com/maven/repo-name/" credentials { username "aws" password awsCodeArtifactToken } } } }令牌默认有效期12小时,过期后需重新生成。
核对仓库端点URL
检查Gradle配置中的仓库URL是否与CodeArtifact控制台显示的完全一致,重点确认区域、账户ID、域名称和仓库名称的拼写,错误URL会直接导致403。检查仓库访问设置
若通过公网访问,确认CodeArtifact域允许公网访问,且你的IP在允许列表内;若在VPC内访问,确认VPC端点配置正确。
内容的提问来源于stack exchange,提问作者shivamag00
相关产品推荐
相关产品推荐

