View a markdown version of this page

cloudformation-validate로 템플릿을 검증합니다. - AWS CloudFormation

cloudformation-validate로 템플릿을 검증합니다.

오픈 소스 cloudformation-validate 프로젝트는 로컬에서 JSON 및 YAML CloudFormation 템플릿을 검사하며 GitHub에서 사용 가능합니다. 이 프로젝트는 잘못된 템플릿 구조, 잘못된 참조, 보안 문제 및 모범 사례 문제를 찾을 수 있습니다. 각 조사 결과에는 문제, 심각도 및 템플릿 내 위치가 포함됩니다.

이 도구는 필요한 규칙과 CloudFormation 리소스 정의를 포함하고 있으므로 설치 후에는 네트워크 액세스 또는 AWS 자격 증명 없이도 실행됩니다.

검증 방법 선택

  • 명령줄 – cfn-validate를 실행하여 터미널 또는 자동 빌드의 디렉터리에 있는 하나의 템플릿이나 모든 템플릿을 검사합니다.

  • 라이브러리 – Rust, Node.js, Python, Go 또는 JVM 애플리케이션에 검증자를 추가하고 코드의 결과를 처리합니다.

  • AWS CDK – CDK가 템플릿을 합성한 후 자동으로 템플릿을 검증합니다.

  • 사용자 지정 규칙 – CEL, Rego 또는 Guard 규칙 언어로 작성된 검사를 추가합니다. 지원되는 규칙 형식과 예제는 GitHub의 사용자 지정 규칙 참조를 확인하세요. Guard 규칙 구문은 이 가이드의 Guard로 템플릿 검증 섹션을 참조하세요.

명령줄 도구 설치

GitHub에서 최신 cfn-validate 릴리스를 열고 운영 체제와 프로세서용 cfn-validate 파일을 다운로드합니다. GitHub의 설치 가이드에 따라 파일 이름을 cfn-validate로 바꾸고 PATH에 추가한 후 다운로드한 파일을 확인합니다.

검증 실행

명령은 다음 구문을 사용합니다.

cfn-validate TEMPLATE_OR_DIRECTORY [OPTIONS]

템플릿 하나를 검사합니다.

cfn-validate template.yaml

디렉터리를 전달하여 모든 .yaml, .yml 및 .json 파일을 재귀적으로 검사합니다.

cfn-validate ./templates/

이 명령은 구조화된 JSON 검증 보고서를 표준 출력으로 작성합니다. 간단한 출력을 원하면 --format standard를 사용하고, 기본 세부 보고서를 원하면 --format detailed를 사용합니다.

이 명령은 오류나 치명적인 진단이 발견되지 않을 경우 0을 반환하고, 오류나 치명적인 진단이 발견될 경우 1을 반환하고, 잘못된 옵션이나 존재하지 않는 파일과 같은 사용 또는 초기화 오류가 있을 경우 2를 반환합니다.

모든 엔진, 필터, 출력 형식 및 파라미터는 GitHub의 cfn-validate CLI 참조를 확인하세요.

사용자 지정 규칙 추가

사용자 지정 Rego 또는 CEL 규칙 파일을 로드하려면 --rule-source를 사용합니다. Guard 규칙 파일 또는 디렉터리를 로드하려면 --guard-rule-source를 사용합니다. 두 옵션 중 하나를 반복하여 여러 규칙 소스를 로드할 수 있습니다.

cfn-validate template.yaml --rule-source ./rules/my-rule.rego cfn-validate template.yaml --guard-rule-source ./guard-rules/

규칙 형식 및 예제는 GitHub의 Custom Rules Reference를 참조하세요.

검증 라이브러리 임베드

애플리케이션에서 동일한 오프라인 검사를 실행하려면 사용 중인 프로그래밍 언어용으로 게시된 패키지를 설치합니다. 검증 엔진을 한 번 생성하고, 여러 템플릿에 재사용하고, 각 템플릿에 대해 반환된 구조화된 진단을 처리합니다. 라이브러리 API를 통해 사용자 지정 CEL, Rego 또는 Guard 규칙을 구성할 수도 있습니다.

설치 지침과 지원되는 플랫폼은 언어 바인딩 설치 가이드를 참조하세요.

모든 언어의 전체 예제와 각 API 가이드에 대한 링크는 GitHub 프로젝트 설명서의 Embedding as a library를 참조하세요.

와 함께 사용AWS CDK

AWS CDK를 사용하는 경우 검증자를 따로 설치할 필요가 없습니다. AWS CDK 구문 라이브러리에는 CloudFormation 템플릿을 합성한 후 자동으로 동일한 검사를 실행하는 기본 CloudFormationValidatePlugin이 포함되어 있습니다.

cdk synth

CDK는 가능한 배포 실패 및 모범 사례 조사 결과를 검증 결과와 함께 보고합니다. 사용자 지정 Rego 또는 Guard 규칙을 추가하려는 경우 CloudFormationValidatePlugin을 명시적으로 구성할 수 있습니다.

플러그인 구성, 승인 및 검증 보고에 대한 자세한 내용은 AWS CDK API 참조의 템플릿 및 정책 검증을 참조하세요.

검증 범위 이해

로컬 검증의 제한 사항과 배포 전 수행할 단계는 검증 범위 이해 섹션을 참조하세요.