【问题标题】:Blocking certain public packages with AWS CodeArtifact使用 AWS CodeArtifact 阻止某些公共包
【发布时间】:2022-07-19 02:45:43
【问题描述】:

我希望创建一个私有 CodeArtifact PyPI 存储库,其上游连接到公共 PyPI 存储库。私有仓库将存储带有特定前缀的包。

例子:

  • foo.databases
  • foo.logging

如果从私有存储库请求的版本不可用,我想避免从公共 PyPI 存储库中提取上述包。任何带有 foo 前缀的包请求都应该被上游仓库阻止。

根据存储库政策docs...

codeartifact:ReadFromRepository 操作只能用于存储库资源。您不能将包的 Amazon 资源名称 (ARN) 作为资源,并将 codeartifact:ReadFromRepository 作为操作以允许对存储库中的包子集进行读取访问。给定的主体可以读取存储库中的所有包,也可以不读取。

...我觉得这是不可能的。有什么办法可以使这项工作? Artifactory 使用include / exclude 模式来解决这个问题。我希望在 CodeArtifact 中有类似的东西。

【问题讨论】:

    标签: amazon-web-services packaging pypi aws-codeartifact


    【解决方案1】:

    CodeArtifact 不支持根据包名前缀阻止来自上游的包。但 CodeArtifact 现在提供了package origin controls,可用于阻止来自上游的单个包。

    如果您创建一个私有 CodeArtifact PyPI 存储库,其上游连接到公共 PyPI 存储库,然后将包的版本 foo.databasesfoo.logging 发布到您的私有存储库,那么这些包将在您的私有存储库中初始化设置阻止来自上游存储库的这些包的版本,这将阻止从公共 PyPI 存储库中提取这些包的任何版本。

    由于该功能不适用于前缀,如果您稍后请求 foo.networking 之类的内容,则不会阻止它从公共 PyPI 中提取,除非您首先将 foo.networking 的版本发布到您的私有存储库或手动发布在包foo.networking上配置包源控制设置上游:块。

    【讨论】:

      猜你喜欢
      • 2020-11-03
      • 1970-01-01
      • 1970-01-01
      • 2013-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-17
      相关资源
      最近更新 更多