Guard로 템플릿 검증
AWS CloudFormation Guard(cfn-guard)는 코드형 정책 도구입니다. 필수 또는 금지된 구성을 설명하는 규칙을 작성한 다음 해당 규칙에 따라 JSON 또는 YAML 데이터를 검사합니다. 예를 들어 템플릿의 모든 Amazon S3 버킷이 암호화를 사용하도록 할 수 있습니다.
로컬 검증의 제한 사항과 배포 전 수행할 단계는 검증 범위 이해 섹션을 참조하세요.
Guard 설치
macOS에서는 Homebrew를 사용하여 Guard를 설치합니다.
brew install cloudformation-guard
Linux, Windows, 기타 macOS 설치 방법 및 릴리스 확인은 AWS CloudFormation Guard 설정을 참조하세요.
규칙 작성
규칙을 확장명이 .guard인 파일로 저장합니다. 다음 예제에서는 템플릿의 모든 Amazon S3 버킷이 버킷 암호화를 지정해야 합니다.
let s3_buckets = Resources.*[ Type == 'AWS::S3::Bucket' ] rule S3_BUCKET_ENCRYPTED when %s3_buckets !empty { %s3_buckets { Properties.BucketEncryption exists } }
규칙 구문과 추가 예제는 AWS CloudFormation Guard 규칙 작성을 참조하세요.
템플릿 확인
--rules에 규칙 파일을 전달하고 --data에 템플릿을 전달합니다.
cfn-guard validate --rules rules.guard --data template.yaml
템플릿이 통과하면 명령이 종료 상태 0을 반환합니다. 규칙이 실패하면 출력은 실패한 규칙을 식별합니다. --rules 및 --data에 디렉터리를 전달하여 여러 파일을 검사할 수도 있습니다.
자동화된 워크플로에서 규칙을 사용하기 전에 기본 제공 유닛 테스트 지원으로 규칙을 테스트합니다. 지침은 AWS CloudFormation Guard 규칙 테스트를 참조하세요.
워크플로에 가드 추가
로컬에서, 자동 빌드에서 또는 Git 커밋 전에 Guard를 실행할 수 있습니다. 템플릿을 편집하는 동안 CloudFormation 언어 서버에서 Guard 규칙 팩을 실행할 수도 있습니다. 설정은 CloudFormation 언어 서버 섹션을 참조하세요.
CloudFormation 및 Cloud Control API 작업 중 규칙을 적용하려면 Guard Hooks를 사용합니다. 자세한 내용은 Guard Hooks를 참조하세요.
자세히 알아보기
전체 언어 및 명령 참조는 AWS CloudFormation Guard 사용 설명서를 참조하세요. 소스 코드 및 릴리스 정보는 AWS CloudFormation Guard GitHub의 리포지토리