BEST
보안 · 네트워크

/

보안

[2024] 실무에서 사용하는 클라우드 보안 프로그래밍 (AWS, Python, Terraform)

클라우드를 위한 프로그래밍 언어(Python, Terraform)를 배울 수 있도록 구성되어 있습니다. 클라우드 보안을 담당하면서 간단하지만 귀찮은 반복 업무들이나, 내가 언제 어떻게 배포했는지, CSPM과 같은 솔루션을 통해 해결하지 못하는 우리 회사만의 정책 등을 직접 만들고 적용 할 수 있습니다. 특히 가장 잘나가는 IaC(Infrastructure as Code) 어플리케이션인 테라폼을 통해 배포 전 단계에서 보안을 자동으로 적용하고, 규모가 큰 아키텍처도 빠르게 배포/삭제 할 수 있는 능력을 길러보세요.

(4.9) 수강평 27개

수강생 460명

Thumbnail
천강민님의 프로필 이미지

수정됨

Terraform 1.7 신규 기능(Mocks) 및 주요 변경점 공지

안녕하세요.

실무에서 사용하는 클라우드 프로그래밍 강사 천강민입니다.

Terraform 1.7 버전이 릴리즈 됐습니다. 관련 공지는 여기서 볼 수 있습니다.
생각보다 (크게 스트레스 받을만한) 큰 변화가 생겼는데요.

  1. 테스트 이후 모듈이 삭제되는 순서가 변경됩니다.

    1. 기존

      1. 메인 상태 파일

      2. 각 모듈별 상태 파일(역순)

      3. 그렇기에 모듈을 참조하여 테스트 작성 시, 메인 상태 파일에 적재되는 리소스들에 의존 X

    2. 변경

      1. run 블록 역순으로 상태 파일 삭제

      2. 그렇기에 일찍 삭제되는 리소스들에 의존 X

    3. 간단한 예시

      1. image

      2. 예전에는 위와 같이 작성할 수 없었지만, 1.7부터는 가능합니다.

  2. Mocks (in beta)

    1. 간단히 말씀드리면 실제 프로바이더, 리소스, 데이터, 모듈을 생성/삭제/참조하지 않고 특정한 값을 정의하여 사용하는 기능입니다.

    2. 미리 살펴본 결과, 간단히 배포 또는 생성되는 형태를 mock 데이터로 만들어서 넣어주면 이전보다 훨씬 빠르게 테스트가 가능할 것으로 보입니다.

    3. 예시는 아래와 같습니다.

    # main.tftest.hcl
    
    mock_provider "aws" {
      override_data {
        target = module.credentials.data.aws_s3_object.data_bucket
        values = {
          body = "{\"username\":\"username\",\"password\":\"password\"}"
        }
      }
    }
    
    run "test" {
      assert {
        condition     = jsondecode(local_file.credentials_json.content).username == "username"
        error_message = "incorrect username"
      }
    }
    1. 데이터 블록의 결과를 만들고 run 블록을 통해 빠르게 테스트가 가능합니다.

  3. 1.7 릴리즈에 대한 후기

    1. 마이너 버전 한 번 만에 정말 중요한 로직을 변경한 것이 정말 마음이 아프게 느껴집니다. 혹시나 제 강의를 보시고 기존 삭제 상태를 기준으로 만드신 분들께 대신 사과를 말씀을 드립니다...

    2. 위의 이유 + in beta 상태이기에 Mocks에 대한 내용은 추후에 조금 더 성숙해지고 단단해지면 추가로 찍으려고 합니다. 다만, 어쨋든 출시된 내용은 전달드리는게 맞는 것 같기에 이렇게 새소식을 발행합니다.

감사합니다.

댓글