快速入门:为程序或服务创建AccessKey并使用

本快速入门教程为您介绍如何在RAM中创建访问密钥AccessKey(AK),查看并获取访问AccessKey信息,并以阿里云CLI为例为您演示如何在程序或服务中使用AccessKey来访问阿里云资源。

重要

根据阿里云的最佳实践,程序或服务应尽可能避免直接使用AccessKey来访问阿里云资源。具体请参见:程序身份最佳实践

什么是AccessKey

访问密钥(AccessKey)是一个由 AccessKey ID 和 AccessKey Secret 组成的密钥对。AccessKey主要用于应用程序或服务调用阿里云API时向RAM验证身份。

AccessKey与一个具体的 RAM 用户关联,属于长期访问凭证。因其长期有效性,一旦泄露将带来极高的安全风险。

配置流程

  1. 创建AccessKey:为指定的RAM用户生成AccessKey。

  2. 使用AccessKey调用API:配置阿里云CLI,并使用AccessKey直接或间接调用API。

  3. 清理资源:清理本地凭证配置,禁用并删除AccessKey,

准备工作

  • 已创建 RAM 用户。如果未创建,请参考快速入门:创建RAM用户并授权进行创建。请勿使用主账号来进行创建AccessKey的操作

  • 具备操作权限。创建并查看AccessKey需要相应的RAM权限。建议为操作用户授予RAM管理员(AliyunRAMFullAccess)系统策略,然后在完成本教程后移除权限。

  • 安装阿里云CLI,具体方法请参见步骤一:安装阿里云CLI

创建AccessKey

  1. 登录RAM控制台,在左侧导航栏选择身份管理 > 用户

  2. 在用户列表中,找到目标 RAM 用户,单击其名称。

  3. 认证管理页签下的AccessKey区域,单击创建AccessKey

    image

    说明

    每个 RAM 用户最多允许创建 2 个 AccessKey。一个正常使用,另一个在需要轮转时才创建,用于替换旧的AccessKey。如果当前用户已达到上限,建议为其他RAM用户创建,或在确认安全的情况下删除不再使用的AccessKey。

  4. 在弹出的确认对话框中,选择CLI并勾选我确认必须创建AccessKey,单击继续创建

    image

  5. 根据界面提示,完成安全验证(MFA)。

  6. 创建AccessKey对话框,单击下载CSV文件以保存AccessKey IDAccessKey Secret,然后单击确定

    image

    重要

    AccessKey Secret 只在创建时显示一次,后续无法查看。请务必妥善保管。

使用AccessKey调用API

说明

本教程使用阿里云CLI作为使用AccessKey的范例。如果您希望知道如何在代码中使用AK,请参见:

直接使用AccessKey

此方法将AccessKey直接配置在客户端,操作简单,但存在密钥硬编码和权限过大的风险。生产环境中不推荐使用。

  1. 为持有AccessKeyRAM用户授予RAM只读权限AliyunRAMReadOnlyAccess

    1. 登录RAM控制台,进入 身份管理 > 用户 页面。

    2. 找到目标 RAM 用户,单击 操作 列的 添加权限

      image

    3. 在 新增授权 步骤中,搜索并选中 AliyunRAMReadOnlyAccess 系统策略,然后单击 确认新增授权

      image

    4. 回到用户列表,单击目标RAM用户名称。在权限管理 > 个人权限页签下,确认可以看到AliyunRAMReadOnlyAccess权限。

  1. 打开本地终端并执行以下命令,通过交互式配置身份凭证。

    aliyun configure --profile AkProfile
  2. 根据命令行交互提示,依次输入在创建AccessKey步骤中保存的 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. 如果AccessKey信息和其他配置正确,您将会在终端看到如下返回结果。如果遇到报错,请删除缓存的阿里云CLI凭证配置,检查配置后再次执行步骤2中的命令。

    Configure Done!!!
    ..............888888888888888888888 ........=8888888888888888888D=..............
    ...........88888888888888888888888 ..........D8888888888888888888888I...........
    .........,8888888888888ZI: ...........................=Z88D8888888888D..........
    .........+88888888 ..........................................88888888D..........
    .........+88888888 .......Welcome to use Alibaba Cloud.......O8888888D..........
    .........+88888888 ............. ************* ..............O8888888D..........
    .........+88888888 .... Command Line Interface(Reloaded) ....O8888888D..........
    .........+88888888...........................................88888888D..........
    ..........D888888888888DO+. ..........................?ND888888888888D..........
    ...........O8888888888888888888888...........D8888888888888888888888=...........
    ............ .:D8888888888888888888.........78888888888888888888O ..............
  4. 执行以下命令,测试API调用。

    aliyun ram ListUsers --profile AkProfile

    如果一切正常,命令将返回RAM用户列表。类似:

    {
      "IsTruncated": false,
      "RequestId": "B3CDEF9E-A3F4-58B0-80BE-54576991****",
      "Users": {
        "User": [
          {
            "Comments": "",
            "CreateDate": "2025-10-29T02:47:52Z",
            "DisplayName": "username",
            "UpdateDate": "2025-10-29T02:47:52Z",
            "UserId": "20376656170607****",
            "UserName": "username"
          },
          ...
        ]
      }
    }

间接使用AccessKey

