#security #terraform
Вопрос:
Я новичок в облачной разработке и пытаюсь понять, как переменные распределяются между организациями. Предположим, я создаю инфраструктуру терраформирования, и файл состояния хранится в удаленной корзине s3. Теперь я передаю все переменные через файл terraform.tfvars и сохраняю их на своей машине, не фиксируя этот файл в хранилище. Теперь, если другой разработчик хочет изменить инфраструктуру, он должен знать значения файлов tfvars (terraform.tfvars или backend.tfvars). Как я смогу безопасно поделиться с ним?
Например:
В моем terraform.tfvars у меня есть
region="us-east-1"
vpc_cidr="192.168.0.0/16"
vpc_name="my-vpc"
Rds_password="password"
Rds_username="username"
Теперь, когда некоторым приходится вносить изменения в мою инфраструктуру, им нужны все вышеперечисленные значения, так как же я буду делиться своим файлом terraform.tfvars? Решение должно масштабироваться для многих разработчиков
Комментарии:
1. Примеры, которыми вы поделились здесь, кажутся значениями, которые я обычно включаю непосредственно в свой репозиторий управления версиями как часть конфигурации, а не как внешние переменные. Можете ли вы отредактировать свой вопрос, чтобы указать причину, по которой вы хотите разделить эти значения? На этот вопрос существует несколько различных возможных ответов, и поэтому то, что было бы лучше для вас, будет зависеть от ваших причин и целей.
2. Я обновил переменные, чтобы у них были имя пользователя и пароль rds. Также, если есть какие-либо конфиденциальные значения, которые следует передать в систему управления версиями. Как бы вы подошли?
Ответ №1:
Существуют различные способы решения этой проблемы:
- используя Terraform Cloud, вы можете хранить секретные переменные удаленно, чтобы вам не приходилось передавать свои секреты git
- использование внешнего поставщика секретов, такого как хранилище Hashicorp или одно из облачных хранилищ. Вы храните там свои секреты и ссылаетесь на них только в своем коде tf
- зашифруйте секреты файла в репозитории с помощью sop и прочитайте в Terraform с помощью https://registry.terraform.io/providers/carlpett/sops/