Рубрики
Uncategorized

Защита террафора кода с TFSEC

Использование TFSEC, анализатора статического кода, чтобы закрепить код вашего террафора. Теги за безопасностью, облаком, террафом, дежоптом.

TFSEC Это анализатор статического кода с открытым исходным кодом для Terraporm Code. Он будет смотреть на вашу террафору и предупреждать о любых отклонениях от лучших практик. В настоящее время он имеет возможности проверки AWS, Azure и GCP облачных ресурсов. Есть также несколько облачных агонических проверок.

Terraform позволяет создавать облачные ресурсы и даже если ваш код Terraform идеален, это действительно легко создать неправильный облачный ресурс. Это может привести к компромиссу безопасности, оставляя данные обнародованы или оставляя свои ресурсы, открытые для атаки.

Если вы, кто-то ответственный за поддержание безопасности вашей инфраструктуры или позу безопасности вашего террафора кода, то TFSEC это отличный инструмент и управлять в вашем трубопроводе CI. Например, вы можете запустить его в вашем трубопроводе CI и выйти из строя, если TFSEC обнаруживает любые проблемы.

TFSEC был создан Лиам Галвин и находится на Github Сейчас с 3 участниками (на момент написания этого) в том числе Лиам.

brew tap liamg/tfsec
brew install liamg/tfsec/tfsec
  • Вы можете установить с Go
env GO111MODULE=on go get -u [github.com/liamg/tfsec/cmd/tfsec](http://github.com/liamg/tfsec/cmd/tfsec)

Одно из великих вещей о TFSEC Это действительно легко начать. Теперь, когда мы знаем, что TFSEC Есть и как получить его, давайте начнем использовать его. Ниже приведен файл террафора, который создает стандартное ведро S3, и мы дали ему имя TFSEC-ведро Отказ Это маленький и скучный файл, но показывает, насколько легко создать неправильный облачный ресурс.

    resource "aws_s3_bucket" "b" {
      bucket = "tfsec-bucket"
    }
  1. Создайте файл под названием s3_bucket.tf с приведенным выше содержимым и сохранить файл
  2. Из командной строки Run TFSEC.
    2 potential problems detected:

    Problem 1

      [AWS002][ERROR] Resource 'aws_s3_bucket.b' does not have logging enabled.
      /tfsec_test/s3_bucket.tf:1-3

           1 | resource "aws_s3_bucket" "b" {
           2 |   bucket = "tfsec-bucket"
           3 | }
           4 | 

      See https://github.com/liamg/tfsec/wiki/AWS002 for more information.

    Problem 2

      [AWS017][ERROR] Resource 'aws_s3_bucket.b' defines an unencrypted S3 bucket (missing server_side_encryption_configuration block).
      /tfsec_test/s3_bucket.tf:1-3

           1 | resource "aws_s3_bucket" "b" {
           2 |   bucket = "tfsec-bucket"
           3 | }
           4 | 

      See https://github.com/liamg/tfsec/wiki/AWS017 for more information.

TFSEC говорит тебе:

  • Количество потенциальных проблем, которые он нашел:

2 потенциальные проблемы обнаружены

  • Номер правила обнаруженной задачи:

[AWS002]

  • Идентификатор ресурса с проблемой:

aws_s3_bucket.b.

  • В чем проблема:

не имеет ввода в систему.

  • Путь файла и линии, где он обнаружил проблему:

/tfsec_test/s3_bucket.tf:1-3.

  • Код террафора ресурса с номерами строки:
           1 | resource "aws_s3_bucket" "b" {
           2 |   bucket = "tfsec-bucket"
           3 | }
           4 |
  • Ссылка на дополнительную информацию о нахождении

https://github.com/liamg/tfsec/wiki/AWS002

Как и со всем в безопасности tfsec. должен быть просто еще один слой в вашем Оборона в глубине Подход к обеспечению ваших активов и облачных инфраструктурных ресурсов и абсолютно не в конечном итоге для вашей облачной безопасности.

С этим говорим TFSEC отличный инструмент И я очень рад видеть приспособление безопасности, созданную и разработанную вокруг террафора. Надеюсь, это заставило вы хотите проверить это!

Оригинал: «https://dev.to/securitylater/securing-terraform-code-with-tfsec-3980»