{"id":19188755,"url":"https://github.com/miquido/ecs-bastion","last_synced_at":"2026-03-19T08:36:12.004Z","repository":{"id":202634158,"uuid":"703888665","full_name":"miquido/ECS-Bastion","owner":"miquido","description":null,"archived":false,"fork":false,"pushed_at":"2025-07-01T10:59:55.000Z","size":140,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-01T11:49:53.161Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/miquido.png","metadata":{"files":{"readme":"README.md","changelog":"changes.tf","contributing":null,"funding":null,"license":null,"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":"2023-10-12T05:54:03.000Z","updated_at":"2025-07-01T10:59:59.000Z","dependencies_parsed_at":"2023-11-17T18:30:25.405Z","dependency_job_id":"2dc9e9d4-fef2-4bb6-91a8-f443ccc5130e","html_url":"https://github.com/miquido/ECS-Bastion","commit_stats":null,"previous_names":["miquido/ecs-bastion"],"tags_count":59,"template":false,"template_full_name":null,"purl":"pkg:github/miquido/ECS-Bastion","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miquido%2FECS-Bastion","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miquido%2FECS-Bastion/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miquido%2FECS-Bastion/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miquido%2FECS-Bastion/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/miquido","download_url":"https://codeload.github.com/miquido/ECS-Bastion/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/miquido%2FECS-Bastion/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29924676,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-27T19:37:42.220Z","status":"online","status_checked_at":"2026-02-28T02:00:07.010Z","response_time":90,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2024-11-09T11:25:56.088Z","updated_at":"2026-02-28T03:47:25.419Z","avatar_url":"https://github.com/miquido.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- markdownlint-disable --\u003e\n# ecs-bastion \u003ca href=\"https://miquido.com\"\u003e\u003cimg align=\"right\" src=\"https://cdn.miquido.dev/miquido-logo.png\" width=\"150\" /\u003e\u003c/a\u003e\n\n\u003c!-- markdownlint-restore --\u003e\n\n\u003c!--\n\n\n\n\n  ** DO NOT EDIT THIS FILE\n  **\n  ** This file was automatically generated by the `miquido/build-harness`.\n  ** 1) Make all changes to `README.yaml`\n  ** 2) Run `make init` (you only need to do this once)\n  ** 3) Run`make readme` to rebuild this file.\n  **\n  **\n\n\n\n\n\n--\u003e\n\nCreates a service on ECS that has ssh open to enable tunneling.\n\n\n\n\n\n\n## Usage\n\n```hcl\n  module \"ecs-bastion\" {\n    source            = \"git::ssh://git@gitlab.com/miquido/terraform/ecs-bastion.git?ref=1.1.23\"\n    aws_region        = var.aws_region\n    ecs_cluster_arn   = aws_ecs_cluster.main.arn\n    environment       = var.environment\n    project           = var.project\n    public_ssh_keys   = \u003c\u003cEOT\n                        ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBoJKBh1ECj1RGt/fgiQz/DvLwW9NzDmR3RAhB5Rb1BM test\n                        ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC/5jNq77nbp5FoRnK7lHHdHhCFa8jdJ8QzLF/M3b7nt0ansRwxgsMJMUAiHNdYvoR3UwmOgtUQzBasKfbML8hK/f0crSE0sh/cXvYBC+3jWN0sT3zW307w4po9KS+RJpP8mEu0vYh3Ua4+O06ePuagD5JfSNLJ8d6xi2QCY87cKENjs4ysupwN/+/VH5nWHerVrFKQ4oW/ARYHGfaL4N1npvSK9m2nnDy1uX+ti3GGys9/2GMW0wPbjrI+Z1sc252QdgxNGn/zT7lKWCn+00mAcov8wkclwTl3RQFSW2ni/3saFyBUi/9CiRvKtjLCdxks3+K2tTdHNUaAajlR7UfB marekmoscichowski@Mareks-MacBook-Pro.local\n    EOT\n    public_subnet_ids = module.vpc.public_subnet_ids\n    route53_zone_id   = aws_route53_zone.default.id\n    security_groups   = [module.vpc.vpc_default_security_group_id]\n    vpc_id            = module.vpc.vpc_id\n    web_domain        = \"bastion.${local.app_web_domain}\"\n    whitelist_ips = [\n      {\n        description = \"ip Marka\",\n        cidr        = \"178.43.248.169/32\",\n      }\n    ]\n    tags              = var.tags\n  }\n```\n\n\n\n\n\n\n\u003c!-- markdownlint-disable --\u003e\n## Makefile Targets\n```text\nAvailable targets:\n\n  help                                Help screen\n  help/all                            Display help for all targets\n  help/short                          This help short screen\n  lint                                Lint terraform code\n\n```\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- markdownlint-disable --\u003e\n## Requirements\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"requirement_terraform\"\u003e\u003c/a\u003e [terraform](#requirement\\_terraform) | \u003e= 0.13 |\n| \u003ca name=\"requirement_aws\"\u003e\u003c/a\u003e [aws](#requirement\\_aws) | \u003e= 4.7 |\n\n## Providers\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"provider_archive\"\u003e\u003c/a\u003e [archive](#provider\\_archive) | n/a |\n| \u003ca name=\"provider_aws\"\u003e\u003c/a\u003e [aws](#provider\\_aws) | \u003e= 4.7 |\n\n## Modules\n\n| Name | Source | Version |\n|------|--------|---------|\n| \u003ca name=\"module_bastion_pubkeys\"\u003e\u003c/a\u003e [bastion\\_pubkeys](#module\\_bastion\\_pubkeys) | cloudposse/s3-bucket/aws | 4.7.0 |\n| \u003ca name=\"module_ecs-bastion-task-definition\"\u003e\u003c/a\u003e [ecs-bastion-task-definition](#module\\_ecs-bastion-task-definition) | git::https://github.com/cloudposse/terraform-aws-ecs-container-definition.git | 0.61.1 |\n| \u003ca name=\"module_ecs_alb_service_task\"\u003e\u003c/a\u003e [ecs\\_alb\\_service\\_task](#module\\_ecs\\_alb\\_service\\_task) | git::https://github.com/cloudposse/terraform-aws-ecs-alb-service-task.git | v0.76.0 |\n\n## Resources\n\n| Name | Type |\n|------|------|\n| [aws_cloudwatch_log_group.app](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/cloudwatch_log_group) | resource |\n| [aws_cloudwatch_log_group.pubkeys_changed_notification](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/cloudwatch_log_group) | resource |\n| [aws_iam_role.pubkeys_changed_notification](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role) | resource |\n| [aws_iam_role_policy.bastion_policy](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy) | resource |\n| [aws_iam_role_policy.pubkeys_changed_notification](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy) | resource |\n| [aws_lambda_function.pubkeys_changed_notification](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lambda_function) | resource |\n| [aws_lambda_permission.s3-event-allow_bucket](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lambda_permission) | resource |\n| [aws_s3_bucket_notification.bucket_notification](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/s3_bucket_notification) | resource |\n| [aws_s3_object.object](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/s3_object) | resource |\n| [aws_security_group.ssh](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/security_group) | resource |\n| [archive_file.pubkeys_changed_notification](https://registry.terraform.io/providers/hashicorp/archive/latest/docs/data-sources/file) | data source |\n| [aws_caller_identity.current](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/caller_identity) | data source |\n| [aws_iam_policy_document.assume_role_pubkeys_changed_notification](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) | data source |\n| [aws_iam_policy_document.bastion_policy](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) | data source |\n| [aws_iam_policy_document.role_pubkeys_changed_notification](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/iam_policy_document) | data source |\n| [aws_region.current](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/region) | data source |\n\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_auto_deploy_new_task_versions\"\u003e\u003c/a\u003e [auto\\_deploy\\_new\\_task\\_versions](#input\\_auto\\_deploy\\_new\\_task\\_versions) | Set to true if there should be auto deploy of new task versions | `bool` | `false` | no |\n| \u003ca name=\"input_aws_region\"\u003e\u003c/a\u003e [aws\\_region](#input\\_aws\\_region) | n/a | `string` | n/a | yes |\n| \u003ca name=\"input_container_image\"\u003e\u003c/a\u003e [container\\_image](#input\\_container\\_image) | docker image of bastion | `string` | `\"miquidocompany/aws-ecs-bastion:3546346774-7c1491b5\"` | no |\n| \u003ca name=\"input_ecs_cluster_arn\"\u003e\u003c/a\u003e [ecs\\_cluster\\_arn](#input\\_ecs\\_cluster\\_arn) | ECS Cluster arn | `string` | n/a | yes |\n| \u003ca name=\"input_environment\"\u003e\u003c/a\u003e [environment](#input\\_environment) | Environment name | `string` | n/a | yes |\n| \u003ca name=\"input_ignore_changes_desired_count\"\u003e\u003c/a\u003e [ignore\\_changes\\_desired\\_count](#input\\_ignore\\_changes\\_desired\\_count) | If yes than terraform will not try to update current desired count of the task | `bool` | `true` | no |\n| \u003ca name=\"input_log_retention\"\u003e\u003c/a\u003e [log\\_retention](#input\\_log\\_retention) | How long should logs be retained | `number` | `7` | no |\n| \u003ca name=\"input_project\"\u003e\u003c/a\u003e [project](#input\\_project) | Account/Project Name | `string` | n/a | yes |\n| \u003ca name=\"input_public_ssh_keys\"\u003e\u003c/a\u003e [public\\_ssh\\_keys](#input\\_public\\_ssh\\_keys) | rsa.pub strings | `string` | n/a | yes |\n| \u003ca name=\"input_public_subnet_ids\"\u003e\u003c/a\u003e [public\\_subnet\\_ids](#input\\_public\\_subnet\\_ids) | Public subnets ids | `list(string)` | n/a | yes |\n| \u003ca name=\"input_restart_on_ssh_keys_change\"\u003e\u003c/a\u003e [restart\\_on\\_ssh\\_keys\\_change](#input\\_restart\\_on\\_ssh\\_keys\\_change) | Restart bastion ecs task when ssh keys are changed | `bool` | `true` | no |\n| \u003ca name=\"input_route53_zone_id\"\u003e\u003c/a\u003e [route53\\_zone\\_id](#input\\_route53\\_zone\\_id) | Route 53 Zone id for bastion entry | `string` | `\"\"` | no |\n| \u003ca name=\"input_security_groups\"\u003e\u003c/a\u003e [security\\_groups](#input\\_security\\_groups) | Security groups | `list(string)` | n/a | yes |\n| \u003ca name=\"input_tags\"\u003e\u003c/a\u003e [tags](#input\\_tags) | Default tags to apply on all created resources | `map(string)` | `{}` | no |\n| \u003ca name=\"input_use_spot\"\u003e\u003c/a\u003e [use\\_spot](#input\\_use\\_spot) | Set if task should run on Fargate SPOT | `bool` | `true` | no |\n| \u003ca name=\"input_vpc_id\"\u003e\u003c/a\u003e [vpc\\_id](#input\\_vpc\\_id) | vpc id | `string` | n/a | yes |\n| \u003ca name=\"input_web_domain\"\u003e\u003c/a\u003e [web\\_domain](#input\\_web\\_domain) | domain under which bastion will be available | `string` | `\"\"` | no |\n| \u003ca name=\"input_whitelist_ips\"\u003e\u003c/a\u003e [whitelist\\_ips](#input\\_whitelist\\_ips) | List of ip addresses that will be allowed to connect on port 22 | `list(object({ description = string, cidr = string }))` | n/a | yes |\n\n## Outputs\n\nNo outputs.\n\u003c!-- markdownlint-restore --\u003e\n\n\n## Related Projects\n\nCheck out these related projects.\n\n\n\n## License\n\n\u003ca href=\"https://opensource.org/licenses/MIT\"\u003e\u003cimg src=\"https://img.shields.io/badge/License-MIT-yellow.svg?style=for-the-badge\" alt=\"License: MIT\"\u003e\u003c/a\u003e\n\n```text\nThe MIT License (MIT)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\nSource: \u003chttps://opensource.org/licenses/MIT\u003e\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmiquido%2Fecs-bastion","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmiquido%2Fecs-bastion","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmiquido%2Fecs-bastion/lists"}