Skip to content

aws.greengrass.SecureTunnelling component should support custom localproxy -d ports #193

@TSNoble

Description

@TSNoble

Is your feature request related to a problem? Please describe.
The localproxy supports multiple services, however, the aws.greengrass.SecureTunneling component only appears to be compatible with simple (SSH) connections.

Describe the solution you'd like
I'd like to be able to specify more complex localproxy configurations via the aws.greengrass.SecureTunneling component, preferrably through the component configuration.

Describe alternatives you've considered
We're currently trying to set up a combination of SSH & VNC connections over Secure Tunneling. Since the aws.greengrass.SecureTunneling component only appears to support SSH, we are having to manually pull and build the localproxy code, subscribe to the tunnel token MQTT topic, and start the localproxy with the token and desired destination ports, all deployed via a custom greengrass component, which presumably does most of what the AWS component already does, just to pass in a single parameter that is already supported by the localproxy code. This is a lot of overhead.

Additional context
https://docs.aws.amazon.com/greengrass/v2/developerguide/secure-tunneling-component.html#secure-tunneling-component-configuration

Admittedly, I'm not sure if this is the right repository to raise the issue. The localproxy code already supports this feature, but it appears the greengrass component does not (and simply launches the localproxy with SSH only in mind). I can't find any reference to the component's source code.

Impact
This would allow anyone wishing to establish non-SSH connections via Secure Tunneling to do so with minimal custom code and using the reccomended. Backwards compatibility would be preserved, so existing users of the component would not be affected

Implementation ideas (optional)

  • Modify the aws.greengrass.SecureTunelling component to accept destination port mappings in configuration
    • This could be through an additional parameter e.g. {"ports": "SSH=22,VNC=5900"}
    • This should default to {"ports": "SSH=22"} for backwards compatibility
  • Modify the component source code to simply pass this port mapping via the -d parameter to the localproxy when launching it

Are you willing to work on this feature?

  • Yes, I'm willing to submit a PR for this feature
  • No, I'm just suggesting an idea

Checklist

  • I have searched the existing issues to make sure this is not a duplicate
  • I have provided all the necessary information for this feature request
  • I understand that this is just a request and may not be implemented since Local Proxy is just a reference implementation for AWS IOT Secure Tunneling

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions