本文介绍如何为阿里云CLI配置并使用基于OAuth的交互式登录,以替代传统的访问密钥(AK)认证,从而提升凭证管理的安全性。
概览
阿里云CLI自 v3.0.299 版本起,支持使用OAuth作为凭证类型。该方式通过交互式的浏览器登录流程(基于OAuth2.0 PKCE流)获取代表用户身份的令牌,用于访问阿里云资源。
与传统的访问密钥(AK)认证相比,OAuth认证的优势如下:
提升安全性:无需在本地配置文件中存储明文AK,可降低凭证泄露风险。
集成现有认证体系:支持与通行密钥、多因素认证(MFA)、SSO(用户SSO或角色SSO)等登录方式结合使用。
准备工作
在开始之前,请确保满足以下条件:
CLI版本:阿里云CLI版本为
v3.0.299或更高。管理员权限:执行首次配置的管理员账号拥有
AliyunRAMFullAccess权限。环境要求:阿里云CLI与用于授权的浏览器必须运行在同一台设备上。不支持在无图形界面的服务器(例如,通过SSH连接的Linux终端)上执行授权操作。
配置流程
管理员创建CLI应用。 您可以通过以下两种方式来在阿里云账号的访问控制(RAM)中创建CLI应用:
通过管理员授权创建。由RAM管理员在CLI中首次发起OAuth登录,并在浏览器中完成认证和管理员授权操作。完成后,系统会自动创建一个名为
offical-cli的官方OAuth应用。通过控制台主动安装。由RAM管理员通过控制台主动安装CLI应用
offical-cli,省去了执行管理员授权的操作。
管理员分配身份。CLI应用创建完成后,管理员(主账号除外)需要为应用分配身份(RAM用户或角色),被分配的身份才可以用该方式登录CLI。
用户授权并登录CLI。被分配的RAM用户在自己的设备上运行CLI配置命令,CLI会自动打开浏览器。用户在浏览器中完成登录和授权后,CLI便能成功获取令牌并完成认证。
步骤一:管理员创建CLI应用
本步骤需要由具备 AliyunRAMFullAccess 权限的RAM管理员执行,为整个组织创建应用。
通过管理员授权创建
选择OAuth认证模式。在管理员的终端中执行以下命令,开始配置OAuth登录信息。建议为Profile指定一个易于理解的名称,例如
OAuthProfile。aliyun configure --profile OAuthProfile --mode OAuth选择登录站点。根据提示输入登录站点
OAuth Site Type。aliyun configure --profile OAuthProfile --mode OAuth Configuring profile 'OAuthProfile' in 'OAuth' authenticate mode... OAuth Site Type (CN: 0 or INTL: 1, default: CN):输入
0或CN:设置登录站点为阿里云中国站。输入
1或INTL:设置登录站点为阿里云国际站。直接回车:默认选择中国站(CN)。
管理员登录。CLI将自动打开浏览器。如果浏览器窗口未弹出,您可以根据CLI的提示信息,手动复制登录URL(SignIn url)至浏览器中,完成登录。
提示信息示例:
If the browser does not open automatically, use the following URL to complete the login process: SignIn url: https://signin.aliyun.com/oauth2/v1/auth?response_type=code&client_id=...执行管理员授权操作。在浏览器打开的官方应用授权页面,单击授权。 此操作将在您的账号中创建 显示名称为
offical-cli的OAuth第三方应用。除非offical-cli应用被删除,否则管理员授权操作只需执行一次。
在授权过程中,CLI会请求以下OAuth范围(OAuth服务通过OAuth范围来限定应用扮演用户登录阿里云后可以访问的范围):
OAuth范围
OAuth范围描述
openid获取RAM用户的OpenID。OpenID是一个唯一标识用户的字符串,不包含阿里云UID、用户名等敏感信息。
/internal/ram/usersts用于获取STS凭证,以调用阿里云服务API。
说明该范围目前仅允许CLI官方应用使用。
通过控制台主动安装
登录RAM控制台。
导航到,单击第三方应用页签。
在第三方应用页签下,单击安装官方应用。
在弹出的安装官方应用对话框中,选择官方CLI,并单击确定。

在第三方应用列表中,确认显示名称为
offical-cli的应用已被创建。
步骤二:管理员分配身份
如果您是通过管理员授权的方式创建的CLI应用,在授权成功后,页面会提示您为应用分配用户。如果您是通过控制台主动安装的CLI,请跳过步骤1。
单击立即前往,页面将跳转至访问控制(RAM)控制台的OAuth第三方应用详情页面。

或者,您也可以直接登录阿里云RAM控制台并导航到,单击第三方应用页签。在第三方应用列表中,找到并单击显示名称为
offical-cli的应用。在控制台
offical-cli应用详情页,单击分配页签,然后单击创建分配。在弹出的创建分配面板中,勾选需要通过OAuth方式登录CLI的RAM身份(RAM用户或RAM角色),然后单击确定完成分配。

步骤三:用户授权并登录CLI
本步骤由已被管理员分配给 offical-cli 应用的RAM用户在自己的设备上执行。
选择OAuth认证模式。在终端中执行以下命令,开始配置OAuth登录信息。
aliyun configure --profile OAuthProfile --mode OAuth选择登录站点。根据提示选择登录站点(
CN或INTL)。用户登录。在自动弹出的浏览器窗口中,使用您的RAM用户身份登录,
执行用户授权操作。在浏览器打开的用户授权页面,单击授权,以完成用户授权。除非
offical-cli应用被删除,否则用户授权仅需在首次登录时完成一次,后续该用户登录无需再次授权。
角色登录。 CLI的OAuth认证方式也支持RAM角色。您可以在浏览器中先使用角色SSO的方式从身份提供商(IdP)侧完成控制台登录,或在登录控制台后切换身份到对应RAM角色。然后再执行步骤1从终端触发OAuth登录,这样即可以RAM角色的身份登录CLI。
说明管理员授权与用户授权的目的不同,即便完成了管理员授权,用户授权也不可省略。
管理员授权:将
official-cli应用添加到阿里云账号中,允许账号内身份经过分配后访问该应用。用户授权:授权阿里云CLI代表用户访问所许可的阿里云资源或执行特定操作。
设置默认地域。授权成功后返回终端,根据提示输入默认地域。
Default Region Id []: cn-hangzhou说明部分云产品不支持跨地域访问,建议您优先将默认地域设置为已购资源所在地域。
终端显示
Configure Done及欢迎信息,表示配置成功。(可选)验证登录身份。执行以下命令来查看当前登录CLI的身份信息:
aliyun sts GetCallerIdentity --profile OAuthProfile
使用限制
不支持通过用户组为
offical-cli应用进行分配,必须明确指定到RAM用户或角色。CLI与浏览器必须运行在同一台设备上,不支持在无图形化界面的环境(例如,通过SSH连接的Linux服务器)中执行授权。
常见故障排除
在管理员授权页面,单击“授权”后出现“调用未被授权”的错误

原因:当前在浏览器中登录的账号不具备 AliyunRAMFullAccess 权限,即不是RAM管理员账号。
解决方案:在阿里云控制台中退出登录,使用具备AliyunRAMFullAccess权限的RAM管理员账号登录并执行授权操作。若您不具备权限请联系相关管理员进行操作。