全部產品
Search
文件中心

Function Compute:配置 RAM 使用者權限

更新時間:Aug 18, 2026

企業通常由一個阿里雲帳號統一持有雲資源,再通過 RAM 使用者、RAM 使用者組或 RAM Role 分配系統管理權限。本文根據常見使用情境,介紹如何將雲沙箱許可權限制到指定資源群組、Team 或資源類型。使用者習慣所說的“主帳號”和“子帳號”,在本文中分別稱為“阿里雲帳號”和“RAM 使用者”。

選擇鑒權方式

使用控制台或 OpenAPI

登入控制台管理 Team、API Key 等資源時,使用阿里雲帳號或 RAM 使用者;調用 FCSandbox OpenAPI 時,使用阿里雲 AK 或 STS 臨時憑證。這兩種方式都通過 RAM 權限原則控制可執行檔操作和可訪問的資源。

使用 E2B SDK、CLI 或相容 API

通過 E2B SDK、E2B CLI 或相容 HTTP API 建立和訪問 Sandbox 時,使用雲沙箱 API Key,不需要配置 FCSandbox RAM 許可權。每個 API Key 綁定一個 Team,建議不同專案和環境使用不同 Team 與 API Key,不要讓測試和生產應用共用一個 API Key。建立方法參見建立 API Key。

規劃資源和許可權

多個部門共用一個阿里雲帳號時,建議按部門劃分資源群組,按“專案 × 環境”劃分 Team。例如:

阿里雲帳號
├── 資源群組:部門 A
│   ├── Team:資料分析專案-測試環境
│   ├── Team:資料分析專案-生產環境
│   ├── Team:機器學習專案-測試環境
│   └── Team:機器學習專案-生產環境
└── 資源群組:部門 B

推薦按以下方式分配許可權:

身份

推薦許可權範圍

雲沙箱平台管理員

帳號下全部雲沙箱資源

部門管理員

本部門的資源群組

專案開發人員

指定專案的測試 Team

生產營運人員

指定專案的生產 Team

業務應用

僅持有對應 Team 的雲沙箱 API Key

資源群組適合作為部門的許可權邊界,Team 適合作為專案和環境的許可權邊界。測試和生產環境應使用不同 Team,並通過 Team 級 RAM 許可權避免開發人員誤操作生產資源。Team 及其資源關係參見建立 Team。

配置 RAM 許可權

  1. 使用阿里雲帳號或具備 RAM 系統管理權限的 RAM 使用者登入 RAM 控制台。

  2. 建立自訂權限原則,並選擇指令碼編輯。具體操作參見建立 RAM 自訂權限原則。

  3. 根據下面的情境修改策略中的資源群組 ID 和 Team ID;策略中使用 Resource ARN 時,同時替換地區和帳號 ID。

  4. 將策略授權給目標 RAM 使用者、RAM 使用者組或 RAM Role。具體操作參見系統管理權限策略授權。

  5. 使用目標 RAM 身分識別驗證授權結果,確認所需操作可以執行,非授權範圍仍被拒絕。

管理帳號下全部雲沙箱資源

適用於統一管理所有 Team 和資源的平台管理員。以下策略授予帳號下全部地區的 FCSandbox 許可權,不包含Function Compute或其他雲端服務許可權。如需限制到指定地區,將 Resource 改為 acs:fcsandbox:<region>:<account-id>:*:

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "fcsandbox:*",
      "Resource": "*"
    }
  ]
}

管理指定資源群組

適用於管理一個部門內所有專案的測試和生產 Team,但不能訪問其他部門的管理員。以下樣本將許可權限制到該部門的資源群組:

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "fcsandbox:*",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "acs:ResourceGroupId": "<department-resource-group-id>"
        }
      }
    }
  ]
}

RAM 使用者登入控制台後,需要切換到已授權的資源群組。調用列表介面時,也應傳入對應的 resourceGroupID。

管理指定 Team

適用於專案開發人員或生產營運人員。以下策略允許管理指定 Team 及其子資源,但不能建立其他 Team:

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "fcsandbox:*",
      "Resource": [
        "acs:fcsandbox:<region>:<account-id>:teams/<team-id>",
        "acs:fcsandbox:<region>:<account-id>:teams/<team-id>/*"
      ]
    }
  ]
}

Team 本身和 Team 子資源使用不同的 ARN,因此需要同時配置兩條 Resource。該策略不包含帳號級 Team 列表許可權。若使用者需要通過控制台選擇 Team,可以增加資源群組範圍的 fcsandbox:ListTeams 許可權,但該使用者將能看到同一資源群組內的 Team 列表。需要嚴格限制 Team 可見範圍時,建議為該專案使用獨立資源群組。

驗證許可權

完成配置後,分別驗證允許和拒絕的操作:

身份

應允許

應拒絕

平台管理員

管理帳號下全部 Team 和資源

其他帳號的資源

部門管理員

管理本部門資源群組內的 Team 和資源

其他部門的資源群組

專案開發人員

