TFSEC Это анализатор статического кода с открытым исходным кодом для Terraporm Code. Он будет смотреть на вашу террафору и предупреждать о любых отклонениях от лучших практик. В настоящее время он имеет возможности проверки AWS, Azure и GCP облачных ресурсов. Есть также несколько облачных агонических проверок.
Terraform позволяет создавать облачные ресурсы и даже если ваш код Terraform идеален, это действительно легко создать неправильный облачный ресурс. Это может привести к компромиссу безопасности, оставляя данные обнародованы или оставляя свои ресурсы, открытые для атаки.
Если вы, кто-то ответственный за поддержание безопасности вашей инфраструктуры или позу безопасности вашего террафора кода, то TFSEC
это отличный инструмент и управлять в вашем трубопроводе CI. Например, вы можете запустить его в вашем трубопроводе CI и выйти из строя, если TFSEC
обнаруживает любые проблемы.
TFSEC
был создан Лиам Галвин и находится на Github Сейчас с 3 участниками (на момент написания этого) в том числе Лиам.
- Вы можете скачать двоичные из
TFSEC
Выпуски страницы - Вы можете установить его с помощью Домашний
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" }
- Создайте файл под названием
s3_bucket.tf
с приведенным выше содержимым и сохранить файл - Из командной строки 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»