使用程式碼簽署來驗證 Lambda 的程式碼完整性 - AWS Lambda

使用程式碼簽署來驗證 Lambda 的程式碼完整性

程式碼簽署可協助確保僅受信任的程式碼部署到您的 Lambda 函式中。您可以使用 AWS Signer 為自己的函式建立數位簽署的程式碼套件。當您將程式碼簽署組態新增至函式時,Lambda 會驗證所有新的程式碼部署是否皆由信任的來源簽署。由於程式碼簽署驗證檢查會在部署時執行,因此不會影響函式執行。

重要

程式碼簽署組態只能防止新部署未簽署的程式碼。如果將程式碼簽署組態新增至具有未簽署程式碼的現有函式,該程式碼會持續執行,直到您部署新的程式碼套件為止。

當您為函式啟用程式碼簽署時,新增至函式的所有也必須由一個允許的簽署設定檔來簽署。

使用 AWS Signer 或 AWS Lambda 程式碼簽署,無需額外付費。

簽署驗證

在您將已簽署的程式碼套件部署至函數時,Lambda 會執行下列驗證檢查:

  1. 完整性:驗證程式碼套件自簽署後未被修改。Lambda 將套件的雜湊與簽章中的雜湊作比較。

  2. 有效期:驗證程式碼套件的簽章尚未到期。

  3. 一致性:驗證程式碼套件是透過允許的簽署設定檔進行簽署

  4. 撤銷撤銷:驗證程式碼套件的簽章未被撤銷。

建立程式碼簽署組態時,您可以使用 UntrustedArtifactOnDeployment 參數,指定 Lambda 如何因應有效期、一致性或撤銷狀態檢查失敗。您可以選擇下列動作之一:

  • Warn:此動作是預設設定。Lambda 允許部署程式碼套件,但會發出警告。Lambda 會發出新的 Amazon CloudWatch 指標 (SignatureValidationErrors),還會將警告儲存在 CloudTrail 日誌中。

  • Enforce:Lambda 會發出警告 (與 Warn 動作相同) 並阻止程式碼套件的部署。