{"id":34205142,"url":"https://github.com/zshamrock/aws-ip","last_synced_at":"2026-03-12T01:35:29.106Z","repository":{"id":146836351,"uuid":"342511313","full_name":"zshamrock/aws-ip","owner":"zshamrock","description":"Sync/set AWS security group entry (by description) with current user's local public IP address","archived":false,"fork":false,"pushed_at":"2021-03-02T08:08:20.000Z","size":21,"stargazers_count":1,"open_issues_count":7,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-18T23:23:30.003Z","etag":null,"topics":["aws","cli","golang","security-groups"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zshamrock.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-02-26T08:31:03.000Z","updated_at":"2021-03-02T21:39:37.000Z","dependencies_parsed_at":null,"dependency_job_id":"09875817-747b-4dce-945d-fcf4b6dbcadf","html_url":"https://github.com/zshamrock/aws-ip","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/zshamrock/aws-ip","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zshamrock%2Faws-ip","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zshamrock%2Faws-ip/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zshamrock%2Faws-ip/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zshamrock%2Faws-ip/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zshamrock","download_url":"https://codeload.github.com/zshamrock/aws-ip/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zshamrock%2Faws-ip/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30412088,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-12T00:40:14.898Z","status":"ssl_error","status_checked_at":"2026-03-12T00:40:08.439Z","response_time":84,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","cli","golang","security-groups"],"created_at":"2025-12-15T19:40:11.648Z","updated_at":"2026-03-12T01:35:29.099Z","avatar_url":"https://github.com/zshamrock.png","language":"Go","readme":"# aws-ip\n\nSync/set AWS security group entry (by description) with current user's local public IP address. \n\nI.e. if the access to AWS resources is restricted by the IP address, and the user/developer doesn't have fixed static IP \naddress or user works frequently from different locations with different IP addresses.\n\n```\nNAME:\n   aws-ip - Sync/set AWS security group entry (by description) with current user's local public IP address\n\nUSAGE:\n   aws-ip     \n        --group-name    \u003ccomma separated affected EC2 security groups\u003e \n        --port          \u003cport\u003e  \n        --location      \u003cfree text/code of the current user's location, like home, office, coworking, etc.\u003e\n\nVERSION:\n   1.0.0\n\nAUTHOR:\n   (c) Aliaksandr Kazlou\n\nCOMMANDS:\n     help, h  Shows a list of commands or help for one command\n\nGLOBAL OPTIONS:\n   --group-name value  comma separated affected EC2 security groups\n   --port value        port number (default: 0)\n   --location value    free text/code of the current user's location, like home, office, coworking, etc.\n   --help, -h          show help\n   --version, -v       print the version\n```\n\nTable of Contents\n=================\n\n* [Idea](#idea)\n* [Installation](#installation)\n* [Usage](#usage)\n* [AWS Connection](#aws-connection)\n* [Improvements](#improvements)\n* [Copyright](#copyright)\n\n## Idea\n\nTool locates the entry within specified EC2 security group name(s) by description and updates it. The trick is around \ndescription property. Where description will be set to \n\n    \u003cIAM username implicitly derived from the used AWS profile\u003e-\u003clocation\u003e\n\nwhere `location` is something user provides, like home, office, coworking, etc.\n\nIt solves the problem if the access to the AWS resource (like DB, for example) is restricted by the IP address, and \nuser/developer doesn't have fixed static IP address (which is changing frequently) or user works frequently from \ndifferent locations with different IP addresses.\n\n## Installation\n\nUse the `go` command:\n\n    $ go get github.com/zshamrock/aws-ip\n\n## Usage\n\n    $ aws-ip --group-name db --port 3306 --location home\n\n## AWS Connection\n\nConnection to the AWS is established using profile credentials. Currently it relies on the environment variables entirely,\ni.e. `$AWS_DEFAULT_PROFILE` or `$AWS_PROFILE`.\n\n## Improvements\n\nAdditionally, can take into the account `$AWS_IP_DEFAULT_SECURITY_GROUP_NAME`, so `--group-name` can be omitted, and set only once.\n\nAlternative to `--port` could be `--service` option with values like `mysql`, `postgresql`, etc., and so you default defined port for these services.\n\n### Commands\n\nMight be good to add the following additional commands:\n\n- `list-locations` - lists user's available locations\n- `ip` - prints user's current local IP address\n- `rm` - removes the corresponding entry\n\n### Extra features\n\nMight be able auto-delete of the entry (after timeout), if user assigns IP of the public wi-fi, like cafe, library, airport, etc., while needs only temporal access from this location. And this could be the default behaviour, unless `--durable` flag is set.\n\n## Copyright\n\nCopyright (C) 2021-2021 by Aliaksandr Kazlou.\n\n`aws-ip` is released under MIT License.                                                                                                                       \nSee [LICENSE](https://github.com/zshamrock/aws-ip/blob/master/LICENSE) for details.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzshamrock%2Faws-ip","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzshamrock%2Faws-ip","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzshamrock%2Faws-ip/lists"}