

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

# 實作 Lambda 安全性與合規性的可觀測性
<a name="governance-observability"></a>

AWS Config 是尋找和修正不合規 AWS Serverless 資源的實用工具。您對無伺服器資源所做的每個變更都會記錄在其中 AWS Config。此外， AWS Config 可讓您在 S3 上存放組態快照資料。您可以使用 Amazon Athena 和 Amazon Quick 建立儀表板並查看 AWS Config 資料。在 [使用 偵測不合規的 Lambda 部署和組態 AWS Config](governance-config-detection.md) 中，我們討論了如何視覺化 Lambda 層等特定組態。本主題將展開介紹這些概念。

## Lambda 組態的可見性
<a name="governance-observability-configuration"></a>

您可以使用查詢來提取重要的組態，例如 AWS 帳戶 ID、區域、 AWS X-Ray 追蹤組態、VPC 組態、記憶體大小、執行時間和標籤。以下是您可以用來從 Athena 提取這些資訊的範例查詢：

```
WITH unnested AS (
    SELECT
      item.awsaccountid AS account_id,
      item.awsregion AS region,
      item.configuration AS lambda_configuration,
      item.resourceid AS resourceid,
      item.resourcename AS resourcename,
      item.configuration AS configuration,
      json_parse(item.configuration) AS lambda_json
    FROM
      default.aws_config_configuration_snapshot,
      UNNEST(configurationitems) as t(item)
    WHERE
      "dt" = 'latest'
      AND item.resourcetype = 'AWS::Lambda::Function'
  )
  
  SELECT DISTINCT
    account_id,
    tags,
    region as Region,
    resourcename as FunctionName,
    json_extract_scalar(lambda_json, '$.memorySize') AS memory_size,
    json_extract_scalar(lambda_json, '$.timeout') AS timeout,
    json_extract_scalar(lambda_json, '$.runtime') AS version
    json_extract_scalar(lambda_json, '$.vpcConfig.SubnetIds') AS vpcConfig
    json_extract_scalar(lambda_json, '$.tracingConfig.mode') AS tracingConfig
  FROM
    unnested
```

