Skip to content

NimTechnology

Trình bày các công nghệ CLOUD một cách dễ hiểu.

  • Kubernetes & Container
    • Docker
    • Kubernetes
      • Ingress
      • Pod
    • Helm Chart
    • OAuth2 Proxy
    • Isito-EnvoyFilter
    • Apache Kafka
      • Kafka
      • Kafka Connect
      • Lenses
    • Vault
    • Longhorn – Storage
    • VictoriaMetrics
    • MetalLB
    • Kong Gateway
  • CI/CD
    • ArgoCD
    • ArgoWorkflows
    • Argo Events
    • Spinnaker
    • Jenkins
    • Harbor
    • TeamCity
    • Git
      • Bitbucket
  • Coding
    • DevSecOps
    • Terraform
      • GCP – Google Cloud
      • AWS – Amazon Web Service
      • Azure Cloud
    • Golang
    • Laravel
    • Python
    • Jquery & JavaScript
    • Selenium
  • Log, Monitor & Tracing
    • DataDog
    • Prometheus
    • Grafana
    • ELK
      • Kibana
      • Logstash
  • BareMetal
    • NextCloud
  • Toggle search form

[Security Group/Terraform] Look into some exciting in Security Group Terraform

Posted on November 20, 2023 By nim No Comments on [Security Group/Terraform] Look into some exciting in Security Group Terraform

Hôm nay mình gặp khá nhiều lỗi trong khi cố gắng add thêm 1 rule trong Sec Group của AWS bằng terraform.

Đầu tiên mình đã có sẵn 1 SecGroup template đã được sử dụng trước đó.

