AWS Lambda 控制 - AWS Security Hub

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

AWS Lambda 控制

這些控制項與 Lambda 資源有關。

這些控制項可能並非全部可用 AWS 區域。如需詳細資訊,請參閱 各區域控制項的可用性

[Lambda 1] Lambda 函數政策應該禁止公共訪問

相關要求:PCI DSS V3.2.1/1.2.1、投資管理系統 DSS 3.2.1/1.3.1、PCI DSS V3.2.1/1.3.2、PCI DSS V3.2.1/1.3.4、PCI DSS V3.2.1/7.2.1、Ni.800-53.R5 AC-21、交流電 -4 (21), 交流 6, 尼斯 .800-53.R5 交流 -6, 尼斯 .800-53.R5, 星期五 (20), 尼斯 .800-53.R5 (16), 尼斯 .800-53.R5 (16), 尼斯特 -53.R5 (20), 3), 早上七點七 (4), 日本七星期五 (9)

類別:保護 > 安全網路組態

嚴重性:嚴重

資源類型:AWS::Lambda::Function

AWS Config 規則:lambda-function-public-access-prohibited

排程類型:已觸發變更

參數:

此控制項會檢查 Lambda 函數以資源為基礎的政策是否禁止在帳戶外進行公開存取。如果允許公開存取,則控制項會失敗。如果從 Amazon S3 叫用 Lambda 函數,且該政策不包含限制公用存取的條件,則控制項也會失敗,例如AWS:SourceAccount。我們建議您在儲存貯體政策AWS:SourceAccount中使用其他 S3 條件,以獲得更完善的存取。

Lambda 函數不應該可公開存取,因為這可能會允許非預期地存取您的函數程式碼。

修補

若要修正此問題,您必須更新函數的以資源為基礎的政策,以移除權限或新增條件AWS:SourceAccount。您只能從 Lambda API 或 AWS CLI更新以資源為基礎的政策。

若要開始,請在 Lambda 主控台上檢閱以資源為基礎的政策。識別具有可公開原則之Principal欄位值的原則陳述式,例如"*"{ "AWS": "*" }

您無法從控制台編輯策略。若要移除函數的權限,請從中執行remove-permission命令 AWS CLI。

$ aws lambda remove-permission --function-name <function-name> --statement-id <statement-id>

取代<function-name>為 Lambda 函數的名稱,<statement-id>以及您要移除之陳述式的陳述式 ID (Sid)。

[Lambda 2] Lambda 函數應該使用受支援的執行階段

相關要求:第七八十三條路卡 -9 (1)、等級 5 公分 (2)、指定信號:800-53.R5 SI-2 (2)、指定信號 -53.R5 系統 -2 (4)、等級

類別:保護 > 安全開發

嚴重性:

資源類型:AWS::Lambda::Function

AWS Config 規則:lambda-function-settings-check

排程類型:已觸發變更

參數:

  • runtimedotnet8, dotnet6, java21, java17, java11, java8.al2, nodejs20.x, nodejs18.x, nodejs16.x, python3.12, python3.11, python3.10, python3.9, python3.8, ruby3.3, ruby3.2(不可定制)

此控制項會檢查 AWS Lambda 函數執行階段設定是否符合針對每種語言支援執行階段設定的預期值。如果 Lambda 函數不使用支援的執行階段 (先前在參數下註明),則控制項會失敗。Security Hub 會忽略套件類型為的函式Image

Lambda 執行階段是以作業系統、程式設計語言和軟體程式庫的組合為基礎,這些程式庫會受到維護和安全性更新的影響。當安全性更新不再支援執行階段元件時,Lambda 會棄用執行階段。即使您無法建立使用已停用執行階段的函數,該函數仍可用於處理叫用事件。我們建議確保您的 Lambda 函數是最新的,並且不要使用已過時的執行階段環境。如需支援的執行階段清單,請參閱AWS Lambda 開發人員指南中的 Lambda 執行階段

修補

有關支持的運行時間和棄用計劃的更多信息,請參閱開發人員指AWS Lambda 南中的運行時棄用策略當將執行時間遷移至最新版本時,請遵循語言發佈者提供的語法和指導。我們也建議您套用執行階段更新,以協助減少在執行階段版本不相容的罕見情況下對工作負載造成影響的風險。

[Lambda 3] Lambda 函數應該在 VPC 中

相關要求:PCI DSS v3.2.1/1.2.1、PCI 資料管理系統 V3.2.1/1.3.1、PCI DSS V3.2.1/1.3.2、PCI DSS V3.2.1/1.3.4、技術支援 DSS V3.2.1/1.3.4、指令介面 (AC-21)、解密技術 -53.R5 交流 -3 (7)、21), 星期五交流 -6, 星期五, 星期五七, 星期五七 (11), 尼斯特. 800-53.R5 (16), 星期五七七 (20), 尼斯 .800-53.R5 (20), SC-7 (4), 日本七星期五 (9)

