问题标签 [aws-session-manager]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4136 浏览

amazon-web-services - 无法通过 AWS Session Manager 工作获得 SSH 连接

我在私有子网中有一个 EC2 实例,我想在其中复制文件。

我想通过会话管理器使用安全文件复制而不是 S3 存储桶,如此处记录并此处宣布。

一个正在运行的 EC2 实例附加了一个包含该策略的实例配置文件AmazonEC2RoleforSSM。在我的本地计算机 (macOS 10.14.5) 上,AWS CLI (aws-cli/1.16.195) 和会话管理器插件 (1.1.26.0) 已安装并.ssh/config进行了相应配置。

  • 我可以使用 Web AWS 控制台上的会话管理器登录到实例。

  • 我可以使用带有aws ssm start-session --target i-XXX.

  • 我无法使用 SSH 登录实例。我尝试了 2 个不同的 OpenSSH 客户端版本:

OpenSSH_7.9p1:

当我运行ssh ec2-user@i-XXX它无限挂起。但是我可以connected在会话管理器中看到一个会话。当我 SIGTERM 进程时,我得到以下输出并且会话终止:

OpenSSH_8.0p1:

运行时ssh ec2-user@i-XXX出现以下错误,需要在会话管理器中手动终止会话:

0 投票
1 回答
851 浏览

python - 无法在 python 中解码 AWS Session Manager websocket 输出

希望你做得很好!

用例

我正在尝试在 AWS 上进行 PoC,用例是我们需要能够检查所有实例都可以通过 AWS Session Manager 访问的所有基础设施。

为了做到这一点,我将在 Python 3.7 中使用 Lambda,我目前在本地制作我的 PoC。我能够打开 websocket,发送令牌有效负载并获得包含外壳的输出。

问题是字节输出包含python decode 函数在很多测试字符编码中无法解码的字符,每次都有东西阻塞。

输出

这是发送有效负载后的输出:

打印(事件)

b'\x00\x00\x00toutput_stream_data \x00\x00\x00\x01\x00\x00\x01m\x1a\x1b\x9b\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x01\xb1\x0b?\x19\x99A\xfc\xae%\xb2b\xab\xfd\x02A\xd7C\xcd\xd8}L\xa8\xb2J\xad\x12 \xe3\x94\n\xed\xb81\xfa\xb6\x11\x18\xc2\xecR\xf66&4\x18\xf6\xbdd\x00\x00\x00\x01\x00\x00\x00\x10\x1b[? 1034hsh-4.2$ '

我已经尝试过的

我在stackoverflow上进行了很多研究,尝试使用ascii、cp1252、cp1251、cp1250、iso8859-1、utf-16、utf-8、utf_16_be进行解码,但是每次它都没有解码任何东西,或者它会导致错误,因为性格不详。

我也已经尝试过使用 chardet.detect,但是返回的编码不起作用,而且概率结果也很低。并且还尝试剥离 \x00 但剥离当时不起作用。

我已经知道 shell 输出有时可能包含着色字符和一些使它看起来像乱码的东西,但是在这里,我试图在它上面传递 colorama,试图将一些 ANSI 字符与一些正则表达式匹配,没有成功解码这个字节响应。

编码

这是我的 PoC 的代码,您可以随意使用它来尝试,您只需更改目标实例 id(您的实例需要运行最新的 amazon-ssm-agent)。

预期产出

在最终解决方案中,我希望能够通过 websocket 执行 curl http://169.254.169.254/latest/meta-data/instance-id之类的操作,并将命令输出的 instance-id 与目标进行比较,以验证该实例是可访问的。但我需要能够在实现之前解码 websocket 输出。

提前感谢您对此提供的任何帮助。

尽情享受您的一天!

0 投票
1 回答
4457 浏览

amazon-web-services - AWS Systems Manager - 会话管理器和运行命令“文档过程意外失败”

我正在使用会话管理器/运行命令来访问我的一些实例,它适用于某些实例而不适用于其他实例。

我对一些实例、相同的安全组、IAM 角色、使用相同代理版本安装的代理具有相同的配置,并且我已经验证这些实例可以通过 AWS CLI 访问aws ssm describe-instance-information --instance-information-filter-list key=InstanceIds,valueSet=instance-id

我可以启动会话并打开终端视图,延迟后会向我发送此错误或黑屏,

我已经尝试更新代理版本,通过 CLI、三重检查安全组、IAM 角色和差异验证代理是否已安装并处于活动状态,并且遇到了问题。

