背景信息
阿里云CLI 3.0.271及以上版本(新版本)新增CloudSSO凭证类型并简化了配置流程,旧版本操作方法仍然可用。您可使用aliyun version
命令查看阿里云CLI当前版本。
新版本
新版本提供交互式与非交互式两种配置方式。交互式配置方式通过流程引导简化了操作,便于用户快速上手;非交互式配置方式更适用于脚本编写,便于实现自动化配置。
交互式配置
执行aliyun configure
命令,开始以交互式方式配置云SSO登录信息。您可以设置多个Profile,通过指定Profile快速切换登录的账号和访问配置。
aliyun configure --profile SSOProfile --mode CloudSSO
根据提示输入用户登录地址。
aliyun configure --profile SSOProfile --mode CloudSSO
CloudSSO Sign In Url []: https://signin-******.alibabacloudsso.com/device/login
在弹出的浏览器窗口中,根据界面提示,完成云SSO用户登录,登录成功后请关闭浏览器窗口。
如果浏览器窗口未弹出,您可以根据CLI的提示信息,手动复制登录URL(SignIn url)和用户码(User code)完成登录。
提示信息示例:
If the browser does not open automatically, use the following URL to complete the login process:
SignIn url: https://signin-****.alibabacloudsso.com/device/code
User code: *********
CLI返回登录成功,同时列出您可以访问的RD账号名称,请输入编号选择要访问的RD账号。
Now you can login to your account with SSO configuration in the browser.
You have successfully logged in.
Please choose an account:
1. <RD Management Account>
2. AccountName
Please input the account number: 1
CLI列出您可以使用的访问配置,请输入编号选择要使用的访问配置。
Please choose an access configuration:
1. AccessConfiguration1
2. AccessConfiguration2
Please input the access configuration number: 2
指定默认地域。
Default Region Id []: cn-hangzhou
配置成功后显示Configure Done字样及欢迎信息。
非交互式配置
执行aliyun configure set
命令可通过非交互式方式配置CloudSSO凭证,凭证所需参数及对应选项如下表所示:
选项 | 说明 | 示例值 |
profile | 凭证配置名称。 该名称可由用户自定义,支持传入大写英文字母(A-Z)、小写英文字母(a-z)、数字(0-9)及特殊字符( _/+=.@-)。 | SSOProfile |
mode | 凭证类型。 当前场景中传入值必须为CloudSSO 。 | CloudSSO |
cloud-sso-sign-in-url | 用户登录地址。 获取方法:请登录云SSO控制台,在概览页面的右侧,获取用户登录URL。 | https://signin-******.alibabacloudsso.com/device/login |
cloud-sso-account-id | RD账号UID。 获取方法:请登录云SSO控制台,在多账号权限管理页面的右侧,获取RD账号UID。 | 012345678910**** |
cloud-sso-access-config | 访问配置ID。 获取方法:请登录云SSO控制台,在访问配置页面,获取访问配置ID。 | ac-012345678910abcde**** |
region | 默认地域。 部分云产品不支持跨地域访问,建议您优先将默认地域设置为已购资源所在地域。 | cn-hangzhou |
配置命令示例如下:
说明 使用非交互式方式配置CloudSSO凭证后,首次使用该凭证需通过aliyun configure --profile <profileName>
命令执行登录操作。
旧版本
操作步骤
步骤一:安装CLI
您需要安装阿里云CLI和云SSO CLI,具体如下:
安装阿里云CLI
安装云SSO CLI
安装Node.js。
安装Node.js的同时请安装包管理工具npm。
说明 Node.js版本不低于7.6.0,推荐最新的LTS版本。
执行以下命令,安装云SSO CLI。
npm i @alicloud/sso-cli -g
更多信息,请参见云SSO CLI。
步骤二:配置云SSO登录信息
执行以下命令,开始配置云SSO登录信息。
acs-sso configure
输入用户登录地址signinUrl
。
说明 用户登录地址signinUrl
获取方法:请登录云SSO控制台,在概览页面的右侧,获取用户登录URL。
请求示例:
acs-sso configure
? please input 'signinUrl': https://signin-******.alibabacloudsso.com/device/login
配置成功的返回示例:
configuration done!
步骤三:云SSO用户登录阿里云
常用命令如下:
默认登录
执行以下命令,开始登录。
acs-sso login
在弹出的浏览器窗口中,根据界面提示,完成云SSO用户登录,登录成功后请关闭浏览器窗口。
如果浏览器窗口未弹出,您可以根据CLI的提示信息,手动复制登录URL(SignIn url)和用户码(User code)完成登录。
提示信息示例:
If your default browser is not opened automatically, please use the following URL to finish the signin process.
Signin URL: https://signin-****.alibabacloudsso.com/device/code
User Code: *********
如果当前用户被授予了多个RD账号的访问权限,CLI会交互式地提醒您选择要使用的RD账号和访问配置,并最终生成相应的阿里云访问密钥。
返回示例:
You have logged in.
used account: test-account(191585963325****)
used access configuration: TestAC(ac-x08xz11covd3cyzd****)
{
"mode": "StsToken",
"access_key_id": "STS.****",
"access_key_secret": "****",
"sts_token": "****"
}
登录成功后,profile
会绑定该RD账号和访问配置。下次登录时,将会使用本次缓存的RD账号和访问配置直接登录。
指定云SSO的登录配置名称
acs-sso login --profile sso
当您想同时配置多个RD账号和访问配置所对应的SSO登录信息时,可以通过指定登录配置名称来区分。您可以使用--profile
指定云SSO的不同登录配置名称。上述命令表示指定使用的登录配置名称是sso。
不指定--profile
时,默认使用的登录配置名称是default。
获取登录配置列表
acs-sso profile --list
删除指定的登录配置
执行以下命令,删除默认登录配置。
acs-sso profile --delete --profile default
执行以下命令,删除名为sso的登录配置。
acs-sso profile --delete --profile sso
配置输出模式
以下两种方式,您可以任选其一进行配置:
外部进程模式(默认):当您与阿里云CLI的外部进程(External)模式配合使用时,您可以使用该输出模式。
返回示例:
{
"mode": "StsToken",
"access_key_id": "STS.NUyPeEoab****",
"access_key_secret": "GBubpmh****",
"sts_token": "CAIS****"
}
环境变量模式:您可以使用--env
参数配置返回结果为环境变量模式。例如:acs-sso login --profile user1 --env
。
返回示例:
export ALIBABACLOUD_ACCESS_KEY_ID=STS.NUyPeEoab****
export ALIBABACLOUD_ACCESS_KEY_SECRET=GBubpmh****
export SECURITY_TOKEN=CAIS****
环境变量可以与阿里云的相关工具(例如:Terraform等)配合使用。例如:`acs-sso login --profile user1 --env` && terraform plan
。
环境变量也可以与阿里云CLI配合使用。例如:`acs-sso login --profile user1 --env` && aliyun ecs DescribeRegions
。
步骤四:配合阿里云CLI使用
请求示例:
aliyun configure --mode External --profile sso
Configuring profile 'sso' in 'External' authenticate mode...
Process Command []: acs-sso login --profile sso
Default Region Id []: cn-shanghai
Default Output Format [json]: json (Only support json)
Default Language [zh|en] en:
Saving profile[sso] ...Done.
其中,Process Command
使用命令acs-sso login --profile sso
指定云SSO的登录配置名称为sso
。建议您在阿里云CLI和云SSO CLI指定相同的配置名称,这样当有多个云SSO登录配置时,可以多次配置CLI凭证,并匹配不同的云SSO登录配置。
配置成功的返回示例:
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 ..............
执行以下测试示例,验证阿里云CLI是否可用。
aliyun sts GetCallerIdentity --profile sso