已持有 STS 臨時憑證時,可通過 StsToken 方式將憑證配置到阿里雲 CLI。StsToken 模式下,CLI直接使用傳入的憑證,不自動重新整理,憑證到期後需重新擷取並覆蓋配置。本文介紹 StsToken 憑證的配置流程。
前提條件
阿里雲 CLI 版本 ≥
3.3.0。運行aliyun version查看目前的版本,版本低於3.3.0時,請參考安裝/更新 CLI升級。通過調用AssumeRole介面或其他方式擷取到有效臨時安全憑證STS Token,包括:
AccessKey ID(通常以
STS.開頭)AccessKey Secret
Security Token
瞭解憑證的到期時間。臨時憑證通常在 15 分鐘至 1 小時內到期,取決於擷取STS Token時設定的有效期間(
DurationSeconds)。
配置憑證
選擇互動式或非互動式方式,將擷取的臨時憑證配置到阿里雲 CLI。
互動式配置
運行以下命令開始配置。將
<ProfileName>替換為自訂的配置名稱(如StsProfile):aliyun configure --mode StsToken --profile <ProfileName>按提示依次輸入憑證資訊:
Configuring profile 'StsProfile' in 'StsToken' authenticate mode... Access Key Id []: STS.NUr5xxxxx Access Key Secret []: 7Bshxxxxx Sts Token []: CAISxxxxxxxxxxxxxxxx... Default Region Id []: cn-hangzhou Default Output Format [json]: json (Only support json) Default Language [zh|en] zh: zh Saving profile[StsProfile] ...Done.終端顯示
Configure Done及歡迎資訊,表示配置成功。
非互動式配置
命令樣本:
Bash
aliyun configure set \
--profile StsProfile \
--mode StsToken \
--access-key-id STS.NUr5xxxxx \
--access-key-secret 7Bshxxxxx \
--sts-token CAISxxxxxxxxxxxxxxxx... \
--region cn-shanghaiPowerShell
aliyun configure set `
--profile StsProfile `
--mode StsToken `
--access-key-id STS.NUr5xxxxx `
--access-key-secret 7Bshxxxxx `
--sts-token CAISxxxxxxxxxxxxxxxx... `
--region cn-shanghai配置成功後,該配置自動成為當前啟用的配置。如需切換到其他配置,運行 aliyun configure switch --profile <ProfileName> 命令。
驗證憑證配置
配置完成後,運行以下命令驗證憑證是否生效:
aliyun sts get-caller-identity輸出類似如下,在Arn欄位可以查看與當前STS Token所關聯的RAM角色名稱與角色會話名:
{
"AccountId": "191317683912****",
"Arn": "acs:sts::191317683912****:assumed-role/<RoleName>/<RoleSessionName>",
"IdentityType": "AssumedRoleUser",
"PrincipalId": "30004467717606****:<RoleSessionName>",
"RequestId": "0FFADC33-EA49-5E2A-977F-0BA820D6****",
"RoleId": "30004467717606****"
}憑證的重新整理
STS 臨時憑證不會自動重新整理。憑證到期後,執行任意 CLI 命令都會返回如下錯誤:
Error: request execution failed: request execution failed: SDKError:
StatusCode: 400
Code: InvalidSecurityToken.Expired
Message: code: 400, Specified SecurityToken is expired. request id: 9C518A52-BE37-570A-8E1A-0DD559BC****
Data: {"Code":"InvalidSecurityToken.Expired", ...}重新擷取新的臨時憑證後,需再次執行憑證配置操作。如果需要 CLI 自動管理憑證有效期間,建議改用 RamRoleArn或 EcsRamRole憑證類型。
刪除憑證
刪除 CLI 本地配置中的 StsToken 憑證:
aliyun configure delete --profile <ProfileName>常見問題
STS Token 到期後更新是否需要先刪除舊配置?
不需要。直接執行 aliyun configure set 命令覆蓋同名配置集即可,新的憑證值會替換舊值,無需任何確認操作。
是否可以通過環境變數設定 StsToken?
CLI 優先使用 Profile 中的 STS Token 配置;若 Profile 已配置但個別欄位為空白,則自動從環境變數中補全缺失值。
export ALIBABA_CLOUD_ACCESS_KEY_ID="STS.xxx"
export ALIBABA_CLOUD_ACCESS_KEY_SECRET="tempSecret"
export ALIBABA_CLOUD_SECURITY_TOKEN="token-string"