这是其他人看到的 AWS 错误还是我的配置中缺少某些内容?我可能遗漏了一些东西,但我所看到的一切都显示了两个具有相同属性的实例,其中一个与 SSM 会话管理器一起使用,而另一个则不。

0 投票
1 回答
879 浏览

amazon-web-services - 如何建立 AWs Systems Manager PortForwarding 会话?未知会话类型端口

我正在尝试对 AWS Systems Manager Session Manager Port Forwarding 会话进行 POC,但即使启动正常会话,我似乎也无法启动 PortForwarding 会话。

会话开始并按预期工作 aws ssm start-session --target i-xxxxxxxxxxx

IAM 角色具有 AWS 策略 AmazonSSMManagedInstanceCore 和会话管理器策略

我希望会话建立隧道并开始将端口 80 转发到我的本地端口 3001

相反,我收到以下错误:

0 投票
1 回答
651 浏览

amazon-web-services - VSCode open-ssh 失败:AWS(找不到SessionManagerPlugin)

感谢您的阅读。

我成功设置了 ssh 配置文件以登录到 AWS。

当我尝试在本地终端中进行 ssh 登录时,它运行良好,但是当我尝试使用我的 VSCode Open-SSH 扩展时,除了第一次尝试外,它总是失败。

输出是这样的:

从我的终端环境可以很好地访问所有 aws 命令。

先感谢您。

0 投票
1 回答
647 浏览

amazon-web-services - ListAssociation 的 AWS Session Manager 异常

在 AWS 上对会话管理器进行健康检查时遇到以下错误:

相信这是由于实例 IAM 策略授予的权限不足造成的。但是为了解决这个错误,我应该授予什么额外的访问权限?

以下是从 AWS 文档复制的当前内联策略。

}

0 投票
1 回答
480 浏览

amazon-web-services - 我想限制 aws 会话管理器中的命令

我正在尝试在会话管理器模式下从一个实例访问文档数据库的 mongo shell,但是在使用会话管理器时。我想限制所有其他命令,除了命令 mongo。

我浏览了一些 aws 文档,我认为会话文档应该可以帮助我实现目标,但我找不到任何启用命令 mongo only 的语法。

0 投票
1 回答
368 浏览

amazon-web-services - 如何使用安装了 Session Manager 的 CloudFormation 创建 EC2 实例?

我想使用 CloudFormation 创建一个 EC2 实例。我还想使用会话管理器从 Ec2 实例运行一个 powershell 脚本(而不是我必须 RDP 进入机器并以这种方式运行)

为了让 Session Manager 开箱即用(换句话说,在创建堆栈之后),CloudFormation 模板究竟包含什么内容 这里的想法是

  1. 在现有 VPC中为Windows Ec2 实例创建堆栈
  2. 创建堆栈后,在 AWS 控制台中运行会话管理器,执行 powershell 脚本

任何见解都值得赞赏。提前感谢您对此的帮助。

0 投票
2 回答
1968 浏览

amazon-web-services - 为什么 AWS CloudWatch 加密日志组会中断会话管理器?

最近附加了来自 AWS KMS 的密钥,用于加密 AWS Systems Manager Session Manager 的 CloudWatch 日志组。现在我无法连接到任何会话。

这是什么错误以及如何解决?

由于以下原因,您的会话已终止: ----------ERROR------- 启动握手时遇到错误。Fetching data key failed: Unable to retrieve data key, Error when decrypting data key AccessDeniedException: 密文指的是不存在的客户主密钥,在该区域不存在,或者您不被允许访问。状态码:400,请求ID:

附加到日志组时,密钥肯定存在并且工作正常。会话管理器在尝试加密它们之前也运行良好。我需要在某处添加到策略中的额外权限吗?

0 投票
1 回答
555 浏览

amazon-web-services - 无法使用 Session Manager 连接 EC2 实例

我正在使用 Cloudformation 将 EC2 实例部署到不同的 VPC 中。使用 cloudformation 我创建了一个角色和角色配置文件并将其附加到 EC2 实例 [有问题的角色是 AmazonEC2RoleforSSM ]。然而,我无法使用理智连接到 EC2。这是 Cloudformation 代码:AWSTemplateFormatVersion:2010-09-09 描述:测试和开发环境

还附上了错误截图。 错误截图 PS:我尝试手动执行它并且它有效。似乎不明白我哪里出错了,堆栈已成功构建,所有资源也已部署。

我使用的是 Ubuntu 18.04 LTS Image,它预装了 Session Manager