使用标签控制云助手的命令执行

简介: 子账号或相关角色只能将云助手命令执行在带有某种标签的ECS实例上,否则执行不成功。

简介

子账号或相关角色只能将云助手命令执行在带有某种标签的ECS实例上,否则执行不成功。

设计

子账号或相关角色权限限制如下:

  1. 只能将命令执行到带有标签(user:zhangsan)的实例上
  2. 只能将文件传输到带有标签(user:zhangsan)的实例上
  3. 可以创建、删除、修改以及查询云助手命令和执行结果

权限设计如下:

要求发送命令/文件的实例带有标签(user:zhangsan):

{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ecs:InvokeCommand",
                "ecs:RunCommand",
                "ecs:StopInvocation",
                "ecs:SendFile"
            ],
            "Resource": "acs:ecs:*:*:instance/*",
            "Condition": {
                "StringEquals": {
                    "acs:ResourceTag/user": "zhangsan"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "ecs:InvokeCommand",
                "ecs:RunCommand",
                "ecs:StopInvocation",
                "ecs:SendFile"
            ],
            "Resource": "acs:ecs:*:*:command/*"
        }
    ]
}

查询标签、实例以及云助手资源的权限:

{
    "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": "*"
        }
    ]
}

验证

  1. 将命令执行到不带有标签(user:zhangsan)的实例上:

执行结果符合预期:

  1. 将命令执行到带有标签(user:zhangsan)的实例上:

执行成功

常见问题

如果权限控制未生效,请检查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": "*"
        }
    ]
}
相关实践学习
通义万相文本绘图与人像美化
本解决方案展示了如何利用自研的通义万相AIGC技术在Web服务中实现先进的图像生成。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
JavaScript 前端开发
layui用layer.open打开子页面并获取子页面的ueditor富文本编辑器的内容
该内容描述了一个Web应用的交互流程,其中父页面通过调用子页面的JavaScript函数来获取富文本编辑器的内容。子页面包含一个富文本编辑器和一个`callbackdata`函数,用于返回编辑器的文本内容。父页面使用`layer.open`打开子页面作为弹窗,并在用户点击提交时,访问子页面的`callbackdata`获取编辑器内容,同时检查其他表单字段,如类型、标题等是否为空,以确保数据完整。
956 0
|
Java 数据库连接 Spring
Spring与Mybatis整合&&aop整合pageHelper分页插件2
Spring与Mybatis整合&&aop整合pageHelper分页插件2
121 0
|
前端开发 Java UED
瞬间变身高手!JSF 与 Ajax 强强联手,打造极致用户体验的富客户端应用,让你的应用焕然一新!
【8月更文挑战第31天】JavaServer Faces (JSF) 是 Java EE 标准的一部分,常用于构建企业级 Web 应用。传统 JSF 应用采用全页面刷新方式,可能影响用户体验。通过集成 Ajax 技术,可以显著提升应用的响应速度和交互性。本文详细介绍如何在 JSF 应用中使用 Ajax 构建富客户端应用,并通过具体示例展示 Ajax 在 JSF 中的应用。首先,确保安装 JDK 和支持 Java EE 的应用服务器(如 Apache Tomcat 或 WildFly)。
130 0
通过easyx窗口实现贪吃蛇
通过easyx窗口实现贪吃蛇
267 0
|
XML Java 数据格式
SpringBoot:第四篇 配置修改
SpringBoot:第四篇 配置修改
86 0
|
存储 缓存 JavaScript
vue3 专用 indexedDB 封装库,基于Promise告别回调地狱
IndexedDB 是一种底层 API,用于在客户端存储大量的结构化数据(也包括文件/二进制大型对象(blobs))。该 API 可以使用索引实现对数据的高性能搜索。
609 0
vue3 专用 indexedDB 封装库,基于Promise告别回调地狱
|
Android开发 数据安全/隐私保护
安卓系统home键监听及系统锁屏状态监听___Android提高篇
安卓系统home键监听及系统锁屏状态监听___Android提高篇
1053 0
|
监控 Java 数据库
从实战到原理,线程池的各类使用场景整合(下)
从实战到原理,线程池的各类使用场景整合(下)
从实战到原理,线程池的各类使用场景整合(下)
|
Web App开发 .NET 数据库
学习ASP.NET Core Razor 编程系列十四——文件上传功能(二)
原文:学习ASP.NET Core Razor 编程系列十四——文件上传功能(二) 学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.
1190 0