阿里云CLI(Alibaba Cloud Command Line Interface)是基于OpenAPI构建的通用命令行工具,您可以通过阿里云CLI实现自动化管理和维护访问控制 RAM(Resource Access Management)。本文以使用aliyun ram CreatePolicy命令创建一个自定义权限策略为例,为您介绍使用阿里云CLI调用RAM OpenAPI的操作步骤。
前置概念
阅读本文前,若您还不了解阿里云CLI,请参见什么是阿里云 CLI。
步骤一:安装阿里云CLI
使用阿里云CLI前,您需要先安装阿里云CLI。阿里云CLI为用户提供了Windows、Linux和macOS三种操作系统下的安装服务,请根据您使用设备的操作系统选择对应的安装服务。
-
Windows:安装CLI(Windows)。
-
Linux:安装/更新 CLI。
-
macOS:安装CLI(macOS)。
您也可使用阿里云提供的云命令行Cloud Shell调试阿里云CLI命令。关于云命令行的更多信息,请参见什么是云命令行。
步骤二:配置阿里云CLI
阿里云主账号拥有所有产品OpenAPI的管理和访问权限,风险很高。强烈建议您创建RAM身份,并依据最小化权限原则授予权限,使用RAM身份访问OpenAPI。
使用阿里云CLI之前,您需要在阿里云CLI中配置身份凭证、地域ID等信息。阿里云CLI支持多种身份凭证,详情请参见配置与管理身份凭证。本文操作以AK类型凭证为例,具体操作步骤如下:
-
创建一个RAM用户,并创建AccessKey,以便后续配置身份凭证使用。具体操作,请参见创建RAM用户及创建AccessKey。
-
为RAM用户授权。本文示例需授予RAM用户管理RAM的权限
AliyunRAMFullAccess。具体操作,请参见管理RAM用户的权限。 -
获取可用的地域ID,以便后续配置身份凭证使用。阿里云CLI将使用您指定的地域发起OpenAPI调用。可用地域详情,请参见服务接入点。
说明使用阿里云CLI过程中您可使用
--region选项指定地域发起命令调用,该选项在使用时将忽略默认身份凭证配置及环境变量设置中的地域信息。详情请参见OpenAPI命令可用选项。 -
使用RAM用户的AccessKey配置AK类型凭证,配置文件命名为
AkProfile。具体操作,请参见配置与管理身份凭证。
步骤三:生成CLI命令示例
-
在OpenAPI门户中,访问CreatePolicy调试地址。
-
在参数配置中输入请求参数,单击CLI示例页签,查看生成的CLI示例。
-
在云命令行中运行命令,或复制CLI示例。
步骤四:调用RAM OpenAPI
示例一:获取支持阿里云CLI调用的RAM OpenAPI列表
以下示例将为您展示使用--help选项获取RAM支持阿里云CLI调用OpenAPI列表。您也可在API概览中查看支持调用的OpenAPI。
-
执行命令。
aliyun ram --help -
输出结果。
Usage: aliyun ram <ApiName> --parameter1 value1 --parameter2 value2 ... Product: Ram (访问控制) Version: 2015-05-01 Available Api List: AddUserToGroup 调用 AddUserToGroup接口将 RAM用户添加到指定的用户组。 AttachPolicyToGroup 调用 AttachPolicyToGroup接口为指定用户组添加权限。 AttachPolicyToRole 调用 AttachPolicyToRole接口为指定角色添加权限。 AttachPolicyToUser 调用 AttachPolicyToUser接口为指定用户添加权限。 BindMFADevice 调用 BindMFADevice接口绑定多因素认证设备。 ChangePassword RAM用户调用 ChangePassword修改自己的控制台登录密码。 ClearAccountAlias 调用 ClearAccountAlias接口清除云账号别名。 CreateAccessKey 调用 CreateAccessKey接口为 RAM用户创建访问密钥。 CreateGroup 调用 CreateGroup接口创建用户组。 CreateLoginProfile 调用 CreateLoginProfile接口为一个 RAM用户启用Web控制台登录。 CreatePolicy 调用 CreatePolicy接口创建一个自定义权限策略。 CreatePolicyVersion 调用 CreatePolicyVersion接口为权限策略创建新的版本。
示例二:创建自定义权限策略
以下示例将为您展示,如何使用阿里云CLI的aliyun ram CreatePolicy命令,创建一个仅可查看青岛地域下ECS实例的自定义权限策略。
-
执行命令。
aliyun ram CreatePolicy \ --PolicyName 'View-ECS-instances-in-a-specific-region' \ --Description '查看指定地域ECS实例' \ --PolicyDocument '{"Statement": [{"Effect": "Allow","Action": "ecs:Describe*","Resource": "acs:ecs:cn-qingdao:*:instance/*"}],"Version": "1"}' -
返回示例。
{ "Policy": { "DefaultVersion": "v1", "Description": "查看指定地域ECS实例", "PolicyName": "View-ECS-instances-in-a-specific-region", "CreateDate": "2021-10-13T02:46:57Z", "PolicyType": "Custom" }, "RequestId": "BA34C54A-C2B1-5A65-B6B0-B5842C1DB4DA" }说明如果调用访问控制 RAM(Resource Access Management) OpenAPI后返回错误,您需要根据返回的错误码提示检查传入的请求参数及其取值是否正确。
您也可以记录下调用返回的RequestID或SDK报错信息,通过阿里云OpenAPI诊断平台进行自助诊断。