Terraform AWS 공급자 지원

Terraform AWS 공급자에 대한 지원 및 제한 사항.

circle-check
circle-info

Terraform 문서에서: "독립적인 리소스를 통해 S3 버킷 설정 관리를 분산하는 데 도움이 되도록 aws_s3_bucket 리소스의 다양한 인수 및 속성이 읽기 전용으로 변경되었습니다. 이러한 인수에 의존하는 구성은 해당 aws_s3_bucket_* 리소스를 사용하도록 업데이트되어야 합니다."

Terraform v4.0.0으로 마이그레이션하려면 S3 서비스 정의를 리팩토링하고 다시 가져와야 합니다. 이를 수행하는 방식에 따라 보안 결과의 범위가 제한될 수 있습니다.

자세한 내용은 Hashicorp의 Terraform V4 업그레이드 가이드arrow-up-right를 참조하십시오.

Terraform AWS 공급자 지원 예시

s3.tf라는 파일에서 Terraform v3.x.x를 사용하여 ACL이 있는 S3 버킷을 정의하는 다음 예시를 고려하십시오.

s3.tf
resource "aws_s3_bucket" "example" {
  # ... 다른 구성 ...
  acl = "public-read-write"
}

S3 버킷 정의는 하나의 리소스 블록에 있습니다. snyk iac test s3.tf를 사용하여 이 파일을 스캔하면 허용적인 ACL 설정에 대한 보안 문제가 발생합니다.

공급자 v4.0.0부터 특정 S3 버킷 속성은 이제 자체 리소스에 정의됩니다. 이전 예시를 계속하면 ACL 속성이 자체 리소스로 이동했으므로 리팩토링된 Terraform은 다음과 같습니다.

s3.tf
resource "aws_s3_bucket" "example" {
  # ... 다른 구성 ...
}

resource "aws_s3_bucket_acl" "example" {
  bucket = aws_s3_bucket.example.id
  acl    = "public-read-write"
}

snyk iac test s3.tf를 사용하여 이 파일을 스캔하면 허용적인 ACL 설정에 대해 이전과 동일한 결과가 나타납니다.

Terraform AWS 공급자 지원의 제한 사항

예를 들어 S3 버킷 정의와 관련 속성을 별도의 Terraform 파일에 배치하는 등 코드를 다르게 구성할 수 있습니다.

이 파일을 스캔하면 보안 이슈가 발생하지 않거나 허용적인 ACL에 대한 오탐(false positive)이 발생할 수 있습니다. 이는 Snyk이 현재 두 리소스를 연결할 수 없기 때문입니다.

Snyk은 이 추가 사용 사례에 대한 지원을 제품에 추가하기 위해 노력하고 있습니다.

임시 해결 방법은 단일 Terraform 파일에 리소스를 정의하는 것입니다.

Last updated