配置长期访问凭证(AccessKey)

更新时间:
复制为 MD 格式

AccessKey(AK)是 RAM 用户的长期访问凭证,适用于 CI/CD 流水线、定时任务、无浏览器远程终端等需要长期稳定认证的自动化场景。本文介绍如何在阿里云 CLI 中配置、验证和删除 AccessKey 凭证。

前提条件

重要

AccessKey 是长期有效的凭证,不会自动过期。一旦泄露,攻击者可以持续操作所有授权范围内的云资源,直到在 RAM 控制台手动禁用或删除该 AccessKey。

如果运行环境支持,建议优先使用 OAuth 凭证RAM 角色凭证。各凭证类型的对比请参见配置与管理身份凭证

  • 阿里云 CLI 版本 ≥ 3.3.0。运行 aliyun version 查看当前版本,低于此版本请参见安装/更新 CLI升级。

  • 已获取 RAM 用户的 AccessKey ID 和 AccessKey Secret。建议使用 RAM 子用户的 AK,不要使用主账号 AK(主账号拥有所有资源权限,泄露后影响范围不可控)。获取方式参见创建AccessKey

配置凭证

CLI 提供三种配置 AK 的方式:交互式配置、非交互式配置(适合脚本自动化)和环境变量(适合 CI/CD 流水线),三者效果相同。

交互式配置

  1. 运行以下命令开始配置。将 <ProfileName> 替换为自定义的配置名称(如 AkProfile):

    aliyun configure --profile <ProfileName>
  2. 按提示依次输入AccessKey Id、AccessKey Secret、默认地域及语言等配置信息 :

    Configuring profile 'AkProfile' in 'AK' authenticate mode...
    Access Key Id []: <yourAccessKeyID>
    Access Key Secret []: <yourAccessKeySecret>
    Default Region Id []: cn-shanghai
    Default Output Format [json]: json (Only support json)
    Default Language [zh|en] en: en
    Saving profile[AkProfile] ...Done.
  3. 终端显示 Configure Done 及欢迎信息,表示配置成功。

说明

配置成功后,该配置自动成为当前激活的配置。如需切换到其他配置,运行 aliyun configure switch --profile <ProfileName> 命令。

非交互式配置

Bash

aliyun configure set \
  --profile AkProfile \
  --mode AK \
  --access-key-id <yourAccessKeyID> \
  --access-key-secret <yourAccessKeySecret> \
  --region cn-hangzhou

PowerShell

aliyun configure set `
  --profile AkProfile `
  --mode AK `
  --access-key-id <yourAccessKeyID> `
  --access-key-secret <yourAccessKeySecret> `
  --region cn-hangzhou

完整配置参数

参数名称

说明

必填

示例值

--mode

凭证模式,默认为 AK

--profile

配置名称,默认为 default。建议使用有意义的名称,如 devproject-a

--access-key-id

RAM 用户的 AccessKey ID。

--access-key-secret

RAM 用户的 AccessKey Secret。

--region

默认 Region ID。

验证凭证配置

配置完成后,运行以下命令验证凭证是否生效:

aliyun sts get-caller-identity

输出类似如下,通过ArnUserId字段可以确定当前配置的AccessKey的归属用户:

{
  "AccountId": "173305794806****",
  "Arn": "acs:ram::173305794806****:user/<user-name>",
  "IdentityType": "RAMUser",
  "PrincipalId": "20407046578681****",
  "RequestId": "D012C652-FF76-5101-81B3-45A1DDAC****",
  "UserId": "20407046578681****"
}

通过环境变量配置

CLI 优先使用 Profile 中的配置;若 Profile 已配置但个别字段为空,则自动从环境变量中补全缺失值。

Linux / macOS

export ALIBABA_CLOUD_ACCESS_KEY_ID="LTAI5txxx"
export ALIBABA_CLOUD_ACCESS_KEY_SECRET="yourSecret"

PowerShell

$env:ALIBABA_CLOUD_ACCESS_KEY_ID = "LTAI5txxx"
$env:ALIBABA_CLOUD_ACCESS_KEY_SECRET = "yourSecret"

删除凭证

删除 CLI 本地配置中的 AK 凭证:

aliyun configure delete --profile <ProfileName>
说明

此命令仅删除 ~/.aliyun/config.json 中的对应配置条目,不会禁用或删除 RAM 控制台中的 AccessKey。确认不再使用该 AK 时,需同时在 RAM 控制台手动禁用或删除。

常见问题

环境变量和配置文件同时存在时,CLI 使用哪个?

CLI 优先使用配置文件中的配置;若 Profile 已配置但个别字段为空,则自动从环境变量中补全缺失值。