

# 코드 서명을 사용하여 Lambda로 코드 무결성 확인
<a name="configuration-codesigning"></a>

코드 서명은 신뢰할 수 있는 코드만 Lambda 함수에 배포되도록 하는 데 도움이 됩니다. AWS Signer를 사용하여 함수에 대한 디지털 방식으로 서명된 코드 패키지를 생성할 수 있습니다. [함수에 코드 서명 구성을 추가](configuration-codesigning-create.md)하면 Lambda는 신뢰할 수 있는 소스가 모든 새 코드 배포를 서명했는지 확인합니다. 코드 서명 유효성 검사는 배포 시 실행되므로 함수 실행에는 영향을 주지 않습니다.

**중요**  
코드 서명 구성은 서명되지 않은 코드의 새로운 배포만 방지합니다. 서명되지 않은 코드가 있는 기존 함수에 코드 서명 구성을 추가하는 경우 새 코드 패키지를 배포할 때까지 해당 코드가 계속 실행됩니다.

함수에 대한 코드 서명을 활성화하면 함수에 추가하는 모든 [계층](chapter-layers.md)도 허용된 서명 프로필로 서명되어야 합니다.

AWS Signer 사용 또는 AWS Lambda에 대한 코드 서명에 따른 추가 요금은 없습니다.

## 서명 검증
<a name="config-codesigning-valid"></a>

Lambda는 서명된 코드 패키지를 함수에 배포할 때 다음과 같은 검증을 수행합니다.

1. **무결성**: 코드 패키지가 서명된 이후 수정되지 않았는지 검증합니다. Lambda는 패키지의 해시를 서명의 해시와 비교합니다.

1. **만료**: 코드 패키지의 서명이 만료되지 않았는지 검증합니다.

1. **불일치**: 코드 패키지가 허용된 서명 프로필로 서명되었는지 검증합니다.

1. **해지**: 코드 패키지의 서명이 해지되지 않았는지 검증합니다.

코드 서명 구성을 생성할 때 [UntrustedArtifactOnDeployment](https://docs.aws.amazon.com/lambda/latest/api/API_CodeSigningPolicies.html#lambda-Type-CodeSigningPolicies-UntrustedArtifactOnDeployment) 파라미터를 사용하여 만료, 불일치 또는 해지 확인에 실패할 경우 Lambda가 어떻게 응답해야 하는지 지정할 수 있습니다. 다음 작업 중 하나를 선택할 수 있습니다.
+ `Warn`: 이것이 기본 설정입니다. Lambda는 코드 패키지의 배포를 허용하지만 경고를 발생시킵니다. Lambda는 새로운 Amazon CloudWatch 지표(`SignatureValidationErrors`)를 발생시키고 경고를 CloudTrail 로그에 저장합니다.
+ `Enforce` Lambda는 경고를 발생시키고(`Warn` 작업과 동일) 코드 패키지의 배포를 차단합니다.

**Topics**
+ [서명 검증](#config-codesigning-valid)
+ [Lambda에 대한 코드 서명 구성 생성](configuration-codesigning-create.md)
+ [Lambda 코드 서명 구성에 대한 IAM 정책 구성](config-codesigning-policies.md)
+ [코드 서명 구성에 태그 사용](tags-csc.md)