管理指定專案的測試 Team

其他專案及生產 Team

生產營運人員

管理指定專案的生產 Team

測試 Team 和其他生產 Team

業務應用

使用 API Key 建立和訪問 Sandbox

通過 OpenAPI 管理 Team、API Key 或 Volume

常見誤區

  • 所有專案共用一個 Team:專案成員難以隔離 API Key、Template、Sandbox 和 Volume。建議每個專案和環境使用獨立 Team。

  • 向開發人員授予整個部門資源群組許可權:部門資源群組同時包含測試和生產 Team,按資源群組授權會使開發人員獲得生產資源許可權。應將開發人員的許可權限制到指定測試 Team。

  • 使用 AdministratorAccess 簡化授權:該策略包含超出雲沙箱範圍的許可權。只管理雲沙箱時,應使用 fcsandbox 自訂策略。

  • 混淆 RAM 許可權和雲沙箱 API Key:RAM 許可權用於控制台和 OpenAPI;API Key 用於 E2B SDK、CLI 和相容 HTTP API。

  • 只授權 Team 或只授權 Team 子資源:teams/<team-id> 不包含 teams/<team-id>/*,管理整個 Team 時需要同時配置。

  • 忽略列表許可權範圍:列表介面可能使用集合 ARN。增加集合許可權前,應確認使用者是否可以看到該範圍內的全部資源。

權限原則參考

Action

權限原則中的 Action 用於限定 RAM 身份可以調用的雲沙箱 OpenAPI,格式為:

fcsandbox:<action>

例如,CreateTeam 對應 fcsandbox:CreateTeam,CreateVolume 對應 fcsandbox:CreateVolume。配置策略前,請在雲沙箱 OpenAPI 文檔中找到業務需要調用的介面,並根據介面的授權資訊配置 Action。

Resource ARN

ARN 格式

acs:fcsandbox:<region>:<account-id>:<resource-path>

預留位置

說明

<region>

雲沙箱資源所在地區,例如 cn-beijing

<account-id>

資源所屬阿里雲帳號 ID

<team-id>

Team ID

<template-id>

Template ID

<volume-id>

Volume ID

常用 ARN

Resource 運算式

匹配範圍

*

帳號下全部地區的雲沙箱資源

acs:fcsandbox:<region>:<account-id>:*

指定帳號和地區下的全部雲沙箱資源

acs:fcsandbox:*:<account-id>:*

指定帳號在全部地區的雲沙箱資源

acs:fcsandbox:<region>:<account-id>:teams/*

帳號下的 Team,不包含其子資源

acs:fcsandbox:<region>:<account-id>:teams/<team-id>

指定 Team,不包含其子資源

acs:fcsandbox:<region>:<account-id>:teams/<team-id>/*

指定 Team 的全部子資源,不包含 Team 本身

acs:fcsandbox:<region>:<account-id>:teams/*/templates/*

所有 Team 下的 Template

acs:fcsandbox:<region>:<account-id>:teams/*/templates/*/*

所有 Team 下的 Sandbox

acs:fcsandbox:<region>:<account-id>:teams/<team-id>/templates/*

指定 Team 下的 Template

acs:fcsandbox:<region>:<account-id>:teams/<team-id>/templates/*/*

指定 Team 下的 Sandbox

acs:fcsandbox:<region>:<account-id>:teams/<team-id>/templates/<template-id>

指定 Template,不包含其子資源

acs:fcsandbox:<region>:<account-id>:teams/<team-id>/templates/<template-id>/*

指定 Template 建立的 Sandbox

acs:fcsandbox:<region>:<account-id>:teams/*/apikeys/*

所有 Team 下的 API Key

acs:fcsandbox:<region>:<account-id>:teams/<team-id>/apikeys/*

指定 Team 下的 API Key

acs:fcsandbox:<region>:<account-id>:teams/*/volumes/*

所有 Team 下的 Volume

acs:fcsandbox:<region>:<account-id>:teams/<team-id>/volumes/*

指定 Team 下的全部 Volume

acs:fcsandbox:<region>:<account-id>:teams/<team-id>/volumes/<volume-id>

指定 Team 下的指定 Volume

acs:fcsandbox:<region>:<account-id>:teams/*/quotas/*

所有 Team 的配額

acs:fcsandbox:<region>:<account-id>:teams/<team-id>/quotas/*

指定 Team 的配額

Sandbox 沒有包含 Sandbox ID 的獨立 Resource ARN。Template 使用 templates/<template-id>,基於該 Template 建立的 Sandbox 使用 templates/<template-id>/*。Resource 決定允許訪問的 Template 或 Sandbox 範圍,Action 決定允許執行 Template 或 Sandbox 的哪些操作。

API Key 和配額只支援 Team 粒度授權,不能分別限制到某一個 API Key 或某一條配額記錄。列表介面根據請求範圍可能使用帳號級集合或 Team 級集合 ARN;僅具有 Team 級許可權時,調用支援 Team ID 的列表介面需要顯式傳入 Team ID。