RAM用户或RAM角色只能将云助手命令执行在带有某种标签的ECS实例上,否则执行失败。本文以RAM用户为例,为您介绍对应的操作方法、自定义权限策略内容及常见问题。
操作步骤
- 使用阿里云账号或RAM管理员创建RAM用户。 - 具体操作,请参见创建RAM用户。 
- 使用阿里云账号或RAM管理员创建自定义权限策略。 
- 使用阿里云账号或RAM管理员为RAM用户授权。 - 具体操作,请参见为RAM用户授权。 
- 使用RAM用户登录ECS管理控制台云助手页面,验证权限策略是否生效。 - 将命令执行到不带有标签 - user:alice的ECS实例上,执行失败。
- 将命令执行到带有标签 - user:alice的ECS实例上,执行成功。
 - 关于RAM用户登录控制台的操作方法,请参见RAM用户登录阿里云控制台。 
权限策略示例1:要求发送命令、文件的ECS实例带有指定标签
本示例中,仅允许RAM用户将云助手命令执行到带有标签user:alice的ECS实例上、将文件传输到带有标签user:alice的ECS实例上。
{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ecs:InvokeCommand",
                "ecs:RunCommand",
                "ecs:StopInvocation",
                "ecs:SendFile"
            ],
            "Resource": "acs:ecs:*:*:instance/*",
            "Condition": {
                "StringEquals": {
                    "acs:ResourceTag/user": "alice"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "ecs:InvokeCommand",
                "ecs:RunCommand",
                "ecs:StopInvocation",
                "ecs:SendFile"
            ],
            "Resource": "acs:ecs:*:*:command/*"
        }
    ]
}权限策略示例2:查询标签、查询ECS实例以及管理云助手命令
本示例中,仅允许RAM用户查询标签、查询ECS实例以及管理云助手命令。
{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ecs:DescribeTag*",
                "ecs:DescribeInstance*",
                "ecs:DescribeCommands",
                "ecs:CreateCommand",
                "ecs:DeleteCommand",
                "ecs:ModifyCommand",
                "ecs:DescribeInvocationResults",
                "ecs:DescribeSendFileResults",
                "ecs:DescribeInstances",
                "ecs:DescribeCloudAssistantStatus",
                "ecs:DescribeInvocations",
                "ecs:DescribeResourceByTags",
                "ecs:DescribeTagKeys",
                "ecs:DescribeTags",
                "ecs:ListTagResources",
                "ecs:DescribeManagedInstances"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "oos:ListSecretParameters",
            "Resource": "*"
        }
    ]
}常见问题
如果权限策略未生效,请检查RAM用户的权限是否对以下几个Action设置了Allow策略:
["ecs:InvokeCommand","ecs:RunCommand", "ecs:StopInvocation","ecs:SendFile"]
例如:存在如下所示的权限策略时,您需要移除RAM用户的这些权限策略。
{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ecs:InvokeCommand",
                "ecs:RunCommand",
                "ecs:StopInvocation",
                "ecs:SendFile"
            ],
            "Resource": "*"
        }
    ]
}该文章对您有帮助吗?