配置凭证

更新时间:

在使用阿里云CLI之前,您需要配置调用阿里云资源所需的凭证信息、地域、语言等。阿里云CLI在初次运行时会自动生成并使用default配置。您也可以创建并使用属于您的自定义配置。

身份凭证配置方式

阿里云CLI提供了两种配置方式,分别是交互式配置和非交互式配置,根据用户需求可以选择不同的配置方式。

  • 交互式配置为用户提供了流程引导,使用户能以较低的学习成本在阿里云CLI中快速配置身份凭证。对于新手用户、不熟悉命令行操作的用户或只需要偶尔进行配置的用户,建议选择该方式完成配置。

  • 非交互式配置可以通过命令行参数或环境变量等方式直接指定配置项,具有灵活性和高效性的优点。对于希望通过脚本、自动化部署工具或配置管理工具来管理和操作阿里云CLI的用户,建议选择该方式完成配置。

交互式配置

通用语法

调用aliyun configure命令,使用交互式方式配置凭证的命令语法如下:

aliyun configure --mode <AuthenticateMode> --profile <profileName>
  • 选项详情:

    • --mode:指定凭证类型,默认为AK类型。更多关于支持类型的详细信息,请参见身份凭证类型

    • --profile:指定配置名称。若不指定,则使用默认身份凭证配置调用命令。如果指定的配置已存在,则修改已存在配置;若不存在,则创建新配置。

  • 注意事项

    • 请确保配置正确的凭证信息。若凭证信息有误,可能会造成误操作或者无法调用接口。

    • 使用交互式配置方式配置凭证后,若身份凭证配置有效,将显示如下信息:

      完整提示信息

      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 ..............

非交互式配置

通用语法

调用aliyun configure set命令,使用非交互式方式配置凭证,命令语法如下:

aliyun configure set [--settingName <settingValue>]... --mode <AuthenticateMode> --profile <profileName>
说明

凭证选项是用于配置凭证的必需信息。配置某一凭证类型时,仅需配置该凭证类型所需的选项。

  • 常见的通用选项如下,其适用于任一凭证类型。

    • --profile(必选):指定配置名称。如果指定的配置存在,则修改配置。若不存在,则创建配置。

    • --region(必选):指定默认地域。详情请参见地域和可用区

    • --language:指定阿里云CLI显示的语言,默认为英语。

    • --mode:指定配置的凭证类型,默认为AK类型。更多关于支持类型的详细信息,请参见身份凭证类型

  • 注意事项

    • 请确保配置正确的AccessKey信息,若不正确,可能会造成误操作或者无法调用接口。

    • 使用非交互式配置方式配置凭证后,可使用aliyun configure listaliyun configure get命令查看配置是否创建成功。使用方法及示例请参见配置凭证相关命令

身份凭证类型

AK

凭证说明

重要

为保证账号安全,建议您创建专用于API访问的RAM用户并创建对应的AccessKey。更多关于凭据的安全使用建议,请参见凭据的安全使用方案

  • AK类型凭证为默认凭证类型,使用AccessKey信息作为身份凭证。配置AK类型凭证时可以忽略--mode选项。

  • 配置必填项如下:

配置示例

如下示例,配置名为AkProfileAK类型凭证。

  • 交互式配置

    配置命令如下:

    aliyun configure --profile AkProfile

    配置交互过程示例如下:

    示例

    Configuring profile 'AkProfile' in 'AK' authenticate mode...
    Access Key Id []: ****
    Access Key Secret []: ****
    Default Region Id []: ****
    Default Output Format [json]: json (Only support json))
    Default Language [zh|en] en: en
    Saving profile[akProfile] ...Done.
  • 非交互式配置

    使用configure命令下的set子命令进行非交互式配置,配置命令如下:

    aliyun configure set \
      --profile AkProfile \ 
      --mode AK \
      --access-key-id **** \
      --access-key-secret **** \
      --region **** 

RamRoleArn

凭证说明

  • RamRoleArn类型凭证通过RAM子账号进行角色扮演获取临时凭证SecurityToken。更多关于此凭证类型的信息,请参见AssumeRole - 获取扮演角色的临时身份凭证

  • 配置RamRoleArn类型凭证时,需要在命令中使用--mode RamRoleArn指定凭证类型。

  • 配置必填项如下:

配置示例

