Google Cloud 조직의 정책에 따라 IaC 검증

이 문서에서는 Google Cloud 조직에서 정의한 Security Health Analytics 감지기조직 정책에 대조하여 코드형 인프라(IaC)를 검증하는 방법을 설명합니다. IaC를 사용하면 개발 워크플로를 사용하여 리소스를 배포할 수 있도록 Terraform과 같은 언어를 사용하여 클라우드 리소스를 만들고 관리할 수 있습니다.

IaC를 검증하면 새 리소스 정의나 수정된 리소스 정의가 Google Cloud 리소스(예: 클러스터, 버킷 또는 인스턴스)에 적용된 기존 정책을 위반하는지 확인할 수 있습니다. 보안 상태를 사용하여 이러한 정책을 정의할 수 있지만 IaC 검증 기능은 Google Cloud 조직의 모든 정책과 비교하여 코드를 분석합니다. IaC 검증을 사용하면 Google Cloud 환경에 적용하기 전에 개발자가 애셋 또는 리소스의 IaC 구성에서 보안 문제를 식별하고 수정할 수 있습니다.

IaC 검증 기능은 Terraform 계획 파일을 지원합니다. Google Cloud CLI를 사용하여 Terraform 계획을 검증하거나 검증 프로세스를 Jenkins 또는 GitHub Actions 개발자 워크플로에 통합할 수 있습니다.

시작하기 전에

IaC 검증을 시작하려면 이 작업을 완료하세요.

Security Command Center 프리미엄 등급 또는 엔터프라이즈 등급 활성화

Security Command Center 프리미엄 등급 또는 엔터프라이즈 등급이 조직 수준에서 활성화되었는지 확인합니다.

권한 설정

  1. 조직에 다음 역할이 있는지 확인합니다. Security Posture Shift-Left Validator

    역할 확인

    1. Google Cloud 콘솔에서 IAM 페이지로 이동합니다.

      IAM으로 이동
    2. 조직을 선택합니다.
    3. 주 구성원 열에서 이메일 주소가 있는 행을 찾습니다.

      이메일 주소가 열에 없으면 역할이 없는 것입니다.

    4. 이메일 주소가 있는 행에 대해 역할 열에서 역할 목록에 필요한 역할이 있는지 확인합니다.

    역할 부여

    1. Google Cloud 콘솔에서 IAM 페이지로 이동합니다.

      IAM으로 이동
    2. 조직을 선택합니다.
    3. 액세스 권한 부여를 클릭합니다.
    4. 새 주 구성원 필드에 이메일 주소를 입력합니다.
    5. 역할 선택 목록에서 역할을 선택합니다.
    6. 역할을 추가로 부여하려면 다른 역할 추가를 클릭하고 각 역할을 추가합니다.
    7. 저장을 클릭합니다.

IaC 검증 권한에 대한 자세한 내용은 조직 수준 활성화를 위한 IAM을 참조하세요.

Google Cloud CLI 설정

다음 개발 환경 중 하나에서 이 페이지의 gcloud CLI 샘플을 사용할 수 있습니다.

  • Cloud Shell: gcloud CLI가 이미 설정된 온라인 터미널을 사용하려면 Cloud Shell을 활성화하세요.

    이 페이지 하단에서 Cloud Shell 세션이 시작되고 명령줄 프롬프트가 표시됩니다. 세션이 초기화되는 데 몇 초 정도 걸릴 수 있습니다.

  • 로컬 셸: 로컬 개발 환경에서 gcloud CLI를 사용하려면 gcloud CLI를 설치하고 초기화합니다.

서비스 계정 가장 기능을 사용하여 사용자 인증 정보 대신 Google API에 인증하도록 gcloud CLI를 설정하려면 다음 명령어를 실행합니다.

gcloud config set auth/impersonate_service_account SERVICE_ACCT_EMAIL

자세한 내용은 서비스 계정 가장을 참조하세요.

API 사용 설정

API Security posture service and Security Command Center management 사용 설정

API 사용 설정

정책 정의

조직 정책Security Health Analytics 감지기를 정의합니다. 보안 상황을 사용하여 이러한 정책을 정의하려면 상태 만들기 및 배포의 태스크를 완료하세요.

Terraform 코드 만들기

개발자 워크플로 및 도구를 사용해서 만들거나 수정하려는 Google Cloud 애셋이 포함된 Terraform 파일을 만듭니다.

한 가지 예를 살펴보겠습니다.

  • Terraform 구성에 있는 모든 리소스 또는 애셋의 상위 속성(프로젝트, 폴더 또는 조직)을 채웁니다.
  • 애셋 및 정책을 개별적으로 수정합니다. 이 API는 애셋과 정책을 동시에 수정하는 Terraform 계획 파일의 검증을 지원하지 않습니다.
  • 지원되는 확장 소재 유형 및 정책만 사용하세요. 지원되는 애셋 유형 및 정책 목록은 IaC 검증에 지원되는 애셋 유형 및 정책을 참조하세요.
  • IaC 검증 제한사항을 검토합니다.
  • Terraform 계획 파일에 비밀번호 또는 기타 개인 식별 정보와 같은 민감한 정보를 포함하지 마세요. 검증 기능에서 리소스 변경사항에서 민감한 항목으로 표시된 필드를 발견하면 해당 필드가 삭제됩니다.

Terraform 코드를 만든 후 IaC 검증 보고서를 실행할 수 있습니다. Google Cloud CLI, Jenkins, GitHub Actions를 사용할 수 있습니다.

Google Cloud CLI를 사용하여 IaC 검증 보고서 만들기

IaC 검증 보고서를 만들려면 다음을 완료하세요.

  1. gcloud CLI에서 terraform init를 실행합니다.

    Terraform 제공업체 버전 v5.5 이상을 실행 중인지 확인합니다. 필요한 경우 최신 Google 공급업체 버전으로 업그레이드합니다.

    terraform init -upgrade
    
  2. Terraform 계획 파일을 JSON 형식으로 변환합니다.

    terraform plan -out TF_PLAN_FILENAME
    terraform show -json TF_PLAN_FILENAME > TF_PLAN_JSON_FILENAME.json
    

    다음을 바꿉니다.

    • TF_PLAN_FILENAME: Terraform 계획 파일의 이름
    • TF_PLAN_JSON_FILENAME: JSON 형식의 Terraform 계획을 포함할 파일의 이름
  3. IaC 검증 보고서를 만듭니다.

    gcloud scc iac-validation-reports create PARENT \
      --tf-plan-file=TF_PLAN_JSON_FILENAME
    

    다음을 바꿉니다.

    • PARENT: IaC 유효성 검사 보고서를 만들 Google Cloud 조직. 형식은 organizations/ORGANIZATION_ID/locations/LOCATION입니다. LOCATIONglobal입니다.
    • TF_PLAN_JSON_FILENAME: 유효성을 검사할 IaC 계획이 포함된 JSON 파일의 경로

    예를 들어 planFile.json에 포함된 IaC 계획을 사용하여 organizations/3589215982/locations/global 조직 아래에 IaC 검증 보고서를 만들려면 다음 명령어를 실행합니다.

    gcloud scc iac-validation-reports create organizations/3589215982/locations/global --tf-plan-file=planFile.json
    

    이 명령어는 IAC 검증 보고서를 만들기 위한 작업 세부정보를 반환합니다. 작업에 대한 자세한 내용은 상태 배포 작업에 대한 정보 보기를 참조하세요.

다음 단계