配置凭证
在使用阿里云CLI之前,您需要配置调用阿里云资源所需的凭证信息、地域、语言等。阿里云CLI在初次运行时会自动生成并使用default
配置。您也可以创建并使用属于您的自定义配置。
身份凭证配置方式
阿里云CLI提供了两种配置方式,分别是交互式配置和非交互式配置,根据用户需求可以选择不同的配置方式。
交互式配置为用户提供了流程引导,使用户能以较低的学习成本在阿里云CLI中快速配置身份凭证。对于新手用户、不熟悉命令行操作的用户或只需要偶尔进行配置的用户,建议选择该方式完成配置。
非交互式配置可以通过命令行参数或环境变量等方式直接指定配置项,具有灵活性和高效性的优点。对于希望通过脚本、自动化部署工具或配置管理工具来管理和操作阿里云CLI的用户,建议选择该方式完成配置。
交互式配置
通用语法
调用aliyun configure
命令,使用交互式方式配置凭证的命令语法如下:
aliyun configure --mode <AuthenticateMode> --profile <profileName>
选项详情:
--mode
:指定凭证类型,默认为AK类型。更多关于支持类型的详细信息,请参见身份凭证类型。--profile
:指定配置名称。若不指定,则使用默认身份凭证配置调用命令。如果指定的配置已存在,则修改已存在配置;若不存在,则创建新配置。
注意事项
请确保配置正确的凭证信息。若凭证信息有误,可能会造成误操作或者无法调用接口。
使用交互式配置方式配置凭证后,若身份凭证配置有效,将显示如下信息:
非交互式配置
通用语法
调用aliyun configure set
命令,使用非交互式方式配置凭证,命令语法如下:
aliyun configure set [--settingName <settingValue>]... --mode <AuthenticateMode> --profile <profileName>
凭证选项是用于配置凭证的必需信息。配置某一凭证类型时,仅需配置该凭证类型所需的选项。
常见的通用选项如下,其适用于任一凭证类型。
注意事项
请确保配置正确的AccessKey信息,若不正确,可能会造成误操作或者无法调用接口。
使用非交互式配置方式配置凭证后,可使用
aliyun configure list
或aliyun configure get
命令查看配置是否创建成功。使用方法及示例请参见配置凭证相关命令。
身份凭证类型
AK
凭证说明
为保证账号安全,建议您创建专用于API访问的RAM用户并创建对应的AccessKey。更多关于凭据的安全使用建议,请参见凭据的安全使用方案。
AK类型凭证为默认凭证类型,使用AccessKey信息作为身份凭证。配置AK类型凭证时可以忽略
--mode
选项。配置必填项如下:
AccessKey Id
:指定您的AccessKey ID。获取方式请参见创建RAM用户的AccessKey。AccessKey Secret
:指定您的AccessKey Secret。获取方式请参见创建RAM用户的AccessKey。Region Id
:指定默认区域的Region Id。阿里云支持的Region Id,请参见地域和可用区。
配置示例
如下示例,配置名为AkProfile
的AK类型凭证。
交互式配置
配置命令如下:
aliyun configure --profile AkProfile
配置交互过程示例如下:
非交互式配置
使用
configure
命令下的set
子命令进行非交互式配置,配置命令如下:aliyun configure set \ --profile AkProfile \ --mode AK \ --access-key-id **** \ --access-key-secret **** \ --region ****
StsToken
凭证说明
阿里云STS(Security Token Service)是阿里云提供的一种临时访问权限管理服务。有关STS Token的更多信息,请参见什么是STS。
STS Token具有时效性,过期失效后需要重新获取。在阿里云CLI中,StsToken类型不支持自动刷新身份凭证,推荐您配置以下类型凭证使用阿里云CLI:
部分凭证类型支持自动刷新身份凭证,具体类型如下所示:
云SSO用户可通过配置External类型凭证访问阿里云资源。具体操作,请参见使用CLI登录云SSO并访问阿里云资源。
部分凭证类型支持开发者自行实现身份凭证刷新机制,具体类型如下所示:
配置StsToken类型凭证时,需要在命令中使用
--mode StsToken
指定凭证类型。配置必填项如下:
AccessKey Id
:指定您的AccessKey ID。获取方式请参见创建AccessKey。AccessKey Secret
:指定您的AccessKey Secret。获取方式请参见创建AccessKey。Region Id
:指定默认区域的RegionId。阿里云支持的RegionId,请参见地域和可用区。STS Token
:指定StsToken鉴权所需要的信息。获取方式请参见获取扮演角色的临时身份凭证。
配置示例
如下示例,配置名为StsProfile
的StsToken类型凭证。
交互式配置
配置命令如下:
aliyun configure --profile StsProfile --mode StsToken
配置交互过程示例如下:
非交互式配置
使用
configure
命令下的set
子命令进行非交互式配置,配置命令如下:aliyun configure set \ --profile StsProfile \ --mode StsToken \ --access-key-id **** \ --access-key-secret **** \ --sts-token **** \ --region ****
RamRoleArn
凭证说明
RamRoleArn类型凭证通过调用STS服务的
AssumeRole
接口获取临时身份凭证(STS Token)。更多信息,请参见以下文档:RamRoleArn类型凭证支持自动刷新临时身份凭证。
配置必填项如下:
AccessKey Id
:指定您的AccessKey ID。获取方式请参见创建AccessKey。AccessKey Secret
:指定您的AccessKey Secret。获取方式请参见创建AccessKey。Region Id
:指定默认区域的RegionId。阿里云支持的RegionId,请参见地域和可用区。RamRoleArn
:需要扮演的RAM角色ARN。您可以通过RAM控制台或API查看角色 ARN,具体操作如下:RAM控制台:请参见如何查看 RAM 角色的 ARN。
API:请参见ListRoles - 获取角色列表或GetRole - 获取角色信息。
RoleSessionName
:角色会话名称。该参数为用户自定义参数,通常设置为调用该API的用户身份,例如:用户名。
配置示例
如下示例,配置名为RamRoleArnProfile
的RamRoleArn类型凭证。
交互式配置
配置命令如下:
aliyun configure --profile RamRoleArnProfile --mode RamRoleArn
配置交互过程示例如下:
非交互式配置
使用
configure
命令下的set
子命令进行非交互式配置,配置命令如下:aliyun configure set \ --profile RamRoleArnProfile \ --mode RamRoleArn \ --access-key-id **** \ --access-key-secret **** \ --ram-role-arn **** \ --role-session-name ****\ --region ****
EcsRamRole
凭证说明
实例元数据服务器支持加固模式和普通模式两种访问方式,阿里云CLI现已支持使用加固模式(IMDSv2)获取访问凭据,建议您在配置该类型凭证前安装最新版本阿里云CLI工具。
EcsRamRole类型凭证无需配置AccessKey,当您在实例内部使用阿里云CLI时,可通过访问元数据服务(Meta Data Service)获取RAM角色的临时身份凭证(STS Token)以调用OpenAPI,从而降低AccessKey泄露的风险。
EcsRamRole类型凭证仅支持在实例RAM角色绑定的ECS实例内部使用,在实例外部无法配置或使用该类型凭证。关于ECS实例元数据的介绍,请参见实例元数据。
EcsRamRole类型凭证支持自动刷新临时身份凭证。
配置必填项如下:
Region Id
:指定默认地域的RegionId。阿里云支持的RegionId,请参见地域和可用区。EcsRamRole
:指定ECS实例RAM角色的角色名称。为ECS实例授予RAM角色的具体操作,请参见创建RAM角色并授予给ECS实例。
配置示例
如下示例,配置名为EcsRamRoleProfile
的EcsRamRole类型凭证。
交互式配置
配置命令如下:
aliyun configure --profile EcsRamRoleProfile --mode EcsRamRole
配置交互过程示例如下:
非交互式配置
使用
configure
命令下的set
子命令进行非交互式配置,配置命令如下:aliyun configure set \ --profile EcsRamRoleProfile \ --mode EcsRamRole \ --ram-role-name **** \ --region ****
External
凭证说明
该凭证类型支持自动刷新身份凭证。
External类型凭证通过外部程序获取凭证数据,阿里云CLI在使用时会执行该程序命令,获取返回结果作为凭证。该凭证类型支持用户自行实现身份凭证刷新机制。
External类型凭证支持用户自行实现身份凭证刷新机制。
阿里云CLI支持通过配置External类型凭证登录云SSO。具体操作,请参见使用CLI登录云SSO并访问阿里云资源。
配置必填项如下:
Process Command
:外部程序命令。支持外部程序返回Accesskey和STS Token两种静态凭证。凭证结构示例如下:Region Id
:指定默认区域的RegionId。阿里云支持的RegionId,请参见地域和可用区。
配置示例
如下示例,配置名为ExternalProfile
的External类型凭证。
交互式配置
配置命令如下:
aliyun configure --profile ExternalProfile --mode External
配置交互过程示例如下:
非交互式配置
使用
configure
命令下的set
子命令进行非交互式配置,配置命令如下:aliyun configure set \ --profile ExternalProfile \ --mode External \ --process-command **** \ --region ****
ChainableRamRoleArn
凭证说明
ChainableRamRoleArn类型凭证通过指定一个前置身份凭证配置,从前置配置中获取中间凭证(AccessKey或STS Token),再基于中间凭证完成角色扮演,获取最终的临时身份凭证(STS Token)。
ChainableRamRoleArn类型凭证支持自动刷新身份凭证。
配置必填项如下:
Source Profile
:前置身份凭证配置名称。前置凭证类型不作限制,在配置ChainableRamRoleArn类型凭证之前,您需要先配置前置凭证。详情可参见配置示例。Region Id
:指定默认区域的RegionId。阿里云支持的RegionId,请参见地域和可用区。RamRoleArn
:需要扮演的RAM角色ARN。您可以通过RAM控制台或API查看角色 ARN,具体操作如下:RAM控制台:请参见如何查看 RAM 角色的 ARN。
API:请参见ListRoles - 获取角色列表或GetRole - 获取角色信息。
RoleSessionName
:角色会话名称。该参数为用户自定义参数,通常设置为调用该API的用户身份,例如:用户名。
配置示例
配置ChainableRamRoleArn类型凭证前,需为前置身份凭证对应RAM身份授予系统权限策略AliyunSTSAssumeRoleAccess。
示例如下,以配置名为ChainableProfile
的ChainableRamRoleArn类型凭证为例,使用RamRoleArn类型凭证RamRoleArnProfile
作为前置身份凭证。
交互式配置
配置前置身份凭证
RamRoleArnProfile
,配置流程可参考RamRoleArn类型凭证配置示例。执行如下命令,配置ChainableRamRoleArn类型凭证
ChainableProfile
。aliyun configure --profile ChainableProfile --mode ChainableRamRoleArn
配置交互过程示例如下,在
Source Profile
选项处输入配置名称RamRoleArnProfile
,以指定前置凭证:
暂不支持使用非交互式方式配置ChainableRamRoleArn类型凭证。
CredentialsURI
凭证说明
CredentialsURI类型凭证通过访问您提供的URI地址获取临时身份凭证(STS Token)以调用OpenAPI。
CredentialsURI类型凭证支持用户自行实现身份凭证刷新机制。
配置必填项如下:
CredentialsURI
:本地或远程URI地址。若该地址无法正常访问或返回结构不正确,阿里云CLI将处理为失败案例。标准返回结构如下所示:Region Id
:指定默认区域的RegionId。阿里云支持的RegionId,请参见地域和可用区。
配置示例
如下示例,配置名为URIProfile
的CredentialsURI类型凭证。
交互式配置
配置命令如下:
aliyun configure --profile URIProfile --mode CredentialsURI
配置交互过程示例如下:
暂不支持使用非交互式方式配置CredentialsURI类型凭证。
OIDC
凭证说明
在容器服务 Kubernetes 版中设置了Worker节点RAM角色后,对应节点内的Pod中的应用也就可以像ECS上部署的应用一样,通过元数据服务(Meta Data Server)获取关联角色的STS Token。但如果容器集群上部署的是不可信的应用(比如部署您的客户提交的应用,代码也没有对您开放),您可能并不希望它们能通过元数据服务获取Worker节点关联实例RAM角色的STS Token。为了避免影响云上资源的安全,同时又能让这些不可信的应用安全地获取所需的 STS Token,实现应用级别的权限最小化,您可以使用RRSA(RAM Roles for Service Account)功能。阿里云容器集群会为不同的应用Pod创建和挂载相应的服务账户OIDC Token文件,并将相关配置信息注入到环境变量中,阿里云CLI工具通过获取环境变量的配置信息,调用STS服务的AssumeRoleWithOIDC - OIDC角色SSO时获取扮演角色的临时身份凭证接口换取绑定角色的STS Token。详情请参见通过RRSA配置ServiceAccount的RAM权限实现Pod权限隔离。
OIDC类型凭证支持自动刷新临时身份凭证。
配置必填项如下:
OIDCProviderARN
:指定OIDC身份提供商的ARN。您可以通过 RAM 控制台或 API 查看 OIDC 身份提供商的 ARN,具体操作如下:RAM 控制台:请参见管理OIDC身份提供商。
API:请参见GetOIDCProvider - 查询OIDC身份提供商信息或ListOIDCProviders - 查询OIDC身份提供商列表。
OIDCTokenFile
:指定OIDC Token文件路径。OIDC Token是由外部IdP签发的OIDC令牌。Region Id
:指定默认区域的RegionId。阿里云支持的RegionId,请参见地域和可用区。RamRoleArn
:需要扮演的RAM角色ARN。您可以通过RAM控制台或API查看角色ARN,具体操作如下:RAM控制台:请参见如何查看 RAM 角色的 ARN。
API:请参见ListRoles - 获取角色列表或GetRole - 获取角色信息。
RoleSessionName
:角色会话名称。该参数为用户自定义参数,通常设置为调用该API的用户身份,例如:用户名。
配置示例
如下示例,配置名为OIDCProfile
的OIDC类型凭证。
交互式配置
配置命令如下:
aliyun configure --profile OIDCProfile --mode OIDC
配置交互过程示例如下:
非交互式配置
使用
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