在AWS CodeArtifact中,如果你使用了Private Repository并进行了身份验证,那么在CodePipeline使用该Repository时,可能会返回401错误。这是因为CodePipeline使用的IAM Role可能没有足够的权限。为了解决这个问题,你可以通过添加以下Policy来给CodePipeline的IAM Role授予访问CodeArtifact的权限:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "CodeArtifactAccess",
"Effect": "Allow",
"Action": [
"codeartifact:GetAuthorizationToken",
"codeartifact:GetRepositoryEndpoint",
"codeartifact:DescribeRepository",
"codeartifact:GetRepositoryPermissionsPolicy",
"codeartifact:ListPackageVersionAssets",
"codeartifact:PutPackageVersions",
"codeartifact:CreateRepository"
],
"Resource": "*"
}
]
}
你需要将上述Policy添加到CodePipeline使用的IAM Role上。这将授予CodePipeline访问CodeArtifact的所需权限,以避免返回401错误。