blinksh / blink

Blink Mobile Shell for iOS (Mosh based)
https://blink.sh
GNU General Public License v3.0
6.13k stars 570 forks source link

AWS SSM Support #1330

Open andymac4182 opened 2 years ago

andymac4182 commented 2 years ago

AWS offers Session Manager as a way to connect to backend instances without needing to expose any connectivity. It would be amazing if I could use blink to connect to instances inside of profiles. There is also the ability to proxy ports and combined with the existing SSH port forwarding ability would enable a large amount of workflows to move over to blink.

Session Manager is also what powers AWS ECS Exec where you can execute commands inside your containers running on Fargate.

From my understanding there is two major components to Session Manager. The plugin which does a bunch of the communication https://github.com/aws/session-manager-plugin and the AWS CLI that initiates the connection then passes it to the plugin https://github.com/aws/aws-cli/blob/develop/awscli/customizations/sessionmanager.py

carloscabanero commented 2 years ago

This is really interesting. We do not have the bandwidth at the moment, as we are working to release Blink 15, but we can try to finance the port. If anyone can or knows someone who thinks could port this, please get in touch.

andymac4182 commented 2 years ago

Leaving this here as there is two other projects that might help with what to do https://github.com/gjbae1212/gossm and https://github.com/tedsmitt/ecsgo.

carloscabanero commented 1 year ago

I was wondering. There are two options to go about this:

So I guess the question is, what is the scenario and how deep do we need to go in our integration, and whether or not using Build itself as a “bridge” for that tooling, offering all features, would be a plausible solution.

geofflittle commented 1 year ago

Separate but related user story: As a Blink user, I want to use the AWS commands in the Blink shell to turn on and off my AWS EC2 instance before and after (respectively) my development session in Blink. This will simplify my workflow, because I won't need to leave Blink (today, I have other ways outside of Blink to start and stop my EC2 instance), and it will help me save money (and the planet!) by shutting down things I'm not using.