此方法通过AccessKey获取有时效性的STS Token,再使用STS Token调用API。该方式配置相对复杂,但降低了长期AccessKey的暴露风险,并通过角色实现了权限的动态授予和分离,是更安全的使用方式。

  1. 为持有AccessKeyRAM用户授予调用STS服务AssumeRole接口的权限AliyunSTSAssumeRoleAccess

    1. 登录RAM控制台,进入 身份管理 > 用户 页面。

    2. 找到目标 RAM 用户,单击 操作 列的 添加权限

      image

    3. 在 新增授权 步骤中,搜索并选中 AliyunSTSAssumeRoleAccess 系统策略,然后单击 确认新增授权

      image

    4. 回到用户列表,单击目标RAM用户名称。在权限管理 > 个人权限页签下,确认可以看到AliyunSTSAssumeRoleAccess权限。

  2. 创建RAM角色,获取角色ARN。

    1. RAM控制台,进入 身份管理 > 用户 页面。

    2. 角色页面,单击创建角色

    3. 创建角色页面,选择信任主体类型云账号,然后设置具体的阿里云账号,单击确定

    4. 在弹出的创建角色对话框内,输入角色名称cli-test-role。单击确定

    5. 在角色详情页,找到基本信息区域下的ARN属性,点击复制

  3. RAM角色授予RAM只读权限AliyunRAMReadOnlyAccess

    进入 身份管理 > 角色 页面,单击 操作 列的 添加权限并添加权限,方法与步骤1相同。

  4. 打开本地终端并执行以下命令,通过交互式配置身份凭证。

    aliyun configure --profile RamRoleArnProfile --mode RamRoleArn
  5. 根据命令行交互提示,输入在创建AccessKey步骤中保存的 AccessKey ID 和 AccessKey Secret、以及在步骤2中配置的RAM角色ARN。其余配置可参考如下示例。

    Configuring profile 'RamRoleArnProfile' in 'RamRoleArn' authenticate mode...
    Access Key Id []: <yourAccessKeyID>
    Access Key Secret []: <yourAccessKeySecret>
    Sts Region []: cn-shanghai
    Ram Role Arn []: acs:ram::012345678910****:role/cli-test-role
    Role Session Name []: cli-test-role
    External ID []: abcd1234
    Expired Seconds [900]: 900
    Default Region Id []: cn-shanghai
    Default Output Format [json]: json (Only support json)
    Default Language [zh|en] en: en
    Saving profile[RamRoleArnProfile] ...Done.
  6. 如果AccessKey信息和其他配置正确,您将会在终端看到如下返回结果。如果遇到报错,请删除缓存的阿里云CLI凭证配置,检查配置后再次执行步骤4中的命令。

    Configure Done!!!
    ..............888888888888888888888 ........=8888888888888888888D=..............
    ...........88888888888888888888888 ..........D8888888888888888888888I...........
    .........,8888888888888ZI: ...........................=Z88D8888888888D..........
    .........+88888888 ..........................................88888888D..........
    .........+88888888 .......Welcome to use Alibaba Cloud.......O8888888D..........
    .........+88888888 ............. ************* ..............O8888888D..........
    .........+88888888 .... Command Line Interface(Reloaded) ....O8888888D..........
    .........+88888888...........................................88888888D..........
    ..........D888888888888DO+. ..........................?ND888888888888D..........
    ...........O8888888888888888888888...........D8888888888888888888888=...........
    ............ .:D8888888888888888888.........78888888888888888888O ..............
  7. 执行以下命令,测试API调用。

    aliyun ram ListUsers --profile RamRoleArnProfile

    如果一切正常,命令将返回RAM用户列表。类似如下:

    {
      "IsTruncated": false,
      "RequestId": "B3CDEF9E-A3F4-58B0-80BE-54576991****",
      "Users": {
        "User": [
          {
            "Comments": "",
            "CreateDate": "2025-10-29T02:47:52Z",
            "DisplayName": "username",
            "UpdateDate": "2025-10-29T02:47:52Z",
            "UserId": "20376656170607****",
            "UserName": "username"
          },
          ...
        ]
      }
    }

清理资源

删除缓存的阿里云CLI凭证配置

在终端内,执行以下命令删除缓存的凭证配置。

  • 如果您是按照直接使用AccessKey步骤进行的配置,请执行以下命令:

    aliyun configure delete --profile AkProfile 
  • 如果您是按照间接使用AccessKey步骤进行的配置,请执行以下命令:

    aliyun configure delete --profile RamRoleArnProfile

禁用和删除AccessKey

  1. 登录RAM控制台,在左侧导航栏选择身份管理 > 用户

  2. 找到在上述创建 AccessKey 中的 目标RAM 用户,单击其名称。

  3. 禁用AccessKey:在认证管理页签下的AccessKey区域,单击目标AccessKey操作列的禁用。在弹出的禁用对话框中,单击禁用

  4. AccessKey移入回收站:单击目标AccessKey操作列的删除。在弹出的确认对话框中,输入当前AccessKey ID,然后单击移入回收站

    image

  5. 彻底删除AccessKey:在用户详情页的AccessKey回收站区域,找到目标AccessKey,单击操作列的删除。在弹出的确认对话框中,输入目标AccessKey ID,然后单击删除,将其彻底删除。

    image

相关文档

您可以通过以下文档,了解更多相关信息: