确保 Cloud Functions 函数的安全

本页面简要介绍使用 Cloud Functions 函数资源控制互动的方式。

访问权限控制机制

您可以通过两种方法控制 Cloud Functions 函数的访问权限:

使用身份保护访问权限

控制 Cloud Functions 函数访问权限的一种方法是:

  • 评估实体呈现的凭据,确保其名符其实 (Authentication)。
  • 允许该实体根据身份获得的权限 (Authorization) 来访问资源。

Cloud Functions 函数支持两种类型的身份验证和授权:身份和访问权限管理 (IAM) 和 OAuth 2.0

使用“身份和访问权限管理”

IAM 是 Cloud Functions 中最常用的访问权限控制类型。它使用两种类型的身份:

  • 服务帐号:此类特殊帐号充当非个人(例如函数、应用或虚拟机)的身份。它们为您提供了一种方式对这些人员进行身份验证,并授予他们执行某些操作(例如调用 API)的权限。
  • 用户帐号:这些帐号代表个人 Google 帐号持有人,或 Google 控制的实体(例如 Google 群组)的成员。

在设置过程中,您将向请求身份授予相应的角色。该角色定义身份在资源上下文中具有哪些权限。如需详细了解如何设置此过程,请参阅通过 IAM 授权访问权限

使用 OAuth 2.0

OAuth 2.0 是授权开放标准。它可在无法使用 IAM 或在某些情况下不适合使用 IAM 的情况下使用。如需详细了解如何在这两种方法之间进行选择,请参阅使用和管理服务帐号的最佳做法

使用 Google Cloud Console,您可以为客户端应用创建 OAuth 2.0 客户端 ID(在某些情况下可以创建客户端密钥以充当凭据)。

客户端应用会将此凭据发送到 Google 授权服务器,该服务器提供 access token。此令牌允许您访问资源。权限基于一个名为 scope 的值,而不是 IAM 中的角色。

基于网络的访问权限控制

您还可以通过指定各个函数的网络设置来限制访问权限。这样,您就可以精确地控制函数的网络入站流量和出站流量。

隔离和沙盒化

函数实例在内部使用 gVisor 沙盒化平台彼此隔离。根据设计,某个函数无法访问其他函数的操作环境。