API Key 是存取控制 RAM 為接入雲端服務簽發的服務憑證(OpenAPI 中稱為 ServiceCredential),專用於調用該雲端服務的 OpenAPI。本章介紹 API Key 的概念與全生命週期管理。
在調用特定雲端服務的OpenAPI時,您可以使用 API Key 作為認證憑證。API Key 在建立時綁定單一雲端服務,僅可用於調用該雲端服務的 API,安全風險範圍相比 AccessKey 更可控。
核心特徵
服務涵蓋範圍隔離:每個 API Key 在建立時指定一個雲端服務(ServiceName),僅可調用該雲端服務接入的 API;不能跨服務調用,也不能通過授權擴大服務涵蓋範圍。
許可權疊加最小化:API Key 的最終許可權 = 所屬 RAM 使用者的許可權 ∩ 該雲端服務 Scope。即使 RAM 使用者擁有多服務許可權,API Key 也只能在指定服務涵蓋範圍內生效。
身份限定:僅 RAM 使用者可建立 API Key,阿里雲帳號(主帳號)不支援建立,以減少憑證泄露的影響範圍。
名稱差異:OpenAPI、SDK 中使用
ServiceCredential(服務憑證),控制台為便於理解使用 API Key。兩者指同一資源。
API Key 與 AccessKey 的區別
API Key 與 AccessKey 都是 RAM 使用者的長期身份憑證,但服務涵蓋範圍、簽發方式和適用情境不同。
對比項 | API Key | AccessKey |
服務涵蓋範圍 | 建立時綁定單一雲端服務,僅可調用該服務的 OpenAPI | 無服務涵蓋範圍限制,可調用 RAM 使用者已授權的所有雲端服務 |
許可權模型 | RAM 使用者權限 ∩ 雲端服務 Scope,最小化許可權 | 完全繼承 RAM 使用者的全部已授權許可權 |
支援的身份 | 僅 RAM 使用者可建立,不支援阿里雲帳號(主帳號) | 阿里雲帳號、RAM 使用者均可建立 |
配額 | 每個 RAM 使用者在每個雲端服務下最多 2 個,不可提升 | 每個身份最多 2 個 |
有效期間 | 建立時設定 1–36600 天,或永不到期;到期後自動失效,不可恢複 | 長期有效,無內建到期機制 |
典型用途 | AI 模型調用、第三方平台/開發工具整合、需要按服務隔離的情境 | 通用 OpenAPI/SDK 調用、跨服務編排、CI/CD 自動化 |
生命週期狀態
API Key 在生命週期內可處於以下三種狀態:
已啟用:憑證可用於調用綁定雲端服務的 OpenAPI。建立後預設為該狀態。
已禁用:憑證暫時不可用。可通過啟用恢複為
Active。刪除前必須先進入此狀態。已到期:到達到期時間後系統自動轉入此狀態,憑證永久失效,不可恢複。需重新建立。
配額與有效期間
配額:每個 RAM 使用者在每個雲端服務下最多建立 2 個 API Key(含
Active與Inactive),不可提升。已到期的API Key仍佔用配額,已刪除的 API Key 不佔用配額。有效期間單位:天。
取值範圍:控制台預置 1 / 7 / 30 / 90 天與永不到期,並支援自訂。
OpenAPI 預設:調用
CreateServiceCredential時不傳CredentialAgeDays,預設永不到期。到期不可恢複:到期後憑證狀態變為
Expired且永久失效,無法通過啟用恢複為可用狀態,需刪除並重新建立。
建議根據云服務的實際使用周期為 API Key 設定合理的到期時間,避免長期使用永不到期的憑證。請在到期前完成應用側的憑證輪轉,避免業務中斷。
支援的雲端服務
在 RAM 控制台 使用者詳情 頁 > 憑證管理 標籤頁 > API Keys 區塊中點擊 建立 API Key,雲端服務 下拉中可選項即為帳號當前可用的雲端服務。每個雲端服務支援調用的 API 範圍請參閱相應雲產品文檔。
RAM 使用者如何自主管理
阿里雲帳號或具備相應許可權的 RAM 管理員,可在 RAM 安全設定中通過 AllowUserToManageServiceCredential 控制是否允許 RAM 使用者自主管理自己的 API Key。該開關的兩種狀態及其影響如下:
允許自主管理:RAM 使用者可登入控制台或調用 OpenAPI 自行建立、更新、刪除自己的 API Key,前提是未被管理員通過權限原則明確拒絕(即不存在顯式 Deny 策略)。
不允許自主管理:RAM 使用者無法管理自己的 API Key,須由具備
ram:CreateServiceCredential等許可權的管理員代為建立與維護。
授權方式
在實際授權時,可根據管控強度從以下三種方式中選擇:
授予 RAM 管理員系統策略(集中管控):為帳號管理員授予
AliyunRAMFullAccess,由其代使用者建立與維護 API Key。該策略包含完整的 RAM 系統管理權限,適用於由專人統一管控所有 RAM 使用者憑證的情境。開啟全域自主管理開關(不建議生產環境):在 RAM 安全設定中開啟
AllowUserToManageServiceCredential後,帳號下所有 RAM 使用者均可自主管理自己的 API Key(除非通過顯式 Deny 策略約束)。便於團隊自助使用,但放權範圍最廣,建議僅在受控的測試或沙箱情境使用。下發自訂策略(推薦):保持全域開關關閉,僅向需要自主管理 API Key 的特定 RAM 使用者下發自訂策略,將
Resource限定到使用者本人;必要時再通過ram:ServiceCredentialServiceNameCondition 限定到具體雲端服務。在不放開全帳號自主管理的前提下精確授權所需使用者。
開啟 AllowUserToManageServiceCredential 全域開關後,所有 RAM 使用者均可自主管理自己的 API Key(包括建立、啟用、禁用、刪除等操作),除非管理員為其分配拒絕相關操作的權限原則。生產環境強烈建議關閉該開關,僅通過自訂策略精細授權。
自訂策略樣本
下列樣本策略將 Resource 限定到 RAM 使用者本人,附加給目標 RAM 使用者後,該使用者即可在自身賬戶上執行允許的操作。使用前請將 ACCOUNT_ID 替換為帳號 ID(可在 阿里雲帳號中心查看),將 USER_NAME 替換為目標 RAM 使用者的登入名稱(不含 @ 尾碼部分)。
允許使用者自主建立 API Key
僅允許使用者為自己建立並查看 API Key,不允許修改或刪除。適合最小許可權原則下的輕量授權。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ram:CreateServiceCredential",
"ram:ListServiceCredentials"
],
"Resource": "acs:ram:*:ACCOUNT_ID:user/USER_NAME"
}
]
}允許使用者自主管理 API Key(全生命週期)
允許使用者自行完成建立、查看、改名、啟用、禁用、刪除等全部 API Key 操作,覆蓋完整生命週期。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ram:CreateServiceCredential",
"ram:ListServiceCredentials",
"ram:GetServiceCredential",
"ram:UpdateServiceCredential",
"ram:DeleteServiceCredential"
],
"Resource": "acs:ram:*:ACCOUNT_ID:user/USER_NAME"
}
]
}限定到特定雲端服務
在系統管理權限的基礎上疊加 ram:ServiceCredentialServiceName Condition,僅允許使用者管理某個雲端服務(樣本為 ak.aliyuncs.com)下的 API Key,可用於"按雲端服務劃分憑證管理權"的精細化授權情境。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ram:CreateServiceCredential",
"ram:ListServiceCredentials",
"ram:GetServiceCredential",
"ram:UpdateServiceCredential",
"ram:DeleteServiceCredential"
],
"Resource": "acs:ram:*:ACCOUNT_ID:user/USER_NAME",
"Condition": {
"StringEquals": {
"ram:ServiceCredentialServiceName": "ak.aliyuncs.com"
}
}
}
]
}API Key 資料結構
每個 API Key 由以下核心欄位組成。OpenAPI 返回的欄位名以 ServiceCredential 為命名首碼;控制台中欄位名經過翻譯呈現。
OpenAPI 欄位 | 控制台欄位 | 說明 |
ServiceCredentialId | ID | 系統自動產生,首碼 |
ServiceCredentialName | 名稱 | 方便使用的標識名,便於識別用途。控制台預設填充為 |
ServiceName | 雲端服務 | 綁定的雲端服務標識(如 |
ServiceCredentialSecret | API Key | 憑證密鑰明文,僅在建立成功的彈窗中返回一次。後續 List/Get 介面與控制台均不再返回明文。 |
CreateTime | 建立時間 | UTC 時間,ISO-8601 格式。控制台展示為本地時間。 |
ExpirationTime | 到期時間 | 到期後憑證失效,狀態變為 |
Status | 狀態 | 憑證狀態,取值 |
UserPrincipalName | 所屬使用者 | RAM 使用者登入名稱(UPN,形如 |
安全建議
為 API Key 設定到期時間:短期測試避免設定永不到期。其他情況下建議設定有效期間,建議根據云服務的使用周期設定 30 天或 90 天,並在到期前輪轉。
建立後務必立即複製或下載 CSV 儲存 API Key 明文,關閉彈窗後將無法再次擷取;遺失只能刪除後重新建立。
將 API Key 視為高敏感憑證,禁止以明文形式提交到代碼倉庫、設定檔或日誌,建議接入憑證託管或 KMS 加密儲存。