Напісанне канфігурацый Terraform

Выкарыстоўвайце locals каб задаць дакладныя залежнасці паміж рэсурсамі

Карысны спосаб даць Terraform падказку, што некаторыя рэсурсы павінны быць выдаленыя, нават калі ў канфігурацыях Terraform няма прамой залежнасці.

https://raw.githubusercontent.com/antonbabenko/terraform-best-practices/master/snippets/locals.tf

Terraform 0.12 - абавязковыя і неабавязковыя аргументы

  1. Абавязковы аргумент index_document павінен быць заданы, калі var.website ня ёсць пустой мапай.

  2. Дадатковы аргумент error_document можна прапусціць.

main.tf
variable "website" {
  type    = map(string)
  default = {}
}

resource "aws_s3_bucket" "this" {
  # omitted...

  dynamic "website" {
    for_each = length(keys(var.website)) == 0 ? [] : [var.website]

    content {
      index_document = website.value.index_document
      error_document = lookup(website.value, "error_document", null)
    }
  }
}

Кіраванне сакрэтамі ў Terraform

Сакрэты ёсць канфідэнцыйнай інфармацыя, якая можа ўключаць усё што заўгодна: ад пароляў і ключоў шыфравання да токенаў API і service certificates. Звычайна яны выкарыстоўваюцца для наладкі аўтэнтыфікацыі і аўтарызацыі cloud рэсурсаў. Абарона гэтых канфідэнцыйных рэсурсаў мае вырашальнае значэнне, бо іх раскрыццё можа прывесці да парушэнняў бяспекі. Настойліва рэкамендуецца пазбягаць захоўвання сакрэтных даных у канфігурацыі і стане Terraform, паколькі любы чалавек з доступам да сістэмы кантролю версій можа атрымаць да іх доступ. Замест гэтага разгледзьце магчымасць выкарыстання знешніх крыніц даных для атрымання сакрэтных даных з вонкавых крыніц падчас выканання. Напрыклад, калі вы выкарыстоўваеце AWS Secrets Manager, вы можаце выкарыстоўваць крыніцу дадзеных aws_secretsmanager_secret_version для доступу да значэння сакрэта. У наступным прыкладзе выкарыстоўваюцца аргументы толькі для запісу, якія падтрымліваюцца ў Terraform 1.11+ і захоўваюць значэнне па-за станам Terraform.

Last updated