resource "aws_security_group" "msk-sg" {
  name   = "msk-sg"
  vpc_id = data.terraform_remote_state.network.outputs.vpc_id

  ingress = [
    {
      cidr_blocks      = [data.terraform_remote_state.network.outputs.vpc_cidr_block]
      description      = "Allow Integration Nim subnets"
      ipv6_cidr_blocks = []
      from_port        = 9094
      to_port          = 9094
      protocol         = "tcp"
      prefix_list_ids  = []
      security_groups  = []
      self             = true
    },

Bạn có thể thấy là mình đang có 1 rule inbound vào port 9094 cho phép subnet được lấy từ data.terraform_remote_state.network.outputs.vpc_cidr_block

vì để 1 decription khác nên là mình đã copy thành

Khi mình run terraform apply thì bị lỗi.

Plan: 0 to add, 1 to change, 0 to destroy.
aws_security_group.msk-sg: Modifying... [id=sg-01b00f8cf9112f8f8]
╷
│ Error: updating Security Group (sg-01b00f8cf9112f8f8) ingress rules: authorizing Security Group (ingress) rules: InvalidPermission.Duplicate: the specified rule "peer: sg-01b00f8cf9112f8f8, TCP, from port: 9094, to port: 9094, ALLOW" already exists
│ 	status code: 400, request id: d87f73d8-ee17-40f0-9840-a6f1b99d5097
│ 
│   with aws_security_group.msk-sg,
│   on c3-02-msk-secgroup.tf line 10, in resource "aws_security_group" "msk-sg":
│   10: resource "aws_security_group" "msk-sg" {
│ 
╵

Thì lúc này mình dò lại doc:
https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/security_group

Bạn có thể thấy là sau ingress không phải là 1 array

Vậy giờ chúng ta có 2 cách:

với array: thì bạn add thêm subnet vào cidr_blocks và chấp nhận là không thể đánh description cho từng subnet.

resource "aws_security_group" "msk-sg" {
  name   = "msk-sg"
  vpc_id = data.terraform_remote_state.network.outputs.vpc_id

  ingress = [
    {
      cidr_blocks      = [data.terraform_remote_state.network.outputs.vpc_cidr_block,"192.168.1.0"]
      description      = "Allow Integration Nim subnets"
      ipv6_cidr_blocks = []
      from_port        = 9094
      to_port          = 9094
      protocol         = "tcp"
      prefix_list_ids  = []
      security_groups  = []
      self             = true
    },

Nếu bạn muốn add thêm subnet và cũng muốn description riêng

resource "aws_security_group" "allow_tls" {
  name        = "allow_tls"
  description = "Allow TLS inbound traffic"
  vpc_id      = aws_vpc.main.id

  ingress {
    description      = "TLS from VPC"
    from_port        = 443
    to_port          = 443
    protocol         = "tcp"
    cidr_blocks      = [aws_vpc.main.cidr_block]
  }

  ingress {
    description      = "Allow Integration Nim subnets"
    from_port        = 443
    to_port          = 443
    protocol         = "tcp"
    cidr_blocks      = ["192.168.1.0"]
  }
AWS - Amazon Web Service

Post navigation

Previous Post: [Synthetic Test] Create a Status Page for your product easily.
Next Post: [Golang] The declarations are very helpful in Golang

More Related Articles

[EKS/Terraform] Installing or Provisioning an EKS cluster through Terraform Module. AWS - Amazon Web Service
[EKS windows] Using EKS terraform module to install K8S windows with manage node Group mode. AWS - Amazon Web Service
Monitoring DocumentDB of AWS. AWS - Amazon Web Service
[Redis] ElastiCache-Redis Cross-Region Replication|Global DataStore AWS - Amazon Web Service
[Terraform] ResourceAlreadyExistsException: The specified log group already exists AWS - Amazon Web Service
[CoreDNS] How to improve the Coredns performance. AWS - Amazon Web Service

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Tham Gia Group DevOps nhé!
Để Nim có nhiều động lực ra nhiều bài viết.
Để nhận được những thông báo mới nhất.

Recent Posts

  • [Laravel] Laravel Helpful June 26, 2025
  • [VScode] Hướng dẫn điều chỉnh font cho terminal June 20, 2025
  • [WordPress] Hướng dấn gửi mail trên WordPress thông qua gmail. June 15, 2025
  • [Bitbucket] Git Clone/Pull/Push with Bitbucket through API Token. June 12, 2025
  • [Teamcity] How to transfer the value from pipeline A to pipeline B June 9, 2025

Archives

  • June 2025
  • May 2025
  • April 2025
  • March 2025
  • February 2025
  • January 2025
  • December 2024
  • November 2024
  • October 2024
  • September 2024
  • August 2024
  • July 2024
  • June 2024
  • May 2024
  • April 2024
  • March 2024
  • February 2024
  • January 2024
  • December 2023
  • November 2023
  • October 2023
  • September 2023
  • August 2023
  • July 2023
  • June 2023
  • May 2023
  • April 2023
  • March 2023
  • February 2023
  • January 2023
  • December 2022
  • November 2022
  • October 2022
  • September 2022
  • August 2022
  • July 2022
  • June 2022
  • May 2022
  • April 2022
  • March 2022
  • February 2022
  • January 2022
  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • August 2021
  • July 2021
  • June 2021

Categories

  • BareMetal
    • NextCloud
  • CI/CD
    • Argo Events
    • ArgoCD
    • ArgoWorkflows
    • Git
      • Bitbucket
    • Harbor
    • Jenkins
    • Spinnaker
    • TeamCity
  • Coding
    • DevSecOps
    • Golang
    • Jquery & JavaScript
    • Laravel
    • NextJS 14 & ReactJS & Type Script
    • Python
    • Selenium
    • Terraform
      • AWS – Amazon Web Service
      • Azure Cloud
      • GCP – Google Cloud
  • Kubernetes & Container
    • Apache Kafka
      • Kafka
      • Kafka Connect
      • Lenses
    • Docker
    • Helm Chart
    • Isito-EnvoyFilter
    • Kong Gateway
    • Kubernetes
      • Ingress
      • Pod
    • Longhorn – Storage
    • MetalLB
    • OAuth2 Proxy
    • Vault
    • VictoriaMetrics
  • Log, Monitor & Tracing
    • DataDog
    • ELK
      • Kibana
      • Logstash
    • Fluent
    • Grafana
    • Prometheus
  • Uncategorized
  • Admin

Copyright © 2025 NimTechnology.