控制对包的访问

默认情况下,上传到 Repository 的所有包、笔记本和环境都是公开的,这意味着任何有权访问 Repository 的人都可以访问它们。

当您将包设为私有时,只有您和您授权的用户才能访问它。

您可以通过两种方式授权用户访问您的私人包:

  • 使用组织帐户内的- 只有登录的组成员才能访问包。这是控制对私有包的访问的最佳方式,因为它允许您为每个包、笔记本或环境设置单独的权限。
  • 使用令牌控制系统——只有拥有适当令牌的用户才能访问私有包或频道。

在您授予其他用户访问权限后,他们可以使用 Web UI 或客户端下载并安装您的软件包。

将包设为私有

  1. 在 Web UI 的工具菜单中,选择包。

  2. 可选:如果您要查找的包不可见,请在过滤器下的类型列表中选择全部。

  3. 选中要设为私有的每个包旁边的复选框。

  4. 单击“设置”选项卡,然后单击边栏中的“管理”选项卡。

    注意:您也可以通过以下 URL 访问此页面:

    https://<your-anaconda-repo>/USERNAME/PACKAGE/settings/admin
    

    替换<your-anaconda-repo>为您本地存储库的名称、您USERNAME的用户名和PACKAGE 包的名称。

  5. 单击设置访问权限,然后选择私有。

注意:您可以使用相同的过程和 URL 将 Jupyter Notebooks 和 conda 环境设为私有。

使用组允许访问私有包

  1. 创建一个组织
  2. 将包上传传输到组织。
  3. 在组织内,创建一个具有适当用户、权限和包的组。

创建令牌以允许访问私有包或频道

您可以使用令牌系统控制对私有包和频道的访问 。所有存储库 URL 都可以添加前缀/t/<token>以允许访问。

生成令牌时,令牌授予的访问程度是完全可配置的。您可以生成多个令牌来控制哪些用户组可以访问某些功能(如果他们拥有适当的令牌)。

令牌提供对指定频道中所有包的访问。组织和组可以更好地处理每个包、笔记本或环境的单独权限。

您可以使用 Web UI 或 Anaconda Client 生成令牌。

注意:默认情况下,令牌会在一年后过期。

在 Web UI 中生成令牌

  1. 导航:

    https://<your-anaconda-repo>/<channel>/settings/access
    

    注意:替换<your-anaconda-repo>为您本地存储库<channel>的名称和所需频道的名称。

  2. 在令牌名称框中,键入令牌的名称:

    ../../../../../_images/repo-tokens.png

  3. 为您希望允许此令牌用户的访问类型选择相应的复选框。

    示例:要允许用户从私有渠道下载私有包或包,请选择允许从 Conda 存储库进行私有下载。

  4. 单击创建按钮。

使用客户端生成令牌

  1. 在客户端窗口或 Anaconda Prompt 中,运行:

    anaconda auth --create --name YOUR-TOKEN-NAME --scopes repos conda:download'
    

    注意:替换YOUR-TOKEN-NAME为新令牌的名称。

    以空格分隔的带引号的列表形式提供范围。上述命令生成的令牌提供了下载任何私有 conda 存储库的权限。可用的范围是:

    • all: 允许所有操作。
    • api: 允许所有 API 操作。
    • api:modify-group: 允许添加和修改组。
    • api:read:允许对 API 站点进行读取访问。
    • api:write:允许对 API 站点进行写访问。
    • conda:允许对 conda 存储库进行所有操作。
    • conda:download:允许从 conda 存储库进行私人下载。
    • pypi:允许对 PyPI 存储库进行所有操作。
    • pypi:download:允许从 PyPI 存储库私人下载。
    • pypi:upload:允许上传到 PyPI 存储库。
    • repos:允许访问所有软件包存储库。
  2. 您可以使用以下命令启用令牌:conda config

    conda config --add channels https://conda.anaconda.org/t/<token>/<channel>
    

    或者添加一个带有令牌和标签的频道:

    conda config --add channels https://conda.anaconda.org/t/<token>/<channel>/label/<labelname>
    

    注意:替换<token>为您的令牌字符串,``<channel>`` 替换为所需的频道名称和<labelname>标签名称。

    注意:如果您丢失了令牌的随机字母数字字符串,您必须撤销该令牌并创建一个新令牌

使用令牌

令牌可用于:

  • 添加用于安装私有包的通道:

    conda config --add channels https://conda.<your-anaconda-repo>/t/<token>/<channel>
    

    注意:替换<your-anaconda-repo>为您本地存储库的名称、<token>提供的令牌和 <channel>用户频道。

  • 无需先添加频道即可安装私有包:

    conda install -c https://conda.<your-anaconda-repo>/t/<token>/<channel> <package>
    

    要使用令牌和标签名称从频道安装软件包:

    conda install -c https://conda.<your-anaconda-repo>/t/<token>/<channel>/label/<labelname> <package>
    

    注意:替换<your-anaconda-repo>为您本地存储库的名称、<token>提供的令牌、<channel>用户频道、<labelname>标签名称和<package>要安装的包的名称。

  • 安装私有 PyPI 包:

    pip install --index-url https://pypi.<your-anaconda-repo>/t/<token>/<channel>/PACKAGE
    

    注意:替换<your-anaconda-repo>为您本地存储库的名称、<token>提供的令牌、 <channel>用户频道和PACKAGE所需包的名称。

    注意:也可以使用以下方法安装私有 PyPI 包:

    https://pypi.<your-anaconda-repo>/t/<token>/<channel>
    

撤销令牌

您可以使用 Web UI 或客户端撤销令牌。

要使用 Web UI 撤销令牌,请从最右侧的下拉菜单中选择我的设置,然后从左侧导航中选择访问。

在页面底部,您将看到您生成的所有令牌的列表。单击要撤销的令牌的名称,然后在出现的对话框中单击撤销令牌按钮。

或者要使用客户端撤销令牌,请运行:

anaconda auth -r YOUR-TOKEN-NAME

注意:替换YOUR-TOKEN-NAME为您要撤销的令牌的名称。