如下示例,配置名为RamRoleArnProfileRamRoleArn类型凭证。

  • 交互式配置

    配置命令如下:

    aliyun configure --profile RamRoleArnProfile --mode RamRoleArn

    配置交互过程示例如下:

    示例

    Configuring profile 'RamRoleArnProfile' in 'RamRoleArn' authenticate mode...
    Access Key Id []: ****
    Access Key Secret []: ****
    Ram Role Arn []: ****
    Role Session Name []: ****
    Default Region Id []: ****
    Default Output Format [json]: json (Only support json))
    Default Language [zh|en] en: en
    Saving profile[ramRoleArnProfile] ...Done.
  • 非交互式配置

    使用configure命令下的set子命令进行非交互式配置,配置命令如下:

    aliyun configure set \
      --profile RamRoleArnProfile \
      --mode RamRoleArn \
      --access-key-id **** \
      --access-key-secret **** \
      --ram-role-arn **** \
      --role-session-name ****\
      --region **** 

EcsRamRole

凭证说明

  • EcsRamRole类型凭证使用ECS实例角色提供访问凭证,您无需配置AK信息,只需要配置角色即可。

  • 配置EcsRamRole类型凭证访问阿里云时,需要在命令中使用--mode EcsRamRole指定凭证类型。

  • 配置必填项如下:

配置示例

如下示例,配置名为EcsRamRoleProfileEcsRamRole类型凭证。

  • 交互式配置

    配置命令如下:

    aliyun configure --profile EcsRamRoleProfile --mode EcsRamRole

    配置交互过程示例如下:

    示例

    Configuring profile 'EcsRamRoleProfile' in 'EcsRamRole' authenticate mode...
    Ecs Ram Role []: ****
    Default Region Id []: ****
    Default Output Format [json]: json (Only support json))
    Default Language [zh|en] en: en
    Saving profile[ecsRamRamRoleArnProfile] ...Done.
  • 非交互式配置

    使用configure命令下的set子命令进行非交互式配置,配置命令如下:

    aliyun configure set \
      --profile EcsRamRoleProfile \
      --mode EcsRamRole \
      --ram-role-name **** \
      --region ****

External

凭证说明

  • External类型凭证通过外部程序获取凭证数据,阿里云CLI在使用时会执行该程序命令,获取返回结果作为凭证。

  • 配置External类型凭证访问阿里云时,需要在命令中使用--mode External指定凭证类型。

  • 阿里云CLI支持云SSO通过该凭证类型进行登录。具体操作,请参见使用CLI登录云SSO并访问阿里云资源

  • 配置必填项如下:

    • Process Command:外部程序命令。支持外部程序返回AK和StsToken两种静态的凭证。凭证结构示例如下:

      AK

      {
        "mode": "AK",
        "access_key_id": "accessKeyId",
        "access_key_secret": "accessKeySecret"
      }

      StsToken

      {
        "mode": "StsToken",
        "access_key_id": "accessKeyId",
        "access_key_secret": "accessKeySecret",
        "sts_token": "stsToken"
      }
    • Region Id:指定默认区域的RegionId。阿里云支持的RegionId,请参见地域和可用区

配置示例

如下示例,配置名为ExternalProfileExternal类型凭证。

  • 交互式配置

    配置命令如下:

    aliyun configure --profile ExternalProfile --mode External

    配置交互过程示例如下:

    示例

    Configuring profile 'ExternalProfile' in 'External' authenticate mode...
    Process Command []: ****
    Default Region Id []: ****
    Default Output Format [json]: json (Only support json)
    Default Language [zh|en] en: en
    Saving profile[externalTest] ...Done.
  • 非交互式配置

    使用configure命令下的set子命令进行非交互式配置,配置命令如下:

    aliyun configure set \
      --profile ExternalProfile \
      --mode External \
      --process-command **** \
      --region ****

ChainableRamRoleArn

凭证说明

  • ChainableRamRoleArn类型凭证通过指定一个前置身份凭证配置,从前置配置中获取中间凭证,再基于中间凭证完成角色扮演,获取最终的身份凭证。

  • 配置ChainableRamRoleArn类型凭证访问阿里云时,需要在命令中使用--mode ChainableRamRoleArn指定凭证类型。

  • 配置必填项如下:

    • Source Profile:前置身份凭证配置名称。前置凭证类型不作限制,在配置ChainableRamRoleArn类型凭证之前,您需要先配置前置凭证。详情可参见配置示例

    • Region Id:指定默认区域的RegionId。阿里云支持的RegionId,请参见地域和可用区

    • RamRoleArn:需要扮演的RAM角色ARN。您可以通过RAM控制台或API查看角色 ARN,具体操作如下:

    • RoleSessionName:角色会话名称。该参数为用户自定义参数,通常设置为调用该API的用户身份,例如:用户名。

配置示例

说明

配置ChainableRamRoleArn类型凭证前,需为前置身份凭证对应RAM身份授予系统权限策略AliyunSTSAssumeRoleAccess

