VK Cloud logo
Обновлена12 июля 2023 г. в 13:52

Создание БД и пользователя с Terraform для DBaaS

Для безопасной работы с чувствительными данными, такими как пароль пользователя, можно воспользоваться переменными Terraform. Для этого объявите переменную c параметром sensitive = true. Для таких переменных Terraform будет скрывать вывод в консоль.

1variable "db_user_password" {
2  type      = string
3  sensitive = true
4}

В описании ресурса vkcs_db_user используйте ее в качестве значения соответствующего поля:

password = var.db_user_password

Чтобы задать значение переменной, используйте один их вариантов (подробнее):

  • Создать файл secret.tfvars. Записать db_user_password="YOUR_DB_PASSWORD" в него и передать его в качестве аргумента команды terraform apply -var-file="secret.tfvars". Таким образом, чувствительные данные будут храниться отдельно от остальной конфигурации.

  • Задать через переменную окружения с префиксом TF_VAR. Terraform автоматически их подхватит и применит в конфигурации:

    • Mac or Linux: export TF_VAR_db_user_password=YOUR_DB_PASSWORD
    • Windows: $Env:TF_VAR_db_usernamedb_user_password = "YOUR_DB_PASSWORD"

Пример создания базы данных и пользователя:

1variable "db_user_password" {
2  type      = string
3  sensitive = true
4}
5
6resource "vkcs_db_database" "db-database" {
7  name        = "testdb"
8  dbms_id = vkcs_db_instance.db-instance.id
9  charset     = "utf8"
10  collate     = "utf8_general_ci"
11}
12
13resource "vkcs_db_user" "db-user" {
14  name        = "testuser"
15  password    = var.db_user_password
16
17  dbms_id = vkcs_db_instance.db-instance.id
18
19  databases   = [vkcs_db_database.db-database.name]
20}