使用程式碼簽署來驗證 Lambda 的程式碼完整性
程式碼簽署可協助確保僅受信任的程式碼部署到您的 Lambda 函式中。您可以使用 AWS Signer 為自己的函式建立數位簽署的程式碼套件。當您將程式碼簽署組態新增至函式時,Lambda 會驗證所有新的程式碼部署是否皆由信任的來源簽署。由於程式碼簽署驗證檢查會在部署時執行,因此不會影響函式執行。
重要
程式碼簽署組態只能防止新部署未簽署的程式碼。如果將程式碼簽署組態新增至具有未簽署程式碼的現有函式,該程式碼會持續執行,直到您部署新的程式碼套件為止。
當您為函式啟用程式碼簽署時,新增至函式的所有層也必須由一個允許的簽署設定檔來簽署。
使用 AWS Signer 或 AWS Lambda 程式碼簽署,無需額外付費。
簽署驗證
在您將已簽署的程式碼套件部署至函數時,Lambda 會執行下列驗證檢查:
-
完整性:驗證程式碼套件自簽署後未被修改。Lambda 將套件的雜湊與簽章中的雜湊作比較。
-
有效期:驗證程式碼套件的簽章尚未到期。
-
一致性:驗證程式碼套件是透過允許的簽署設定檔進行簽署
-
撤銷撤銷:驗證程式碼套件的簽章未被撤銷。
建立程式碼簽署組態時,您可以使用 UntrustedArtifactOnDeployment 參數,指定 Lambda 如何因應有效期、一致性或撤銷狀態檢查失敗。您可以選擇下列動作之一:
-
Warn:此動作是預設設定。Lambda 允許部署程式碼套件,但會發出警告。Lambda 會發出新的 Amazon CloudWatch 指標 (SignatureValidationErrors),還會將警告儲存在 CloudTrail 日誌中。 -
Enforce:Lambda 會發出警告 (與Warn動作相同) 並阻止程式碼套件的部署。