示例如下,以配置名为ChainableProfileChainableRamRoleArn类型凭证为例,使用RamRoleArn类型凭证RamRoleArnProfile作为前置身份凭证。

  • 交互式配置

    1. 配置前置身份凭证RamRoleArnProfile,配置流程可参考RamRoleArn类型凭证配置示例

    2. 执行如下命令,配置ChainableRamRoleArn类型凭证ChainableProfile

      aliyun configure --profile ChainableProfile --mode ChainableRamRoleArn

      配置交互过程示例如下,在Source Profile选项处输入配置名称RamRoleArnProfile,以指定前置凭证:

      示例

      Configuring profile 'ChainableProfile' in 'ChainableRamRoleArn' authenticate mode...
      Source Profile []: RamRoleArnProfile
      Sts Region []: ****
      Ram Role Arn []: ****
      Role Session Name []: ****
      Expired Seconds [900]: ****
      Default Region Id []: ****
      Default Output Format [json]: json (Only support json)
      Default Language [zh|en] en: en
      Saving profile[p1] ...Done.
  • 暂不支持使用非交互式方式配置ChainableRamRoleArn类型凭证。

CredentialsURI

凭证说明

  • CredentialsURI类型凭证通过访问一个本地或远程的URI地址获取身份凭证。

  • 配置CredentialsURI类型凭证访问阿里云时,需要在命令中使用--mode CredentialsURI指定凭证类型。

  • 配置必填项如下:

    • CredentialsURI:本地或远程URI地址。若该地址无法正常访问或返回结构不正确,阿里云CLI将处理为失败案例。标准返回结构如下所示:

      标准返回结构

      {
        "Code": "Success",
        "AccessKeyId": "<ak id>",
        "AccessKeySecret": "<ak secret>",
        "SecurityToken": "<security token>",
        "Expiration": "2006-01-02T15:04:05Z"
      }
    • Region Id:指定默认区域的RegionId。阿里云支持的RegionId,请参见地域和可用区

配置示例

如下示例,配置名为URIProfileCredentialsURI类型凭证。

  • 交互式配置

    配置命令如下:

    aliyun configure --profile URIProfile --mode CredentialsURI

    配置交互过程示例如下:

    示例

    Configuring profile 'URIProfile' in 'CredentialsURI' authenticate mode...
    Credentials URI []: ****
    Default Region Id []: ****
    Default Output Format [json]: json (Only support json)
    Default Language [zh|en] en: en
    Saving profile[cup] ...Done.
  • 暂不支持使用非交互式方式配置CredentialsURI类型凭证。

OIDC

凭证说明

配置示例

如下示例,配置名为OIDCProfileOIDC类型凭证。

  • 交互式配置

    配置命令如下:

    aliyun configure --profile OIDCProfile --mode OIDC

    配置交互过程示例如下:

    示例

    Configuring profile 'OIDCProfile' in 'OIDC' authenticate mode...
    OIDC Provider ARN []: ****
    OIDC Token File []: ****
    RAM Role ARN []: ****
    Role Session Name []: ****
    Default Region Id []: ****
    Default Output Format [json]: json (Only support json)
    Default Language [zh|en] en: en
    Saving profile[oidc_p] ...Done.
  • 非交互式配置

    使用configure命令下的set子命令进行非交互式配置,配置命令如下:

    aliyun configure set \
      --profile OIDCProfile \
      --mode OIDC \
      --oidc-provider-arn **** \
      --oidc-token-file **** \
      --ram-role-arn **** \
      --role-session-name ****\
      --region **** 

使用身份凭证配置

  • 如果未指定身份凭证配置,则默认使用default配置。

  • 若您需要指定身份凭证配置,可以参考以下方式进行设置。

    命令行参数

    在您的命令后使用--profile选项,以使用指定的身份凭证配置。

    示例:使用指定身份凭证配置exampleProfile调用云服务器 ECS OpenAPIDescribeInstances获取云服务器 ECS实例信息。

    aliyun ecs DescribeInstances --profile exampleProfile

    默认身份凭证配置

    您可以通过设定默认身份凭证配置,避免在使用阿里云CLI时重复指定配置文件。您仍然可以使用--profile选项覆盖此设置。

    修改方式:

    • 执行aliyun configure switch命令,设定默认身份凭证配置。具体操作,请参见设定默认身份凭证配置

    • 执行aliyun configure set命令成功修改配置后,阿里云CLI会将被修改的配置设定为默认身份凭证配置。具体操作,请参见修改指定身份凭证配置

    • 手动在config.json文件中修改current元素值,将其设定为待指定的身份凭证配置名称。

身份凭证配置存储位置

身份凭证配置文件profile是一个可自定义名称的设置集,所有身份凭证与设置项均以JSON格式存储在config.json文件中。该文件位于您个人用户目录下的.aliyun文件夹中,个人用户目录位置因操作系统而异。

  • Windows环境:C:\Users\<USERNAME>\.aliyun

  • Linux或macOS:~/.aliyun