卓普云

使用用户专属访问密钥增强 DigitalOcean Functions 云函数的安全性

DigitalOcean Functions 推出用户专属访问密钥,替代共享凭证,提升安全性并简化团队权限管理。

2026年3月30日
使用用户专属访问密钥增强 DigitalOcean Functions 云函数的安全性

随着团队规模扩大和无服务器工作负载的增长,安全管理变得与代码管理同等重要。DigitalOcean 的目标是在您的每个发展阶段都提供支持。我们持续迭代安全架构,正是实现这一目标的方式之一。

过去,DigitalOcean Functions(云函数) 在同一个 namespace(命名空间)内采用共享凭证模型,凭证在Functions的「设置」标签页中进行配置。

Access Keys REST API.png

图:同一命名空间的所有用户共享相同的凭证

这种模式虽然上手简单,但对不断壮大的团队来说存在挑战:当团队成员离职或转岗时,共享凭证仍然有效。为了确保命名空间安全,管理员必须手动撤销并重新生成密钥,这会干扰其他所有使用该共享密钥的开发者和生产工作负载。

今天,DigitalOcean 宣布了一个重大升级:用户专属命名空间访问密钥(user-specific namespace access keys)。

这一更新将访问控制从命名空间级别下沉到用户身份级别,确保权限授予给具体用户,而不再依赖共享密钥。

用户专属访问密钥如何增强安全性

向用户专属密钥的转变解决了团队的几个关键场景:

  • 自动化访问管理:当团队成员从 DigitalOcean 团队中移除时,平台会自动撤销其专属访问密钥。无需手动轮换密钥,也不会对剩余团队成员造成任何干扰。

  • 每个命名空间支持多个密钥:用户可以为同一命名空间创建多个访问密钥,便于手动轮换和管理不同环境的密钥。

  • 简化责任追溯:由于操作现在与独特的用户专属密钥关联,您可以更好地了解资源管理情况并进行审计。

  • 支持过期时间:为了进一步缩小攻击面,访问密钥可以「选择性地」设置过期时间(TTL)。过期后,该密钥将无法通过任何操作的认证。

教程:通过 API 管理 Functions 访问密钥

DigitalOcean Functions API 已更新,支持以编程方式管理访问密钥。您现在可以直接通过 API 创建、列出、更新和删除访问密钥,从而实现无服务器命名空间的更好自动化和安全管理。

以下是与新端点交互的指南。本教程使用 Bash 脚本完成。

前置条件

  • 需要您的 Functions 命名空间 ID(在 API 路径中显示为 fn-xxxxxxx)。
  • 必须拥有有效的 DigitalOcean API Token(令牌) ($DIGITALOCEAN_TOKEN),并具有 function:admin 权限。

1. 创建命名空间访问密钥

要生成新的访问密钥,向密钥端点发送 POST 请求。

重要提示:访问密钥的密钥部分仅在创建后立即返回一次。您必须复制并安全存储,之后将无法再次获取。

请求:

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $DIGITALOCEAN_TOKEN" \
  -d '{"name": "my-function-access-key", "expiration": "12h"}' \
  "https://api.digitalocean.com/v2/functions/namespaces/fn-xxxxxxx/keys"

响应要点:

  • 返回完整的密钥详情,包括 secret
  • 包含 created_atexpires_at 等元数据。

2. 列出访问密钥

要查看特定命名空间的所有现有密钥,使用 GET 端点。这有助于审计当前的访问凭证。

请求:

curl -X GET \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $DIGITALOCEAN_TOKEN" \
  "https://api.digitalocean.com/v2/functions/namespaces/fn-xxxxxxx/keys"

响应要点:

  • 返回 access_keys 对象列表。
  • 包含找到的密钥总数 count

3. 更新访问密钥

如果需要重命名密钥(例如,为了轮换用途但暂时不删除),可以向特定密钥 ID 发送 PUT 请求。

请求:

curl -X PUT \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $DIGITALOCEAN_TOKEN" \
  -d '{"name": "updated-key-name"}' \
  "https://api.digitalocean.com/v2/functions/namespaces/fn-xxxxxxx/keys/dof_v1_yyyyyyyy"

响应要点:

  • 返回更新后的访问密钥对象,包含新的 name
  • 不会返回密钥。

4. 删除访问密钥

要撤销访问权限,可以使用 DELETE 方法永久删除密钥。

请求:

