
Tfsec은 이제 Trivy의 일부입니다
모든 사람을 위한 포괄적인 오픈 소스 보안 솔루션을 제공하려는 목표의 일환으로, 우리는 모든 스캐닝 관련 노력을 Trivy로 통합하고 있습니다.
지난 1년 동안 tfsec은 Trivy의 IaC 및 잘못된 구성 스캐닝 기능의 기반을 마련했으며, Terraform 스캐닝은 이미 오랫동안 Trivy에서 기본적으로 지원되었습니다.
앞으로 우리는 tfsec 커뮤니티가 Trivy로 전환하기를 권장합니다. Trivy로 이동하면 동일한 우수한 Terraform 스캐닝 엔진을 사용하면서 다음과 같은 추가 혜택을 얻을 수 있습니다:
Trivy가 tfsec과 어떻게 비교되는지, 그리고 tfsec에서 Trivy로 전환하는 방법에 대한 자세한 내용은 마이그레이션 가이드를 참조하세요.
tfsec은 Terraform 코드의 정적 분석을 사용하여 잠재적인 잘못된 구성을 찾아냅니다.
concat()) 평가Thoughtworks Tech Radar에서 채택 등급을 받았습니다:
Terraform을 사용하는 프로젝트에서 tfsec은 잠재적인 보안 위험을 감지하는 기본 정적 분석 도구로 빠르게 자리 잡았습니다. CI 파이프라인에 통합하기 쉽고 주요 클라우드 제공업체와 Kubernetes와 같은 플랫폼에 대한 검사 라이브러리가 증가하고 있습니다. 사용 편의성을 고려할 때 tfsec은 모든 Terraform 프로젝트에 좋은 추가 기능이 될 수 있다고 생각합니다.

brew/linuxbrew로 설치
brew install tfsec
Chocolatey로 설치
choco install tfsec
Scoop로 설치
scoop install tfsec
Bash 스크립트 (Linux):
curl -s https://raw.githubusercontent.com/aquasecurity/tfsec/master/scripts/install_linux.sh | bash
릴리즈 페이지에서 시스템에 맞는 바이너리를 직접 다운로드할 수도 있습니다.
또는 Go로 설치:
go install github.com/aquasecurity/tfsec/cmd/tfsec@latest
go install을 사용하면 master 브랜치에서 직접 설치되며, tfsec --version을 통해 버전 번호가 보고되지 않습니다.
릴리즈 페이지의 바이너리는 tfsec 서명 키 D66B222A3EA4C25D5D1A097FC34ACEFB46EC39CE로 서명됩니다.
자세한 내용은 서명 페이지에서 확인 지침을 참조하세요.
tfsec은 지정된 디렉토리를 스캔합니다. 디렉토리가 지정되지 않으면 현재 작업 디렉토리가 사용됩니다.
tfsec이 문제를 발견하면 종료 상태는 0이 아니며, 그렇지 않으면 종료 상태는 0입니다.
tfsec .
시스템에 tfsec을 설치하고 실행하는 대신 Docker 컨테이너에서 tfsec을 실행할 수 있습니다.
여러 Docker 옵션이 제공됩니다.
| 이미지 이름 | 베이스 | 설명 |
|---|---|---|
| aquasec/tfsec | alpine | 일반 tfsec 이미지 |
| aquasec/tfsec-alpine | alpine | aquasec/tfsec과 완전히 동일하지만 명시적으로 표시하고 싶은 분들을 위한 이미지 |
| aquasec/tfsec-ci | alpine | 진입점이 없는 tfsec - 명령을 재정의하려는 CI 빌드에 유용 |
| aquasec/tfsec-scratch | scratch | scratch 기반 이미지 - 꾸밈없이 tfsec만 실행 |
실행:
docker run --rm -it -v "$(pwd):/src" aquasec/tfsec /src
tfsec 결과와 통합되는 Visual Studio Code 확장이 개발 중입니다. 자세한 내용은 tfsec Marketplace 페이지에서 확인할 수 있습니다.
저장소에서 tfsec을 GitHub Action으로 실행하려면 https://github.com/aquasecurity/tfsec-pr-commenter-action을 사용할 수 있습니다.
이제 공식 tfsec 작업을 설치할 수 있습니다. 문제/기능 요청은 작업 저장소에 제출해 주세요.
일부 경고를 무시하고 싶을 수 있습니다. 그렇게 하려면 템플릿의 해당 줄에 tfsec:ignore:<규칙>이 포함된 주석을 추가하기만 하면 됩니다. 또는 문제가 있는 블록 위의 줄이나 모듈 블록에 주석을 추가하여 모듈 내 모든 문제 발생을 무시할 수 있습니다.
예를 들어, 공개 보안 그룹 규칙을 무시하려면:
resource "aws_security_group_rule" "my-rule" {
type = "ingress"
cidr_blocks = ["0.0.0.0/0"] #tfsec:ignore:aws-vpc-no-public-ingress-sgr
}
...또는...
resource "aws_security_group_rule" "my-rule" {
type = "ingress"
#tfsec:ignore:aws-vpc-no-public-ingress-sgr
cidr_blocks = ["0.0.0.0/0"]
}
어느 줄에 주석을 추가해야 할지 확실하지 않은 경우, 발견된 문제의 줄 번호를 tfsec 출력에서 확인하세요.
여러 규칙을 한 줄에 연결하여 무시할 수 있습니다:
#tfsec:ignore:aws-s3-enable-bucket-encryption tfsec:ignore:aws-s3-enable-bucket-logging
resource "aws_s3_bucket" "my-bucket" {
bucket = "foobar"
acl = "private"
}
yyyy-mm-dd 형식으로 ignore의 만료 날짜를 설정할 수 있습니다. 이는 무시된 문제가 잊혀지지 않고 향후 다시 검토되어야 함을 보장하려는 경우 유용한 기능입니다.
#tfsec:ignore:aws-s3-enable-bucket-encryption:exp:2025-01-02
이러한 무시는 2025-01-02까지만 활성화되며, 이후에는 비활성화됩니다.
일부 검사를 실행에서 제외하고 싶을 수 있습니다. 그렇게 하려면 cmd 명령에 -e check1,check2,etc 인수를 추가하기만 하면 됩니다.
tfsec . -e general-secrets-sensitive-in-variable,google-compute-disk-encryption-customer-keys
--tfvars-file terraform.tfvars와 같이 tfvars 파일의 값을 스캔에 포함할 수 있습니다.
tfsec은 많은 인기 클라우드 및 플랫폼 제공자를 지원합니다.
| 검사 |
|---|
| AWS 검사 |
| Azure 검사 |
| GCP 검사 |
| CloudStack 검사 |
| DigitalOcean 검사 |
| GitHub 검사 |
| Kubernetes 검사 |
| OpenStack 검사 |
| Oracle 검사 |
tfsec은 CI 파이프라인에서 실행되도록 설계되었습니다. 색상이 없는 출력으로 빌드의 일부로 tfsec을 실행할 수 있습니다. --no-colour (또는 미국식 --no-color)를 사용하여 수행할 수 있습니다.