阿里云 CLI 配置临时安全凭证(StsToken)
已持有 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"