首页 > 解决方案 > AWS CodeArtifact 存储库策略

问题描述

对 AWS Codeartifact 中的存储库策略有疑问。我们已经在工件中创建了域和存储库。现在我们需要限制存储库,以便用户只能从本地机器上从 codeartifact 存储库中提取,而不能发布到该存储库。我们在 repo 上设置了以下策略

{
    "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": "*"
        }
    ]
}

但不幸的是,用户可以通过对这个 codeartifact repo执行npm login和发布。npm publish此用户具有 AdministratorAccess 和 AWSCodeArtifactReadOnlyAccess 组。

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

标签: aws-codeartifact

解决方案


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


推荐阅读