代理和安全实践#

在公司代理后面使用 Anaconda#

在公司代理后面使用 Anaconda 的存储库时,您可能会遇到以下 HTTP 和 SSL 错误,因为您的 IT 部门管理着自定义安全配置文件。

CondaHTTPError: HTTP 000 CONNECTION FAILED for url https://repo.anaconda.com/pkgs/main/win-64/current_repodata.jsonElapsed:
An HTTP error occurred when trying to retrieve this URL.
HTTP errors are often intermittent, and a simple retry will get you on your way.
If your current network has https://anaconda.net.cn blocked, please file
a support request with your network engineering team.
ConnectTimeout(MaxRetryError("HTTPSConnectionPool(host='repo.anaconda.com', port=443):
Max retries exceeded with url: /pkgs/main/win-64/current_repodata.json
(Caused by ConnectTimeoutError(<urllib3.connection.VerifiedHTTPSConnection object
at 0x000001B79FFE3278>, 'Connection to repo.anaconda.com timed out.
(connect timeout=9.15)'))"))

有三种可能的解决方法。在尝试其他方法之前,请先更新 .condarc 文件。

更新 .condarc 文件#

Anaconda 建议更新您的 .condarc 文件以包含 proxy_servers 键。这是首选方法,因为它只会影响 conda 而不是系统环境变量。

阅读有关 .condarc 文件和使用代理 的更多信息。

例如

proxy_servers:
    http: http://username:password@corp.com:8080
    https: https://username:password@corp.com:8080

您可以通过运行 conda info --all 来查看您的代理是否已设置。

环境变量#

您还可以通过更新系统环境变量来解决此错误。这会影响整个系统的所有 CLI 软件。

要更改 Windows 上的环境变量

  1. 在“开始”菜单中,搜索“env”。

  2. 选择“编辑您的帐户的环境变量”

  3. 选择“环境变量...”

  4. 按下“新建...”

  5. 添加两个变量 http_proxyhttps_proxy,两者都具有相同的值:http://proxy-XX:XXX

要更改 macOS 上的环境变量

  1. 通过在终端中运行 printenv 来检查当前的环境变量设置。

  2. 要检查特定环境变量,请使用 echo $variable_name

  3. 通过运行 export variable_name=variable_value 来临时更改环境变量。您可以通过运行 conda info --all 来查看它是否在那里。

要永久更改 macOS 上的环境变量,请查看此 指南

要更改 Linux 上的环境变量

  1. 运行 export variable_name=variable_value

  2. 要从 shell 输出环境变量的值,请运行 echo $variable_name

阅读有关 取消设置、列出和持久化环境变量 的更多信息。

Netrc 身份验证#

.netrc 文件是实现相同目标的另一种方法,即设置 *_PROXY 环境变量或仅在 .condarc 文件中为 conda 配置内容。这种方法的风险在于,更改此处的环境变量会影响整个系统的系统设置。

阅读有关 .netrc 文件 的更多信息。

安全最佳实践#

Anaconda 维护以下安全和来源/监管链实践

  • 负责构建和维护 Anaconda Distribution 的工程师根据他们在数据科学领域的相关性来管理其中包含的包。这些开源包经过验证,以确保它们被广泛采用并得到社区支持,这使得任何安全漏洞都可以在透明的方式下快速而彻底地解决。

  • 源代码和构建的工件以严格的控制链进行维护,并在 Anaconda 的独立安全网络中进行构建、扫描和哈希处理。只有少数开发人员和 IT 团队成员可以访问此网络和相关的服务器。

  • Anaconda Distribution 的所有版本以及在 https://repo.anaconda.com/ 上提供的全部包,都发布了 SHA256 校验和。Anaconda 建议您 验证您的安装

  • 质量保证团队对 Anaconda 和 Miniconda 的每个版本进行全面测试,包括所有安装程序和包。这包括对所有受支持的操作系统(Windows、macOS 和 Linux)使用多种商业反恶意软件产品以及定制的内部安全工具。如果出现问题,我们会进行后续处理以进行修复,或在文档中进行说明。

  • Anaconda 维护着一个 IT 领导团队,他们与软件工程师合作,通过各种信息渠道监控所有活跃的安全事件,从而实现快速响应时间,并在必要时通过客户支持直接与客户沟通。

  • 开发人员使用安装了最新安全补丁的受控机器。

  • 特别注重安全的客户可以通过实现 Anaconda 仓库的功能(作为企业级订阅的一部分),仅允许一小部分包进入他们的站点,并阻止其他所有包进入他们的网络。由于封闭包的开源性质,他们可以执行高级代码审查或其他相关活动,以确保他们所需的风险管理和/或合规性水平。