阿里雲 CLI 通過身份憑證完成認證,才能調用雲端服務 API 操作雲資源。本文介紹如何根據使用情境選擇合適的憑證類型,以及如何配置和管理憑證。
選擇憑證類型
阿里雲 CLI 支援多種憑證類型,請根據使用情境選擇對應類型。
憑證類型 | 適用情境 | 支援非互動式配置 | 詳細配置 |
OAuth(推薦) | 在瀏覽器中以阿里雲帳號、RAM 使用者或 SSO 登入,支援 MFA 和通行密鑰(Passkey)。無需儲存長期存取金鑰(AccessKey),安全性高。 | 否 | |
EcsRamRole(推薦) | 在 ECS 執行個體內運行 CLI 時,通過執行個體綁定的 RAM 角色自動擷取臨時安全憑證,無需配置或儲存長期存取金鑰(AccessKey)。 | 是 | |
RamRoleArn(推薦) | 扮演 RAM 角色並以角色身份操作資源。適合臨時提權或跨帳號訪問情境。例如:以基礎許可權 RAM 使用者扮演具備資源系統管理權限的 RAM 角色,或跨阿里雲帳號訪問資源。使用臨時安全憑證STS Token。 | 是 | |
ChainableRamRoleArn | 鏈式角色扮演(角色鏈),適用於需要跨多個帳號進行資源訪問的情境。 | 是 | |
OIDC | 通過相容 OIDC(OpenID Connect)協議的外部身份供應商頒發的 ID Token 進行身份認證和角色扮演。建議在開啟了 RRSA(RAM Roles for Service Accounts)的 ACK/ACS Pod 中使用。 | 是 | |
CloudSSO | 適合開啟了雲 SSO 和資來源目錄的多帳號企業環境。與 OAuth 類似,通過瀏覽器登入認證,屬於互動式認證方式,支援 MFA。 | 否 | |
External | 調用外部可執行程式動態擷取憑證(AccessKey 或臨時安全性權杖),適用於自訂憑證提供者的情境。 | 是 | |
CredentialsURI | 通過您提供的HTTP URI 地址擷取臨時安全憑證 STS Token,適用於自建憑證分發服務的情境。 | 否 | |
StsToken | 手動提供臨時安全憑證 STS Token,令牌到期後需手動更新。 | 是 | |
BearerToken | 使用 Bearer Token 認證阿里雲 API 服務,適用於CI/CD等自動化情境。 | 是 | |
AK(不推薦) | 使用阿里雲帳號或 RAM 使用者的長期存取金鑰(AccessKey)直接認證。憑證永久有效,安全性相對較低。如確實要使用,建議先參考AccessKey最佳實務。 | 是 |
如果使用雲命令列(Cloud Shell),系統會自動設定臨時憑證。身份為當前登入控制台的RAM使用者或角色,許可權與該身份一致,無需手動設定即可直接執行 CLI 命令。
配置憑證
阿里雲 CLI 支援兩種憑證配置方式:互動式配置、非互動式配置。
互動式配置
互動式配置通過命令列嚮導引導您完成憑證配置。運行命令後,系統會依次提示您輸入各項憑證參數。適合本地開發環境或首次配置。
aliyun configure --mode <AuthenticateMode> --profile <ProfileName>樣本:建立一個名為 EcsProfile 的 EcsRamRole 憑證配置:
aliyun configure --mode EcsRamRole --profile EcsProfile互動過程樣本:
Configuring profile 'EcsProfile' in 'EcsRamRole' authenticate mode...
Ecs Ram Role []: ECSAdmin
Default Region Id []: cn-shanghai
Default Output Format [json]: json (Only support json)
Default Language [zh|en] en: en
Saving profile[EcsProfile] ...Done.非互動式配置
通過命令列參數直接指定各項憑證配置參數資訊,無需互動輸入,適用於自動化情境(如指令碼、CI/CD 流水線)。
樣本:建立一個名為 AkProfile 的 AK 憑證配置:
Bash
aliyun configure set \
--profile AkProfile \
--mode AK \
--access-key-id ************ \
--access-key-secret ************ \
--region "cn-shanghai"PowerShell
aliyun configure set `
--profile AkProfile `
--mode AK `
--access-key-id ************ `
--access-key-secret ************ `
--region "cn-shanghai"各憑證類型支援的配置參數請參見對應憑證類型的詳細配置文檔。以下參數在所有憑證類型中通用:
憑證配置通用參數 | 說明 |
| 配置名稱。未指定時,使用當前啟用配置。 |
| 憑證類型,例如 |
| 預設地區 ID,例如 |
各憑證類型是否支援非互動式配置,見上方選擇憑證類型。
同一種憑證類型可配置多份,配置名稱不同即可。例如,可建立 ak-dev 和 ak-prod 兩份 AK 憑證配置,分別用於開發和生產環境。
驗證憑證配置
憑證配置完成後,運行以下命令驗證憑證是否有效:
aliyun sts get-caller-identity憑證配置正確時,輸出類似如下:
如當前通過認證的身份為RAM使用者:
{ "AccountId": "173305794806****", "Arn": "acs:ram::173305794806****:user/<user-name>", "IdentityType": "RAMUser", "PrincipalId": "20407046578681****", "RequestId": "D012C652-FF76-5101-81B3-45A1DDAC****", "UserId": "20407046578681****" }如當前通過認證的身份為RAM角色:
{ "AccountId": "191317683912****", "Arn": "acs:ram::191317683912****:assumed-role/<role-name>/<role-session-name>", "IdentityType": "AssumedRoleUser", "PrincipalId": "30004467717606****:<role-session-name>", "RequestId": "0FFADC33-EA49-5E2A-977F-0BA820D6****", "RoleId": "30004467717606****" }
驗證通過僅代表身份認證成功。要操作資源,還需為憑證關聯的身份授予相應權限原則。
管理憑證
通過 aliyun configure 子命令可對已有憑證配置進行查看、切換、修改和刪除操作。
查看配置
查看配置列表與當前啟用配置
查看當前機器上所有已配置的憑證及其狀態。可用於確認憑證配置概要資訊(如配置名稱、憑證類型等),以及哪個是當前的啟用配置。
aliyun configure list命令輸出樣本如下,帶 * 標記的為當前啟用的憑證配置。啟用配置即 CLI 執行命令時預設使用的憑證和參數(如地區、語言),未通過 --profile 或環境變數指定其他配置時,所有命令均使用該配置。
Profile | Credential | Valid | Region | Language
--------- | ------------------ | ------- | ---------------- | --------
default | AK:***UyLX | Valid | cn-shanghai | en
OAuthProfile | OAuth:fiA5bnZkyw@CN | Valid | cn-hangzhou | en
EcsProfile * | EcsRamRole:ecs-role-name | Valid | cn-beijing | zh查看指定配置詳情
運行以下命令查看指定憑證配置的詳細資料:
aliyun configure get [--profile <ProfileName>] [<SETTING_NAME>...]SETTING_NAME:指定要查看的設定項名稱,可同時指定多項。未指定時顯示全部憑證配置資訊。若指定的設定項不存在,命令不返回資訊。
樣本一:查看名為 OAuthProfile 的配置詳情:
aliyun configure get --profile OAuthProfile輸出:
{
"name": "OAuthProfile",
"mode": "OAuth",
"access_key_id": "STS.9jYc5erFPDLrwNGWc7Sob2ZRHenhHfz7pw9*************",
"access_key_secret": "3AcNFz37QykuHEwgzWramXGZaCrM1mDHpG1s7v******",
"sts_token": "CAIS5gJ1q6Ft5DqyfSjI2KnsKI/Rn5lx846Zd******",
"region_id": "cn-hangzhou",
"output_format": "json",
"language": "zh",
"sts_expiration": 1776751437,
"oauth_access_token": "eyJhbGciOiJSUzI1NiIsI*******",
"oauth_refresh_token": "ALGuHPAmSWxR5ynSsoRXhWpUtsxXHcLpGLnZqVvVXZDkjcbMsMasoshv1MnyRhkTq******",
"oauth_access_token_expire": 1776751436,
"oauth_site_type": "CN"
}樣本二:僅查看 OAuthProfile 的配置名稱、憑證類型及預設語言:
aliyun configure get --profile OAuthProfile profile mode language輸出:
profile=OAuthProfile
mode=OAuth
language=en憑證配置儲存位置
如需手動查看或備份憑證設定檔,可在以下路徑找到:
作業系統 | 儲存路徑 |
Linux / macOS |
|
Windows |
|
切換配置
永久切換啟用配置
將指定配置切換為當前啟用的配置。阿里雲 CLI 自 v3.0.214 版本起支援 aliyun configure switch 命令。切換成功後,後續所有未顯式指定憑證(使用--profile參數)的請求均自動使用該配置。
aliyun configure switch --profile <ProfileName>切換前,可使用 aliyun configure list 確認目標配置的名稱。
樣本:切換到名為 prod 的配置:
aliyun configure switch --profile prod切換完成後,運行 aliyun configure list 確認目標配置已標記 *。
單次使用指定配置
在單條命令中通過 --profile 參數臨時指定配置,不影響當前啟用的配置。
樣本:使用 prod 配置查詢 ECS 地區列表:
aliyun ecs describe-regions --profile prod修改配置
使用 aliyun configure set 修改已有配置的參數值。只需指定要修改的參數,未指定的參數保持不變。
aliyun configure set --profile <ProfileName> --<ParameterName> <NewValue>常用參數:
--region:預設地區--language:輸出語言(zh / en)
詳細參數請參見各憑證類型文檔。
樣本:修改 default 配置的預設地區:
aliyun configure set --profile default --region cn-shanghai執行修改後,該配置會自動成為當前啟用的配置。
刪除配置
運行以下命令刪除指定配置:
aliyun configure delete --profile <ProfileName>樣本:刪除名為 dev 的配置:
aliyun configure delete --profile dev刪除操作不可恢複。刪除當前啟用配置後,配置列表中的第一個配置自動成為新的當前啟用配置。
刪除完成後,運行 aliyun configure list 命令確認該配置已從列表中移除。
常見問題
互動式配置時輸錯了怎麼辦?
使用 aliyun configure set 修改對應欄位即可,無需重新完整配置。樣本:
aliyun configure set --profile <ProfileName> --<ParameterName> <CorrectValue>執行 CLI 命令時未使用當前啟用配置
CLI 按以下優先順序(從高到低)決定實際使用的配置,高優先順序會覆蓋低優先順序:
--profile命令列參數:僅對當前命令生效,優先順序最高。環境變數
ALIBABA_CLOUD_PROFILE:對當前終端會話中的所有命令生效。當前啟用的預設配置:
aliyun configure list命令返回中帶有*的配置,持久生效。
如果命令結果與預期不符,請檢查是否設定了 --profile 參數或 ALIBABA_CLOUD_PROFILE 環境變數,它們會覆蓋當前啟用配置。運行 echo $ALIBABA_CLOUD_PROFILE 命令可查看環境變數是否已設定。
執行CLI命令時遇到報錯load current configuration failed unknown profile default
完整報錯資訊:
ERROR: load current configuration failed unknown profile default, run configure to check原因:
刪除了當前所有的憑證配置,導致阿里雲CLI無法正常工作。
解決方案:
手動刪除 config.json 檔案,並執行 aliyun configure 命令重新設定憑證,設定檔所在位置可參見憑證配置儲存位置。例如,在 Linux / macOS 上可執行以下命令刪除:
rm ~/.aliyun/config.json