控制对包的访问#

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

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

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

  • Use a group 在组织账户内部——只有登录的组成员才能访问该包。这是控制对私有包访问的最佳方式,因为它允许您为每个包、笔记本或环境设置单独的权限。

  • 使用令牌控制系统—只有拥有适当令牌的用户才能访问私有包或频道。

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

使包私有#

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

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

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

  4. 点击设置标签,然后在侧边栏中点击管理标签。

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

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

    替换为您的本地仓库名称,USERNAME 替换为您的用户名,PACKAGE 替换为包的名称。

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

注意:您可以使用相同的步骤和URL来使Jupyter Notebooks和conda环境变为私有。

使用组来允许访问私有包#

  1. 创建一个组织

  2. 上传转移 包到组织。

  3. 在组织内,创建一个组,包含适当的用户、权限和包。

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

您可以使用token系统来控制对私有包和渠道的访问。所有仓库URL都可以加上/t/前缀以允许访问。

生成令牌时,令牌授予的访问程度是完全可配置的。您可以生成多个令牌,以控制哪些用户组在拥有适当令牌的情况下可以访问某些功能。

令牌提供对指定频道中所有包的访问权限。每个包、笔记本或环境的单独权限可能更适合通过组织和群组来处理。

您可以使用Web UI或Anaconda客户端生成令牌。

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

在Web UI中生成令牌#

  1. 导航到:

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

    注意:将 替换为您的本地仓库名称,并将 替换为所需频道的名称。

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

  3. 选择适当的复选框,以确定您希望允许此令牌用户访问的类型。

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

  4. 点击创建按钮。

使用客户端生成令牌#

  1. 在客户端终端窗口或Anaconda提示符中,运行:

    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>
    

    注意:将替换为您的令牌字符串,````替换为所需的频道名称,并将替换为标签名称。

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

使用令牌#

令牌可用于:

  • 添加一个通道以从中安装私有包:

    conda config --add channels https://conda.<your-anaconda-repo>/t/<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>
    

    注意:将 替换为您的本地仓库名称, 替换为提供的令牌, 替换为用户频道, 替换为标签名称, 替换为要安装的包名称。

  • 安装一个私有的PyPI包:

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

    注意:将 替换为您的本地仓库名称, 替换为提供的令牌, 替换为用户频道,PACKAGE 替换为所需包的名称。

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

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

撤销令牌#

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

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

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

或者使用Client撤销令牌,运行:

anaconda auth -r YOUR-TOKEN-NAME

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