Невозможно обновить правило группы безопасности для регионов - PullRequest
0 голосов
/ 02 ноября 2018

Версия Terraform : v0.11.8

Я пытаюсь обновить правило группы безопасности, которая находится в другом регионе (Ирландия), после развертывания моей текущей группы безопасности (Огайо).

Ниже приведен фрагмент кода:

variable "aws_account_id" {}

terraform {
  backend "s3" {}
}

provider "aws" {
  region              = "us-east-2"
  allowed_account_ids = ["${var.aws_account_id}"]
}

provider "aws" {
  alias               = "TestApp"
  region              = "eu-west-1"
}


data "aws_security_group" "test_sg" {
  provider        = "aws.TestApp"
  name = "test-sg"
}

resource "aws_security_group" "test1_sg" {
  name        = "Test 1"
  vpc_id      = "VPC ID"
}

resource "aws_security_group_rule" "allow_test1_access_test_sg" {
  provider        = "aws.TestApp"

  type            = "ingress"
  from_port       = "80"
  to_port         = "80"
  protocol        = "tcp"
  security_group_id = "${data.aws_security_group.test_sg.id}"

  source_security_group_id = "${aws_security_group.test1_sg.id}"
}

У меня круговая зависимость, как показано ниже.

Случай 1 : Запустите вышеуказанный код, получая сообщение об ошибке, что test1_sg группа безопасности не существует.

Случай 2 : Выполнить указанный выше код без provider = "aws.TestApp" в aws_security_group_rule, Ошибка при получении, что группа безопасности test_sg не существует.

Случай 3 : выполнение вышеуказанного кода без provider = "aws.TestApp" в data "aws_security_group" "test_sg", Ошибка при получении, что группа безопасности test_sg не существует.

Я не уверен, что это 100% проблема межрегиональной связи, но похоже, что это так.

Примечание. Приведенная выше ошибка возникает при применении terraform. План показывает правильные изменения без каких-либо ошибок.

Любая помощь будет высоко оценена.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 02 ноября 2018

Хорошо, наконец-то я нашел ответ.

Согласно документации Amazon ...

Вы не можете ссылаться на группу безопасности равноправного VPC, который находится в другой регион. Вместо этого используйте блок CIDR равноправного VPC.

Документ AWS: обновление ваших групп безопасности до ссылочных одноранговых групп VPC

Мне нужно использовать блок cidr вместо группы безопасности при ссылках в кросс-регионе.

0 голосов
/ 02 ноября 2018

Насколько я вижу в вашем случае 1, ваша исходная группа безопасности должна быть "test1_sg". Не существует группы безопасности с именем «test1_access_test2». Используйте это.

source_security_group_id = "${aws_security_group.test1_sg.id}"

В противном случае перейдите и проверьте на консоли, существует ли эта группа безопасности или нет.

...