Вопросы и ответы
Какие способы аутентификации используются при работе с Terraform?
Можно использовать два способа аутентификации: через привязку сервисного аккаунта и через токены.
Какой способ аутентификации предпочтителен?
При работе с Terraform рекомендуется использовать аутентификацию через привязку сервисного аккаунта. Аутентификация с помощью токена подходит только для тестовых операций с небольшим временем выполнения: срок действия токена составляет 5 минут.
Как правильно работать с чувствительными данными?
Чувствительные данные (пароли, ключи доступа, токены и т.п.) желательно хранить в отдельном файле с переменными. Это помогает ограничить доступ к секретам и снизить риск их компрометации. Кроме того, вы сможете легко изменять секреты без изменения остального кода.
В описаниях переменных с чувствительными данными используйте параметр sensitive = true, например:
variable "acces_token" {
type = string
sensitive = true
}В этом случае значения переменных не будут отображаться в логах и выводах команд. Если вы храните конфигурации Terraform в git-репозитории, добавляйте файлы с секретами в .gitignore.
По возможности используйте системы управления секретами, например HashiCorp Vault).
Где лучше хранить файлы состояния?
По умолчанию файлы состояния хранятся локально. Такой способ подходит, только если вы используете Terraform в тестовых целях.
Для командной работы лучше помещать файлы состояния в удаленное хранилище. В MWS Cloud для этой цели можно использовать Object Storage.
Можно ли отредактировать файл состояния вручную?
Технически это возможно, однако может привести к частичному или полному удалению ресурсов при применении конфигурации. Прибегайте к ручному редактированию как к крайней мере лишь в исключительных случаях — например, при восстановлении после критических сбоев. Перед ручным редактированием обязательно сделайте резервную копию файла состояния.