{"id":15156415,"url":"https://github.com/terraform-ibm-modules/terraform-ibm-security-group","last_synced_at":"2026-02-10T13:01:46.298Z","repository":{"id":158466246,"uuid":"616519753","full_name":"terraform-ibm-modules/terraform-ibm-security-group","owner":"terraform-ibm-modules","description":"Creates a security group with the option to add rules for internal IBM Cloud flows","archived":false,"fork":false,"pushed_at":"2026-02-01T04:17:47.000Z","size":748,"stargazers_count":0,"open_issues_count":1,"forks_count":2,"subscribers_count":14,"default_branch":"main","last_synced_at":"2026-02-01T15:34:29.349Z","etag":null,"topics":["core-team","ibm-cloud","security-group","stable","supported","terraform","terraform-module"],"latest_commit_sha":null,"homepage":null,"language":"HCL","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/terraform-ibm-modules.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":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-03-20T14:46:55.000Z","updated_at":"2026-02-01T15:23:41.000Z","dependencies_parsed_at":null,"dependency_job_id":"ee8a3fbc-0a75-47ac-8518-ade6e26818f0","html_url":"https://github.com/terraform-ibm-modules/terraform-ibm-security-group","commit_stats":{"total_commits":319,"total_committers":16,"mean_commits":19.9375,"dds":"0.11912225705329149","last_synced_commit":"e22111e0e6af5f7ec1cdac44dfa4c32f80899359"},"previous_names":[],"tags_count":24,"template":false,"template_full_name":"terraform-ibm-modules/terraform-ibm-module-template","purl":"pkg:github/terraform-ibm-modules/terraform-ibm-security-group","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terraform-ibm-modules%2Fterraform-ibm-security-group","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terraform-ibm-modules%2Fterraform-ibm-security-group/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terraform-ibm-modules%2Fterraform-ibm-security-group/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terraform-ibm-modules%2Fterraform-ibm-security-group/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/terraform-ibm-modules","download_url":"https://codeload.github.com/terraform-ibm-modules/terraform-ibm-security-group/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/terraform-ibm-modules%2Fterraform-ibm-security-group/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29299550,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-10T12:55:56.056Z","status":"ssl_error","status_checked_at":"2026-02-10T12:55:55.692Z","response_time":65,"last_error":"SSL_read: 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":["core-team","ibm-cloud","security-group","stable","supported","terraform","terraform-module"],"created_at":"2024-09-26T19:21:06.785Z","updated_at":"2026-02-10T13:01:46.292Z","avatar_url":"https://github.com/terraform-ibm-modules.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# IBM Security Group for VPC module\n\u003c!-- UPDATE BADGE: Update the link for the following badge--\u003e\n[![Graduated (Supported)](https://img.shields.io/badge/Status-Graduated%20(Supported)-brightgreen)](https://terraform-ibm-modules.github.io/documentation/#/badge-status)\n[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit\u0026logoColor=white)](https://github.com/pre-commit/pre-commit)\n[![latest release](https://img.shields.io/github/v/release/terraform-ibm-modules/terraform-ibm-security-group?logo=GitHub\u0026sort=semver)](https://github.com/terraform-ibm-modules/terraform-ibm-security-group/releases/latest)\n[![Renovate enabled](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com/)\n[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)\n\n\nThis module supports most operations on security groups for VPC. For more information, see [About security groups](https://cloud.ibm.com/docs/vpc?topic=vpc-using-security-groups) in the IBM Cloud Docs.\n\nThe module supports the following scenarios:\n- Create a security group in a VPC\n- Create security group rules for a new or existing security group\n- Create pre-defined security group rules to cover the range of IBM Cloud internal CIDRs for ([service endpoints](https://cloud.ibm.com/docs/vpc?topic=vpc-service-endpoints-for-vpc#cloud-service-endpoints) and [IaaS endpoints](https://cloud.ibm.com/docs/vpc?topic=vpc-service-endpoints-for-vpc#infrastructure-as-a-service-iaas-endpoints))\n- Attach a security group to one or more existing targets in the VPC (for example, VSI network interface, VPC load balancer, Virtual Private Endpoint gateways, VPC VPN servers)\n\nSee the following [examples](#Examples) section for code that illustrates these scenarios.\n\n\u003c!-- Below content is automatically populated via pre-commit hook --\u003e\n\u003c!-- BEGIN OVERVIEW HOOK --\u003e\n## Overview\n* [terraform-ibm-security-group](#terraform-ibm-security-group)\n* [Examples](./examples)\n:information_source: Ctrl/Cmd+Click or right-click on the Schematics deploy button to open in a new tab\n    * \u003ca href=\"./examples/add-rules-to-existing-sg\"\u003eExample to add security group rules to an existing security group\u003c/a\u003e \u003ca href=\"https://cloud.ibm.com/schematics/workspaces/create?workspace_name=security-group-add-rules-to-existing-sg-example\u0026repository=https://github.com/terraform-ibm-modules/terraform-ibm-security-group/tree/main/examples/add-rules-to-existing-sg\"\u003e\u003cimg src=\"https://img.shields.io/badge/Deploy%20with IBM%20Cloud%20Schematics-0f62fe?logo=ibm\u0026logoColor=white\u0026labelColor=0f62fe\" alt=\"Deploy with IBM Cloud Schematics\" style=\"height: 16px; vertical-align: text-bottom; margin-left: 5px;\"\u003e\u003c/a\u003e\n    * \u003ca href=\"./examples/add-rules-to-existing-sg-kube\"\u003eExample to add security group rules to an existing security group (kube)\u003c/a\u003e \u003ca href=\"https://cloud.ibm.com/schematics/workspaces/create?workspace_name=security-group-add-rules-to-existing-sg-kube-example\u0026repository=https://github.com/terraform-ibm-modules/terraform-ibm-security-group/tree/main/examples/add-rules-to-existing-sg-kube\"\u003e\u003cimg src=\"https://img.shields.io/badge/Deploy%20with IBM%20Cloud%20Schematics-0f62fe?logo=ibm\u0026logoColor=white\u0026labelColor=0f62fe\" alt=\"Deploy with IBM Cloud Schematics\" style=\"height: 16px; vertical-align: text-bottom; margin-left: 5px;\"\u003e\u003c/a\u003e\n    * \u003ca href=\"./examples/default\"\u003eDefault example\u003c/a\u003e \u003ca href=\"https://cloud.ibm.com/schematics/workspaces/create?workspace_name=security-group-default-example\u0026repository=https://github.com/terraform-ibm-modules/terraform-ibm-security-group/tree/main/examples/default\"\u003e\u003cimg src=\"https://img.shields.io/badge/Deploy%20with IBM%20Cloud%20Schematics-0f62fe?logo=ibm\u0026logoColor=white\u0026labelColor=0f62fe\" alt=\"Deploy with IBM Cloud Schematics\" style=\"height: 16px; vertical-align: text-bottom; margin-left: 5px;\"\u003e\u003c/a\u003e\n    * \u003ca href=\"./examples/sg-target-example\"\u003eExample to attach resources to security group\u003c/a\u003e \u003ca href=\"https://cloud.ibm.com/schematics/workspaces/create?workspace_name=security-group-sg-target-example-example\u0026repository=https://github.com/terraform-ibm-modules/terraform-ibm-security-group/tree/main/examples/sg-target-example\"\u003e\u003cimg src=\"https://img.shields.io/badge/Deploy%20with IBM%20Cloud%20Schematics-0f62fe?logo=ibm\u0026logoColor=white\u0026labelColor=0f62fe\" alt=\"Deploy with IBM Cloud Schematics\" style=\"height: 16px; vertical-align: text-bottom; margin-left: 5px;\"\u003e\u003c/a\u003e\n* [Contributing](#contributing)\n\u003c!-- END OVERVIEW HOOK --\u003e\n\n## terraform-ibm-security-group\n### Usage\n\n```hcl\nmodule \"create_sgr_rule\" {\n  source                       = \"terraform-ibm-modules/security-group/ibm\"\n  version                      = \"latest\" # Replace \"latest\" with a release version to lock into a specific release\n  add_ibm_cloud_internal_rules = true\n  security_group_name          = \"test-sg\"\n  security_group_rules         = [{\n    name      = \"allow-all-inbound\"\n    direction = \"inbound\"\n    remote    = \"0.0.0.0/0\"\n  }]\n  target_ids                   = [\"r006-37e5b107-3006-480b-a340-bb1951357a73\"]\n}\n```\n\n### Required IAM access policies\n\nYou need the following permissions to run this module.\n\n- IAM services\n    - **VPC Infrastructure** services\n        - `Editor` platform access\n\n\u003c!-- BEGINNING OF PRE-COMMIT-TERRAFORM DOCS HOOK --\u003e\n### Requirements\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"requirement_terraform\"\u003e\u003c/a\u003e [terraform](#requirement\\_terraform) | \u003e= 1.9.0 |\n| \u003ca name=\"requirement_ibm\"\u003e\u003c/a\u003e [ibm](#requirement\\_ibm) | \u003e= 1.59.0, \u003c 2.0.0 |\n\n### Modules\n\nNo modules.\n\n### Resources\n\n| Name | Type |\n|------|------|\n| [ibm_is_security_group.sg](https://registry.terraform.io/providers/IBM-Cloud/ibm/latest/docs/resources/is_security_group) | resource |\n| [ibm_is_security_group_rule.security_group_rule](https://registry.terraform.io/providers/IBM-Cloud/ibm/latest/docs/resources/is_security_group_rule) | resource |\n| [ibm_is_security_group_target.sg_target](https://registry.terraform.io/providers/IBM-Cloud/ibm/latest/docs/resources/is_security_group_target) | resource |\n| [ibm_is_security_group.existing_sg](https://registry.terraform.io/providers/IBM-Cloud/ibm/latest/docs/data-sources/is_security_group) | data source |\n\n### Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_access_tags\"\u003e\u003c/a\u003e [access\\_tags](#input\\_access\\_tags) | A list of access management tags to attach to the security group. For more information, see [working with tags](https://cloud.ibm.com/docs/account?topic=account-tag\u0026interface=ui#create-access-console) | `list(string)` | `[]` | no |\n| \u003ca name=\"input_add_ibm_cloud_internal_rules\"\u003e\u003c/a\u003e [add\\_ibm\\_cloud\\_internal\\_rules](#input\\_add\\_ibm\\_cloud\\_internal\\_rules) | Add IBM cloud Internal rules to the provided security group rules | `bool` | `false` | no |\n| \u003ca name=\"input_existing_security_group_id\"\u003e\u003c/a\u003e [existing\\_security\\_group\\_id](#input\\_existing\\_security\\_group\\_id) | Id of an existing security group. Mutually exclusive with `existing_security_group_name`. If set, rules will be added to the specified security group. | `string` | `null` | no |\n| \u003ca name=\"input_existing_security_group_name\"\u003e\u003c/a\u003e [existing\\_security\\_group\\_name](#input\\_existing\\_security\\_group\\_name) | Name of an existing security group. Mutually exclusive with `existing_security_group_id`. If set, rules will be added to the specified security group. | `string` | `null` | no |\n| \u003ca name=\"input_resource_group\"\u003e\u003c/a\u003e [resource\\_group](#input\\_resource\\_group) | An existing resource group name to use for this example, if unset a new resource group will be created | `string` | `null` | no |\n| \u003ca name=\"input_security_group_name\"\u003e\u003c/a\u003e [security\\_group\\_name](#input\\_security\\_group\\_name) | Name of the security group to be created | `string` | `\"test-sg\"` | no |\n| \u003ca name=\"input_security_group_rules\"\u003e\u003c/a\u003e [security\\_group\\_rules](#input\\_security\\_group\\_rules) | A list of security group rules to be added to the default vpc security group | \u003cpre\u003elist(\u003cbr/\u003e    object({\u003cbr/\u003e      name       = string\u003cbr/\u003e      direction  = string\u003cbr/\u003e      remote     = optional(string)\u003cbr/\u003e      local      = optional(string)\u003cbr/\u003e      ip_version = optional(string, \"ipv4\")\u003cbr/\u003e      tcp = optional(\u003cbr/\u003e        object({\u003cbr/\u003e          port_max = optional(number)\u003cbr/\u003e          port_min = optional(number)\u003cbr/\u003e        })\u003cbr/\u003e      )\u003cbr/\u003e      udp = optional(\u003cbr/\u003e        object({\u003cbr/\u003e          port_max = optional(number)\u003cbr/\u003e          port_min = optional(number)\u003cbr/\u003e        })\u003cbr/\u003e      )\u003cbr/\u003e      icmp = optional(\u003cbr/\u003e        object({\u003cbr/\u003e          type = optional(number)\u003cbr/\u003e          code = optional(number)\u003cbr/\u003e        })\u003cbr/\u003e      )\u003cbr/\u003e    })\u003cbr/\u003e  )\u003c/pre\u003e | `[]` | no |\n| \u003ca name=\"input_tags\"\u003e\u003c/a\u003e [tags](#input\\_tags) | List of resource tags to apply to security group created by this module. | `list(string)` | `[]` | no |\n| \u003ca name=\"input_target_ids\"\u003e\u003c/a\u003e [target\\_ids](#input\\_target\\_ids) | (Optional) A list of target identifiers from the same VPC as the security group. It may contain one or more of the following identifiers: network interface, application load balancer, endpoint gateway, and VPN server | `list(string)` | `[]` | no |\n| \u003ca name=\"input_use_existing_security_group\"\u003e\u003c/a\u003e [use\\_existing\\_security\\_group](#input\\_use\\_existing\\_security\\_group) | If set, the modules modifies the specified existing\\_security\\_group\\_name. | `bool` | `false` | no |\n| \u003ca name=\"input_use_existing_security_group_id\"\u003e\u003c/a\u003e [use\\_existing\\_security\\_group\\_id](#input\\_use\\_existing\\_security\\_group\\_id) | If set, the modules modifies the specified existing\\_security\\_group\\_id. | `bool` | `false` | no |\n| \u003ca name=\"input_vpc_id\"\u003e\u003c/a\u003e [vpc\\_id](#input\\_vpc\\_id) | ID of the VPC to create security group. Only required if 'existing\\_security\\_group\\_name' is null | `string` | `null` | no |\n\n### Outputs\n\n| Name | Description |\n|------|-------------|\n| \u003ca name=\"output_security_group_id\"\u003e\u003c/a\u003e [security\\_group\\_id](#output\\_security\\_group\\_id) | The ID of the security group where the rules are added. NOTE: This value will not be available until rules are applied, and it cannot be referenced as a remote for a rule variable for the same module block. If you need this value to use in a rule you are supplying, please use the `security_group_id_for_ref` output instead. |\n| \u003ca name=\"output_security_group_id_for_ref\"\u003e\u003c/a\u003e [security\\_group\\_id\\_for\\_ref](#output\\_security\\_group\\_id\\_for\\_ref) | The ID of the security group which can be used as remote reference in rules. NOTE: This value will be available as soon as the security group is created, and before rules are applied, which means it can be referenced as a remote in the rules input variable itself. If you require that all rules are applied first, please use the `security_group_id` output instead. |\n| \u003ca name=\"output_security_group_rule\"\u003e\u003c/a\u003e [security\\_group\\_rule](#output\\_security\\_group\\_rule) | Security group rules |\n| \u003ca name=\"output_security_target\"\u003e\u003c/a\u003e [security\\_target](#output\\_security\\_target) | Resources added to the security group |\n\u003c!-- END OF PRE-COMMIT-TERRAFORM DOCS HOOK --\u003e\n\n\u003c!-- Leave this section as is so that your module has a link to local development environment set up steps for contributors to follow --\u003e\n## Contributing\n\nYou can report issues and request features for this module in GitHub issues in the module repo. See [Report an issue or request a feature](https://github.com/terraform-ibm-modules/.github/blob/main/.github/SUPPORT.md).\n\nTo set up your local development environment, see [Local development setup](https://terraform-ibm-modules.github.io/documentation/#/local-dev-setup) in the project documentation.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fterraform-ibm-modules%2Fterraform-ibm-security-group","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fterraform-ibm-modules%2Fterraform-ibm-security-group","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fterraform-ibm-modules%2Fterraform-ibm-security-group/lists"}