AWS CodeArtifact存储库策略

问题描述

对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 loginnpm publish发布。该用户具有AdministratorAccess和AWSCodeArtifactReadOnlyAccess组。

不确定在这里我们在做什么错。任何想法/建议都会有很大帮助。谢谢大家。

解决方法

为解决此问题,我们在具有管理员访问权限的用户上创建了一个明确拒绝codeartifact:PublishPackageVersion的自定义策略,并为管理员用户删除了AWSCodeArtifactReadOnlyAccess,一切似乎都正常运行。理想情况下,可能不是正确的解决方案。使用其中一些策略创建单独的用户可能更好。但是,目前看来,这对我们有用。