類別:保護 > 安全網路組態

嚴重性:

資源類型:AWS::Lambda::Function

AWS Config 規則:lambda-inside-vpc

排程類型:已觸發變更

參數:

此控制項可檢查 Lambda 函數是否部署在虛擬私有雲 (VPC) 中。如果 Lambda 函數未部署在 VPC 中,則控制項會失敗。Security Hub 不會評估 VPC 子網路路由組態來判斷公用連線能力。您可能會看到 Lambda @Edge 資源的失敗發現項目。

在 VPC 中部署資源可增強網路組態的安全性和控制能力。此類部署也提供跨多個可用區域的延展性和高容錯能力。您可以自訂 VPC 部署以滿足各種應用程式需求。

修補

若要將現有功能設定為連線至 VPC 中的私有子網路,請參閱開發人員指南中的〈設定 VPC 存取〉。AWS Lambda 我們建議至少選擇兩個私有子網路以獲得高可用性,並至少選擇一個符合功能連線需求的安全性群組。

[Lambda .5] VPC Lambda 函數應在多個可用區域中運作

相關要求:指定的 CP-10,電腦 -53.R5 CP-6 (2),日本電腦 800-53.R5 SC-36,日本電腦 -53.R5 SC-5 (2),日期:800-53.R5 SI-13 (5)

分類:復原 > 復原能力 > 高可用性

嚴重性:

資源類型:AWS::Lambda::Function

AWS Config 規則:lambda-vpc-multi-az-check

排程類型:已觸發變更

參數:

參數 Description (描述) Type 允許的自訂值 Security Hub 預設值

availabilityZones

可用區域的最小數目

列舉

2, 3, 4, 5, 6

2

此控制項會檢查連線至虛擬私有雲端 (VPC) 的 AWS Lambda 函數是否至少在指定數目的可用區域 (AZ) 中運作。如果函數至少在指定的 AZ 數目中運作,則控制項會失敗。除非您為最小 AZ 數目提供自訂參數值,否則 Security Hub 會使用兩個 AZ 的預設值。

在多個 AZ 之間部署資源是確保架構內具有高可用性的 AWS 最佳實務。可用性是機密性、完整性和可用性三合會安全性模型的核心支柱。連接到 VPC 的所有 Lambda 函數都應具有異地同步備份部署,以確保單一故障區域不會導致作業中斷。

修補

如果您將功能設定為連線到帳戶中的 VPC,請在多個 AZ 中指定子網路以確保高可用性。如需指示,請參AWS Lambda 開發人員指南中的設定 VPC 存取權

Lambda 會在多個 AZ 中自動執行其他函數,以確保在單一區域發生服務中斷時,可以處理事件。

[Lambda .6] 應該標記 Lambda 函數

類別:識別 > 庫存 > 標籤

嚴重性:

資源類型:AWS::Lambda::Function

AWS Config 規則:tagged-lambda-function(自訂 Security Hub 規則)

排程類型:已觸發變更

參數:

參數 Description (描述) Type 允許的自訂值 Security Hub 預設值
requiredTagKeys 評估資源必須包含的非系統標籤鍵清單。標籤鍵會區分大小寫。 StringList 符合AWS 要求的標籤清單 No default value

這個控制項會檢查 AWS Lambda 函數是否有標籤,其中包含在參數中定義的特定索引鍵requiredTagKeys。如果函數沒有任何標籤鍵,或者它沒有在參數中指定的所有鍵,則控制項失敗requiredTagKeys。如果requiredTagKeys未提供參數,則控制項僅檢查標籤鍵是否存在,如果函數未使用任何索引鍵標記,則會失敗。系統標籤 (自動套用並以aws:開頭) 會被忽略。

標籤是指派給 AWS 資源的標籤,它包含索引鍵和選用值。您可建立標籤,依照用途、擁有者、環境或其他條件分類資源。標籤可協助您識別、整理、搜尋和篩選資源。標記也可協助您追蹤可負責的資源擁有者,以取得動作和通知。當您使用標記時,您可以實作以屬性為基礎的存取控制 (ABAC) 做為授權策略,該策略會根據標籤定義權限。您可以將標籤附加到 IAM 實體 (使用者或角色) 和 AWS 資源。您可以為 IAM 主體建立單一 ABAC 政策或單獨的政策集。您可以設計這些 ABAC 原則,以便在主參與者的標籤符合資源標籤時允許作業。如需詳細資訊,請參閱 ABAC 的用途為 AWS何? 在 IAM 使用者指南中。

注意

不要在標籤中添加個人身份信息(PII)或其他機密或敏感信息。許多人都可以訪問標籤 AWS 服務,包括 AWS Billing。如需更多標記最佳做法,AWS 請參閱 AWS 一般參考.

修補

若要將標籤新增至 Lambda 函數,請參閱AWS Lambda 開發人員指南中的在 Lambda 函數上使用標籤