您可以使用查詢來建置快速儀表板並視覺化資料。若要彙總 AWS 資源組態資料、在 Athena 中建立資料表，並在 Athena 的資料上建置快速儀表板，請參閱 AWS 雲端操作和管理部落格中的[使用 Athena 和 Amazon Quick 視覺化 AWS Config 資料](https://aws.amazon.com/blogs/mt/visualizing-aws-config-data-using-amazon-athena-and-amazon-quicksight/)。注意，此查詢還會擷取函數的標籤資訊。這可讓您更深入地了解工作負載和環境，尤其當您使用自訂標籤時。

 ![\[Query results in Quick dashboard\]](http://docs.aws.amazon.com/zh_tw/lambda/latest/dg/images/governance-observability-1.png) 

如需有關可採取之動作的詳細資訊，請參閱本主題稍後的 [處理可觀測性調查結果](#governance-observability-addressing) 區段。

## Lambda 合規可見性
<a name="governance-observability-compliance"></a>

使用 產生的資料 AWS Config，您可以建立組織層級儀表板來監控合規性。這允許您一致地追蹤與監控：
+ 依合規分數劃分的合規性套件
+ 依不合規資源劃分的規則
+ 合規狀態

 ![\[AWS Config console dashboard\]](http://docs.aws.amazon.com/zh_tw/lambda/latest/dg/images/governance-observability-2.png) 

檢查每條規則，以便為該規則識別不合規的資源。例如，如果您的組織要求所有 Lambda 函數都必須與 VPC 建立關聯，而且您已部署 AWS Config 規則來識別合規，您可以在上面的清單中選取`lambda-inside-vpc`規則。

 ![\[View non-compliant resources in AWS Config console\]](http://docs.aws.amazon.com/zh_tw/lambda/latest/dg/images/governance-observability-3.png) 

如需有關可採取之動作的詳細資訊，請參閱下方的 [處理可觀測性調查結果](#governance-observability-addressing) 區段。

## 使用 Security Hub CSPM 對 Lambda 函數邊界的可見性
<a name="governance-observability-boundaries"></a>

 ![\[Diagram of example AWS Security Hub CSPM inputs for Lambda, such as resource policy, runtime, and code\]](http://docs.aws.amazon.com/zh_tw/lambda/latest/dg/images/governance-observability-4.png) 

為了確保安全使用包括 Lambda 在內的 AWS 服務， AWS 推出了基礎安全最佳實務 1.0.0 版。這組最佳實務提供明確的準則，以保護 AWS 環境中的資源和資料，強調維護強式安全狀態的重要性。透過提供統一的安全和合規中心來 AWS Security Hub CSPM 補充這一點。它會彙總、組織 Amazon Inspector 和 Amazon GuardDuty 等多項 AWS 服務的安全性調查結果 AWS Identity and Access Management Access Analyzer，並排定其優先順序。

如果您在 AWS 組織中啟用 Security Hub CSPM、Amazon Inspector、IAM Access Analyzer 和 GuardDuty，Security Hub CSPM 會自動彙總這些服務的問題清單。例如，我們來考慮一下 Amazon Inspector。使用 Security Hub CSPM，您可以有效地識別 Lambda 函數中的程式碼和套件漏洞。在 Security Hub CSPM 主控台中，導覽至標記**來自 AWS 整合的最新調查結果的**底部區段。在這裡，您可以檢視和分析來自各種整合 AWS 服務的問題清單。

 ![\[Security Hub CSPM console "Latest findings from AWS integrations" section\]](http://docs.aws.amazon.com/zh_tw/lambda/latest/dg/images/governance-observability-5.png) 

若要查看詳細資訊，請選擇第二欄中的**查看調查結果**連結。這會顯示依產品 (如 Amazon Inspector) 篩選的調查結果清單。若要將搜尋限定於 Lambda 函數，請將 `ResourceType` 設為 `AwsLambdaFunction`。這會顯示 Amazon Inspector 中與 Lambda 函數相關的調查結果。

 ![\[Filter for Amazon Inspector results related to Lambda functions\]](http://docs.aws.amazon.com/zh_tw/lambda/latest/dg/images/governance-observability-6.png) 

對於 GuardDuty，您可以識別可疑的網路流量模式。此類異常可能表明 Lambda 函數中存在潛在的惡意程式碼。

藉助 IAM Access Analyzer，您可以檢查政策，特別是那些包含條件陳述式的政策，這些陳述式會授予函數存取外部實體的權限。此外，當 IAM Access Analyzer 在 Lambda API 中使用 [AddPermission](https://docs.aws.amazon.com/lambda/latest/api/API_AddPermission.html) 操作並結合 `EventSourceToken` 時，還會對許可集合進行評估。

## 處理可觀測性調查結果
<a name="governance-observability-addressing"></a>

考慮到 Lambda 函數可能的廣泛組態及其獨特要求，一種標準化的自動修補解決方案可能不適用於所有情況。此外，在各種環境中，變更的實作方式也存在差異。如果您遇到任何看似不合規的組態，請考慮下列指導方針：

1. **標記策略**

   我們建議實作全面的標記策略。每個 Lambda 函數都應使用關鍵資訊進行標記，例如：
   + **擁有者：**對函數負責的人員或團隊。
   + **環境：**生產、整備、開發或沙盒。
   + **應用程式：**此函數所屬的更廣泛上下文 (如果適用)。

1. **擁有者外展**

   有別於自動執行重大變更 (如 VPC 組態調整)，主動聯絡不合規函數的擁有者 (透過擁有者標籤識別) 可為其提供充足的時間，以便其：
   + 調整 Lambda 函數的不合規組態。
   + 提供說明並請求例外狀況，或完善合規標準。

1. **維護組態管理資料庫 (CMDB)**

   雖然標籤可以提供直接上下文，但維護集中式 CMDB 可以提供更深入的洞見。它可以保留有關每個 Lambda 函數的更精細資訊、它的相依性和其他關鍵中繼資料。CMDB 是稽核、合規性檢查和識別函數擁有者的重要資源。

隨著無伺服器基礎設施的不斷演進，採用主動的監控策略變得至關重要。透過 AWS Config Security Hub CSPM 和 Amazon Inspector 等工具，可以快速識別潛在的異常或不合規組態。然而，單純使用工具無法確保完全的合規性或最佳化組態。將這些工具與妥善記載的程序及最佳實務進行配對至關重要。
+ **回饋迴圈：**一旦執行修補步驟，務必確保有回饋迴圈。這意味著定期重新檢視不合規的資源，以確定它們是否已更新或仍存在相同的問題。
+ **記錄：**始終記錄可觀測性、所執行的動作以及任何授予的例外狀況。適當記錄不僅有助於稽核，還可協助強化該程序以便在未來提高合規性與安全性。
+ **培訓和認知：**確保所有利害關係人，尤其是 Lambda 函數擁有者，定期接受培訓並了解最佳實務、組織政策以及合規性要求。定期舉辦研討會、網路研討會或提供培訓課程，可進一步確保每個人在安全性和合規性方面取得共識。

總之，儘管工具和技術提供了強大的偵測與標記潛在問題的功能，但人的因素 (理解、溝通、培訓和記錄) 仍然是關鍵。它們共同構成一個強效的組合，可確保您的 Lambda 函數和更廣泛的基礎設施保持合規、安全並針對您的商業需求提供最佳化。