{"id":22042929,"url":"https://github.com/jmoney/security-group-ingress","last_synced_at":"2026-04-20T05:32:02.649Z","repository":{"id":145444234,"uuid":"334484282","full_name":"jmoney/security-group-ingress","owner":"jmoney","description":"AWS Lambda written in go that manages security group ingress rules for public CDN.","archived":false,"fork":false,"pushed_at":"2024-01-01T03:03:39.000Z","size":6208,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-16T17:11:34.050Z","etag":null,"topics":["aws","github-site","license-management","mkdocs"],"latest_commit_sha":null,"homepage":"https://www.jmoney.dev/security-group-ingress/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jmoney.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-01-30T18:32:51.000Z","updated_at":"2023-08-07T03:00:44.000Z","dependencies_parsed_at":"2024-06-20T23:27:07.794Z","dependency_job_id":null,"html_url":"https://github.com/jmoney/security-group-ingress","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmoney%2Fsecurity-group-ingress","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmoney%2Fsecurity-group-ingress/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmoney%2Fsecurity-group-ingress/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmoney%2Fsecurity-group-ingress/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jmoney","download_url":"https://codeload.github.com/jmoney/security-group-ingress/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245111927,"owners_count":20562511,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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","github-site","license-management","mkdocs"],"created_at":"2024-11-30T12:13:49.327Z","updated_at":"2026-04-20T05:31:57.624Z","avatar_url":"https://github.com/jmoney.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Security Group Ingress\n\n## Overview\n\nThere are three components to the ingress manager.\n\n1. Cloudwatch Event Trigger\n2. Lambda\n3. Security Group\n\n![security-group-ingress](./docs/img/securitygroup-ingress.png)\n\nThe cloudwatch event trigger is exactly what one would think, it fires an event every 1 day that triggering a lambda.\n\nThe lambda is a basic extract, transform, and load(ETL) process.  The extract phase extracts IPs from two sources.\nSource #1 is the public IP source. This is the source of truth list.  Source #2 is the security group ingress rules.\nThe ingress rules is what is actually being allowed.  The Lambda then transforms these two lists into two other lists.\nList #1 is a left outer join to determine which IPs need to be added.  List #2 is a right outer join to determine\nwhich IPs need to be removed.  Finally, the last phase is the load phase.  The lambda takes the IPs to be added and\nauthorizes them on the security group and takes the iPs to be removed and revokes them on the security group.\n\nThe lambda currently only manages ipv4 ingress and not the ipv6 ingress.\n\n## Testing\n\n```bash\ngo test -v ./...\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjmoney%2Fsecurity-group-ingress","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjmoney%2Fsecurity-group-ingress","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjmoney%2Fsecurity-group-ingress/lists"}