为 Snowflake Notebooks 设置外部访问¶
使用笔记本时,您可能需要调用外部服务,这通常需要 API 密钥等敏感凭据。为保护敏感信息,您可以使用在 Snowflake 中管理的密钥,而不是将凭据硬编码到笔记本中。
外部访问集成 (EAIs) 使用网络规则配置,可以选择使用 Snowflake 密钥进行身份验证。
默认情况下,Snowflake 限制来自外部端点的网络流量。要访问外部端点,请执行以下步骤:
创建网络规则。
创建使用该规则的 外部网络访问集成。
创建用于身份验证的密钥(如需要)。通用字符串密钥还需要 EAI。
将密钥与 EAI 相关联。
将 EAI 和密钥与笔记本相关联。
备注
EAIs 和网络规则必须由组织管理员创建。有关所需权限,请参阅 访问控制要求。
使用外部访问权限和密钥配置笔记本¶
此端到端示例展示了如何配置笔记本以使用通用字符串密钥访问 OpenAI API。
备注
密钥必须与外部访问集成 (EAI) 和笔记本相关联。如果密钥仅与两者之一相关联,则无法通过笔记本代码访问该密钥。
在笔记本内访问密钥¶
将密钥与笔记本关联后,要在笔记本代码内访问其值,请使用
st.secrets对象:
其他 EAI 示例¶
这些示例展示了如何为常见的数据科学和机器学习网站设置外部访问:
适用于 PyPI 的 EAI¶
适用于 Hugging Face 的 EAI¶
授予使用外部访问集成所需的 USAGE 权限¶
创建 EAIs 之后,将集成的 USAGE 权限授予将要使用它们的角色:
用于创建笔记本的角色必须具备 EAI 的 USAGE 权限。授予 PUBLIC 角色的 USAGE 权限将不起作用。
在 Snowsight 中启用外部访问集成¶
创建和配置 EAIs 后,重新启动笔记本会话,以便在 External Access 窗格中看到您创建的访问集成。
使用 Snowsight 启用集成的步骤如下:
其他身份验证示例¶
OAuth 访问令牌¶
密钥类型:GENERIC_STRING¶
使用 GENERIC_STRING 密钥存储单个值,例如 API 密钥或令牌。
创建密钥:
对于 GENERIC_STRING 密钥,请通过字典或属性样式访问它们:
密钥类型:PASSWORD(示例:GitHub 基本身份验证)¶
使用 PASSWORD 密钥来存储用户名和密码对。这些通常是外部 APIs 基本身份验证所必需的。
在此示例中,笔记本使用 PASSWORD 密钥和外部访问集成来访问 GitHub REST API。
创建密钥:
将密钥用作 EAI 的一部分:
在代码中访问密钥:
