

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用程式碼簽署來驗證 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)