검증 - AWS CloudFormation Guard

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

검증

AWS CloudFormation Guard 규칙과 비교하여 데이터를 검증하여 성공 또는 실패를 결정합니다.

구문

cfn-guard validate --data <value> --output-format <value> --rules <value> --show-summary <value> --type <value>

파라미터

-a, --alphabetical

사전순으로 정렬된 디렉터리의 파일을 검증합니다.

-h, --help

도움말 정보를 인쇄합니다.

-m, --last-modified

마지막으로 수정된 시간으로 정렬된 디렉터리의 파일을 검증합니다.

-P, --payload

를 통해 규칙과 데이터를 stdin다음 JSON 형식으로 제공합니다.

{"rules":["<rules 1>", "<rules 2>", ...], "data":["<data 1>", "<data 2>", ...]}

예:

{"data": ["{\"Resources\":{\"NewVolume\":{\"Type\":\"AWS::EC2::Volume\",\"Properties\":{\"Size\":500,\"Encrypted\":false,\"AvailabilityZone\":\"us-west-2b\"}},\"NewVolume2\":{\"Type\":\"AWS::EC2::Volume\",\"Properties\":{\"Size\":50,\"Encrypted\":false,\"AvailabilityZone\":\"us-west-2c\"}}},\"Parameters\":{\"InstanceName\":\"TestInstance\"}}","{\"Resources\":{\"NewVolume\":{\"Type\":\"AWS::EC2::Volume\",\"Properties\":{\"Size\":500,\"Encrypted\":false,\"AvailabilityZone\":\"us-west-2b\"}},\"NewVolume2\":{\"Type\":\"AWS::EC2::Volume\",\"Properties\":{\"Size\":50,\"Encrypted\":false,\"AvailabilityZone\":\"us-west-2c\"}}},\"Parameters\":{\"InstanceName\":\"TestInstance\"}}"], "rules" : [ "Parameters.InstanceName == \"TestInstance\"","Parameters.InstanceName == \"TestInstance\"" ]}

"규칙"에서 규칙 파일의 문자열 버전 목록을 지정합니다. "data"에서 데이터 파일의 문자열 버전 목록을 지정합니다.

--payload가 지정--rules되고 지정할 수 --data 없는 경우.

-p, --print-json

출력을 JSON 형식으로 인쇄합니다.

-s, --show-clause-failures

요약을 포함한 절 실패를 표시합니다.

-V, --version

버전 정보를 인쇄합니다.

-v, --verbose

출력 세부 정보를 높입니다. 여러 번 지정할 수 있습니다.

-z, --structured

구조화되고 유효한 JSON/YAML 목록을 출력합니다. 이 인수는 verbose, print-json, show-summary: all/fail/pass/skip, output-format: single-line-summary 인수와 충돌합니다.

옵션

-d, --data (문자열)

JSON 또는 YAML 형식의 데이터 파일 또는 데이터 파일의 디렉터리를 제공합니다. 이 옵션을 반복적으로 사용하여 여러 값을 전달할 수 있도록 지원합니다.

예시: --data template1.yaml --data ./data-dir1 --data template2.yaml

data-dir1 위와 같은 디렉터리 인수의 경우 .yaml, .yml, .json, .jsn, .template 확장자가 있는 파일에 대해서만 스캔이 지원됩니다.

--payload 플래그를 지정하는 경우 --data 옵션을 지정하지 마십시오.

-i, --input-parameters (문자열)

결합된 컨텍스트로 사용할 데이터 파일과 함께 사용할 추가 파라미터를 지정하는 파라미터 파일 또는 파라미터 파일의 디렉터리를 JSON 또는 YAML로 제공합니다. 입력으로 전달된 모든 파라미터 파일이 병합되고이 결합된 컨텍스트가에 대한 인수로 전달된 각 파일과 다시 병합됩니다data. 따라서 모든 파일에는 중첩 없이 상호 배타적인 속성이 포함되어야 합니다. 이 옵션을 반복적으로 사용하여 여러 값을 전달할 수 있도록 지원합니다.

디렉터리 인수의 경우 .yaml, .yml, .json, .jsn, .template 확장자가 있는 파일에 대해서만 스캔이 지원됩니다.

-o, --output-format (문자열)

출력의 형식을 지정합니다.

기본값: single-line-summary

허용된 값: json | yaml | single-line-summary | junit | sarif

-r, --rules (문자열)

규칙 파일 또는 규칙 파일의 디렉터리를 제공합니다. 이 옵션을 반복적으로 사용하여 여러 값을 전달할 수 있도록 지원합니다.

예시: --rules rule1.guard --rules ./rules-dir1 --rules rule2.guard

rules-dir1 위와 같은 디렉터리 인수의 경우 .guard, .ruleset 확장자가 있는 파일에 대해서만 스캔이 지원됩니다.

--payload 플래그를 지정하는 경우 --rules 옵션을 지정하지 마십시오.

--show-summary(문자열)

요약 테이블을 표시해야 하는지 여부를 제어합니다. --show-summary fail (기본값) 또는 --show-summary pass,fail (통과/실패한 규칙만 표시) 또는 --show-summary none (꺼짐) 또는 --show-summary all (통과, 실패 또는 건너뛰는 모든 규칙을 표시).

기본값: fail

허용된 값: none | all | pass | fail | skip

-t, --type (문자열)

입력 데이터의 형식을 제공합니다. 입력 데이터 유형을 지정하면 Guard는 출력에 CloudFormation 템플릿 리소스의 논리적 이름을 표시합니다. 기본적으로 Guard는와 같은 속성 경로와 값을 표시합니다Property [/Resources/vol2/Properties/Encrypted.

Allowed values: CFNTemplate

예시

cfn-guard validate --data example.json --rules rules.guard

출력

Guard가 템플릿을 성공적으로 검증하면 validate 명령은 종료 상태 0 ($? bash)를 반환합니다. Guard가 규칙 위반을 식별하면 validate 명령은 실패한 규칙의 상태 보고서를 반환합니다.

example.json Status = FAIL FAILED rules rules.guard/policy_effect_is_deny FAIL --- Evaluation of rules rules.guard against data example.json -- Property [/path/to/Effect] in data [example.json] is not compliant with [policy_effect_is_deny] because provided value ["Allow"] did not match expected value ["Deny"]. Error Message [ Policy statement "Effect" must be "Deny".]

다음 사항도 참조하세요.