问题描述
对AWS Codeartifact中的存储库策略有疑问。我们已经在工件中创建了域和存储库。现在我们需要限制存储库,以便用户可以仅从其本地计算机上的codeartifact存储库中提取文件,并且不可以将其发布到该存储库中。我们在存储库上设置了以下策略
{
"Version": "2012-10-17","Statement": [
{
"Effect": "Allow","Principal": {
"AWS": "arn:aws:iam::<domaiNowner>:user/<**username>"
},"Action": [
"codeartifact:DescribePackageVersion","codeartifact:DescribeRepository","codeartifact:GetPackageVersionReadme","codeartifact:GetRepositoryEndpoint","codeartifact:ListPackageVersionAssets","codeartifact:ListPackageVersionDependencies","codeartifact:ListPackageVersions","codeartifact:ListPackages","codeartifact:ReadFromrepository"
],"Resource": "*"
}
]
}
但是不幸的是,用户可以通过对此代码工件存储库进行npm login
和npm publish
发布。该用户具有AdministratorAccess和AWSCodeArtifactReadOnlyAccess组。
不确定在这里我们在做什么错。任何想法/建议都会有很大帮助。谢谢大家。
解决方法
为解决此问题,我们在具有管理员访问权限的用户上创建了一个明确拒绝codeartifact:PublishPackageVersion
的自定义策略,并为管理员用户删除了AWSCodeArtifactReadOnlyAccess,一切似乎都正常运行。理想情况下,可能不是正确的解决方案。使用其中一些策略创建单独的用户可能更好。但是,目前看来,这对我们有用。