使用 AWS Systems Manager 按用户组限制交互式会话命令
去限制使用AWS Systems Manager Session Manager交互式会话时可以在其Amazon Elastic Compute Cloud(Amazon EC2)实例上运行的命令类型。允许的命令因组而异,这意味着您需要根据用户组允许不同的命令集。例如,一组工程师可能需要只读访问某些日志文件或工具,而另一组工程师可能需要访问权限才能在操作系统中执行程序包更新。在本文中,我将演示两组用户如何通过AWS Systems Manager Session Manager来执行不同的命令集。
解决方案概述
会话管理器使您可以在实例上启动会话并发出交互式命令。会话管理器使用Runbook样式的SSM文档集来定义这些命令。您可以使用AWS提供的SSM文档或创建自己的文档。例如,您可以使用AWS提供的AWS-StartInteractiveCommand文档来允许用户在其实例上发出任何命令。该文档通过将命令作为参数然后执行实例上提供的命令来执行此操作。要控制可以执行哪些命令,请创建一个自定义SSM文档,并将其与allowedPattern文档参数耦合,以定义一个正则表达式,该正则表达式可根据预定义的正则表达式模式来验证命令参数。如果命令与允许的模式不匹配,则执行将无法启动。通过使用IAM策略,您可以控制谁可以执行每个文档。
步骤1:创建两个SSM文档
首先创建两个文档。第一个文档允许只读访问权限来调查实例上的日志。
1. 在AWS Systems Manager控制台中,选择Documents。
2. 选择Create Command or Session。
3. 使用以下内容创建文档。
a. 对于”Name”,输入SSM-StartReadOnlyInteractiveCommand。
b. 对于“Document Type”,选择“会话文档”。
c. 对于”Content”,复制并粘贴以下内容:
接下来,创建第二个文档,该文档允许用户交互式地更新您实例上的包。请按照步骤1-3创建文档,但是使用以下值:
a. 对于”Name”,请输入SSM-StartUpdatePackagesInteractiveCommand。
b. 对于“Document Type”,选择“Session Document”。
c. 对于”Content”,复制并粘贴以下内容:
现在,这两个文档提供了可以在您的实例上运行的特定命令。每个文档都有一个名为command的参数和一个allowPattern正则表达式,该正则表达式仅允许指定一组特定的命令。
步骤2:创建IAM策略并将其应用到您的用户
现在,创建一个IAM策略,该策略指定谁可以使用这些文档,并阻止那些用户执行任何其他文档,包括默认的会话文档。您将在IAM中创建两个策略,这些策略可用于将主体限制为仅执行指定的文档。
第一个策略允许用户仅对您帐户中的所有实例执行SSM-StartReadOnlyInteractiveCommand文档。
1. 在AWS Identity and Access Management控制台中,选择“Policies”。
2. 选择”Create Policy”。
3. 在JSON标签中,复制并粘贴以下策略。相应地更新ARN帐户ID,分区和区域。
4. 选择查”Review Policy”。
5. 输入名称,然后创建策略。
接下来,创建第二个策略,该策略允许用户仅对您帐户中的所有实例执行SSM-StartUpdatePackagesInteractiveCommand文档。请按照前面的步骤创建策略,但是将以下策略复制并粘贴到JSON选项卡中。再次,相应地更新ARN帐户ID,分区和区域。
步骤3:从AWS CLI执行命令从AWS CLI执行命令。
本篇作者
相关文章
- 云原生之使用Docker部署Python应用
- Python异步: 什么是异步? (2)
- Python异步: 什么时候使用异步?(3)
- Python 异步: 协程(4)
- 劳保防护用品穿戴识别系统
- Python异步: 什么是异步编程? (1)
- Python用KShape对时间序列进行聚类和肘方法确定最优聚类数k可视化|附代码数据
- Python 内置界面开发框架 Tkinter入门篇 乙
- Python爬虫源码搭建量化交易合约系统开发理论讲解(成熟技术)
- 关于Python区块链项目技术开发详细流程及成熟源码搭建
- Pycharm有效免费激活码,Pycharm2023年1月软件官方给的永久免费激活码
- python文件路径中转义符引起的错误
- [python小脚本] 服务器日志监听执行告警动作
- Ansible之 AWX 使用 Ansible 与 API 通信
- 校园网自动认证python脚本的实现 - wuuconix's blog
- Ansible使用CallBack插件分析Playbook执行性能
- 如何用Python内置模块构建简单的REST服务、RPC服务
- 如何控制Ansible Playbook的执行顺序、运行选定的剧本资源
- 如何优化 Ansible Playbook 执行速度
- 提升Python程序性能的7个习惯