curl -X DELETE \
  -H "Authorization: Bearer $DIGITALOCEAN_TOKEN" \
  "https://api.digitalocean.com/v2/functions/namespaces/fn-xxxxxxx/keys/dof_v1_yyyyyyyy"

响应要点:

  • 成功删除将返回 204 No Content 状态码。

教程:通过 doctl 管理访问密钥

您可以通过云控制面板或命令行管理这些访问密钥。下面,我们将介绍使用 doctl(DigitalOcean command line interfece) 的workflow。

前置条件

要跟随本教程并迁移到新密钥系统,您需要:

  • 已安装 doctl:确保已安装并配置最新版本的 DigitalOcean CLI (doctl)
  • 权限:必须具有 function:admin 权限才能创建或管理命名空间访问密钥。

1. 创建新访问密钥

您可以为每个命名空间创建多个访问密钥,将本地开发、CI/CD 流水线和生产应用的凭证分开。

要在当前连接的命名空间中创建密钥,使用以下命令:

doctl serverless key create --name my-dev-key --expiration 7d

输出将显示您的新密钥。

ID                                      Name           Secret
dof_v1_a1b2c3d4e5f67890                 my-dev-key     /1x2y3z4a5b6c7d8e9f0g1h2i3j4k5l6m

注意:新访问密钥遵循特定格式,前缀为 dof_v1_

2. 连接您的唯一身份

生成密钥后,需要使用这个新身份将 doctl 连接到您的命名空间。这取代了无需显式密钥即可连接的已弃用方法。

运行以下命令将 CLI 链接到您的命名空间:

doctl serverless connect <your-namespace> --access-key "<access-key-id>:<secret-key>"

连接后,您的个人凭证将安全存储在本地配置中。所有后续命令(如 deployinvokelist)将自动使用您的唯一密钥进行认证。

3. 删除访问密钥

如果密钥不再需要(例如,需要轮换 CI/CD 令牌),可以将其删除。这将撤销其访问权限,而不会影响您的其他密钥或团队成员。

doctl serverless key delete <access-key-id>

注意:此操作是永久性的,将立即阻止使用该凭证进行认证。

用户专属访问密钥的迁移和过渡时间表

我们目前处于双支持阶段。这意味着:

  • 宽限期:在有限时间内,旧版共享凭证和新版用户专属密钥将并行工作。您可以在DigitalOcean英文文档中找到有关迁移截止日期的更多信息。

  • 需要采取行动:为确保持续访问,每个用户最终必须迁移到自己的个人访问密钥。如果通过 doctl 交互,需要重新运行 doctl serverless connect 命令。此外,如果您在系统中的任何地方硬编码了旧密钥/令牌,需要将它们替换为您或团队中任何其他用户账户下创建的访问密钥。

  • 无需修改代码:这是平台级别的认证更新。您无需修改实际的函数代码。

我们建议管理员/所有者立即开始为团队中的所有用户跟踪此过渡,以防止旧方法停用后出现访问问题。

DigitalOcean Functions 更安全的未来

向用户专属访问密钥的转变是 DigitalOcean Functions 安全性和可管理性的重要进步。通过将访问权限与个人身份关联,我们实现了自动访问撤销、更好的可审计性,以及更安全的无服务器应用环境。

首页/产品更新/使用用户专属访问密钥增强 DigitalOcean Functions 云函数的安全性

相关文章

OpenClaw 多智能体部署:弹性扩展、零运维
产品更新

OpenClaw 多智能体部署:弹性扩展、零运维

当 AI 助手开始“常驻运行”,真正的难题才刚刚出现——你准备好了吗?

2026年3月27日
高性能、低成本推理新标准:NVIDIA Dynamo 1.0 现已上线 DigitalOcean 推理云平台
精选
产品更新

高性能、低成本推理新标准:NVIDIA Dynamo 1.0 现已上线 DigitalOcean 推理云平台

NVIDIA Dynamo 1.0 现已面向 DigitalOcean 客户开放,提供 7 倍推理性能提升,大幅降低企业级 AI 推理成本。

2026年3月23日
DigitalOcean Gradient AI 推理云平台原生集成 LlamaIndex
产品更新

DigitalOcean Gradient AI 推理云平台原生集成 LlamaIndex

DigitalOcean Gradient AI平台原生集成LlamaIndex,通过两个PyPI包简化RAG应用开发,让开发者快速构建生产级AI应用。

2026年3月4日