我正在使用会话管理器/运行命令来访问我的一些实例,它适用于某些实例,但不适用于其他实例。
我对一些实例具有相同的配置、相同的安全组、IAM 角色、使用相同代理版本安装的代理,并且我已使用以下内容通过 AWS CLI 验证了这些实例:
aws ssm describe-instance-information \
--instance-information-filter-list key=InstanceIds,valueSet=instance-id
Run Code Online (Sandbox Code Playgroud)
我可以启动会话,它会打开终端视图,并在延迟后向我发送此错误或黑屏,
Your session has been terminated for the following reasons:
document process failed unexpectedly: document worker timed out,
check [ssm-document-worker]/[ssm-session-worker] log for the crash reason
Run Code Online (Sandbox Code Playgroud)
我尝试过更新代理版本、通过 CLI 验证代理是否已安装并处于活动状态、三重检查安全组、IAM 角色和差异,但遇到了困难。
这是其他人看到的 AWS 错误还是我的配置中遗漏了某些内容?我可能遗漏了一些东西,但我所看到的所有内容都显示了两个具有相同属性的实例,其中一个实例适用于 SSM 会话管理器,而另一个实例则不适用。
我尝试在 CI 中使用会话管理器(使用普通配置,所以没有什么太花哨的)。
所有输入(按键等)和配置(用户/策略/按键)均有效。我成功在自己的笔记本电脑上启动会话。
但在我的管道上我收到以下消息
Starting session with SessionId: xxxx-xxxxxxx
$ **Cannot perform start session: EOF**
Run Code Online (Sandbox Code Playgroud)
这个外壳有关系吗?
作为参考,CI 上使用的工具:
我将策略:AmazonSSMManagedInstanceCore 添加到 Windows 实例(正在运行 SSM 代理)的实例配置文件中...但它没有显示在会话管理器下。
它一直显示:“没有与所需 IAM 角色关联的实例。” 知道是什么原因造成的吗?
(我也尝试过使用 amazon linux 2 实例——结果相同)。
编辑:是的,该实例位于私有子网中,可能无法访问互联网——所以这可能是问题。
当我浏览文档时,使用会话管理器我们可以连接私有子网中的实例,而无需堡垒主机本身[从本地到私有 ec2 的直接端口转发]。
但在 RDS 情况下,即使我们使用会话管理器建立连接,我们也需要在本地和私有 RDS 之间有一个 EC2 实例。
你能解释一下为什么会这样吗?请分享一些解释这一点的文件。
amazon-web-services amazon-rds aws-session-manager bastion-host
我在要复制文件的专用子网中有一个EC2实例。
取而代之的是S3斗我想通过会话管理器使用安全的文件复制作为记录在这里和公布在这里。
运行中的EC2实例附带有包含策略的实例配置文件AmazonEC2RoleforSSM。在我的本地计算机(macOS 10.14.5)上,AWS CLI(aws-cli / 1.16.195)和会话管理器插件(1.1.26.0)已安装并.ssh/config进行了相应配置。
我可以在Web AWS控制台上使用会话管理器登录实例。
我可以使用CLI使用CLI登录实例aws ssm start-session --target i-XXX。
我无法使用SSH登录到实例。我尝试了2种不同的OpenSSH客户端版本:
OpenSSH_7.9p1:
当我运行时,ssh ec2-user@i-XXX它无限挂起。但是我可以connected在会话管理器中看到一个会话。当我对SIGTERM进行处理时,我得到以下输出,并且会话终止:
Command '['session-manager-plugin', '{"SessionId": "XXX", "TokenValue": "XXX", "StreamUrl": "wss://ssmmessages.eu-central-1.amazonaws.com/v1/data-channel/XXX?role=publish_subscribe", "ResponseMetadata": {"RetryAttempts": 0, "HTTPStatusCode": 200, "RequestId": "XXX", "HTTPHeaders": {"x-amzn-requestid": "XXX", "date": "Wed, 07 Aug 2019 08:47:23 GMT", "content-length": "579", "content-type": "application/x-amz-json-1.1"}}}', 'eu-central-1', 'StartSession', u'cc', '{"DocumentName": "AWS-StartSSHSession", "Target": "i-XXX", "Parameters": {"portNumber": ["22"]}}', u'https://ssm.eu-central-1.amazonaws.com']' returned non-zero exit status -13
Run Code Online (Sandbox Code Playgroud)
OpenSSH_8.0p1:
运行时ssh …
SageMaker 笔记本没有用于 ssh 连接的“官方”方式,尽管可以使用 ngrok 找到相关说明。
是否可以使用会话管理器代替?尽管 SageMaker Notebook 看起来像 ec2,但 arn 的启动方式不同,但它arn:aws:sagemaker以arn:aws:ec2.
我通过 aws cli 尝试过,但我得到了An error occurred (TargetNotConnected) when calling the StartSession operation:
我经常需要将大文件移入和移出通过会话管理器连接的 EC2 实例。AWS 内的文件传输速度很快,本地计算机与非 AWS 资产之间通过光纤连接传输文件的速度也很快。
然而,EC2 通过 Session Manager 的上行和下行速度非常慢 — 大约 1MB/s。我通过会话管理器代理 ssh,这允许我使用常规实用程序来移动事物。这是会话管理器的事情,我如何使用它的功能,还是其他什么?
如果这是我能做的最好的事情,我将不得不处理它,但如果有可用的方法,我很乐意使用更好的方法。
我正在尝试在启动会话后获取当前的 aws ssm sessionId。我可以看到当我启动它时它会被打印出来,就像这样
\nStarting session with SessionId: test@test.com-0ftz59d2285d67fb5\nRun Code Online (Sandbox Code Playgroud)\n但我不知道这是从哪里来的。
\n我还可以看到我可以从 ssm-session 工作人员那里获取它,但我正在尝试以更干净的方式获取它:
\n[ssm-user@ip-100-66-11-11 bin]$ sudo systemctl status amazon-ssm-agent\n\xe2\x97\x8f amazon-ssm-agent.service - amazon-ssm-agent\n Loaded: loaded (/usr/lib/systemd/system/amazon-ssm-agent.service; enabled; vendor preset: enabled)\n Active: active (running) since Mon 2021-03-08 09:54:44 UTC; 2h 48min ago\n Main PID: 3092 (amazon-ssm-agen)\n CGroup: /system.slice/amazon-ssm-agent.service\n \xe2\x94\x9c\xe2\x94\x80 875 /usr/bin/ssm-session-worker test@test.com-0ftz59d2285d67fb5 i-0a7bb9a9064ccc96\n \xe2\x94\x9c\xe2\x94\x80 886 bash -l\n \xe2\x94\x9c\xe2\x94\x803092 /usr/bin/amazon-ssm-agent\n \xe2\x94\x94\xe2\x94\x803272 /usr/bin/ssm-agent-worker\nRun Code Online (Sandbox Code Playgroud)\n linux amazon-web-services aws-ssm amazon-linux-2 aws-session-manager
我创建两个 VPC,每个 VPC 拥有一个私有子网,每个私有子网拥有一个 EC2 实例(具有 IAM 策略“AmazonSSMManagedInstanceCore”的角色)。这两种环境的唯一区别在于是否有 NAT 网关。
我尝试通过会话管理器连接这两个 EC2 实例。具有 NAT 网关的 VPC 中的 EC2 实例可以访问,但其他 EC2 实例无法访问。
问题
amazon-ec2 amazon-web-services amazon-vpc aws-session-manager aws-nat-gateway