本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
自訂 Lambda 規則 (Amazon EC2 範例)
此程序會引導您完成建立自訂 Lambda 規則的程序,以評估每個 EC2 執行個體是否為 t2.micro 類型。 AWS Config 會執行此規則的事件型評估,這表示每次偵測到執行個體中的組態變更時 AWS Config ,都會檢查您的執行個體組態。 AWS Config 會將 t2.micro 執行個體標記為合規,並將所有其他執行個體標記為不合規。合規狀態會顯示在 AWS Config 主控台。
若要取得此程序的最佳結果,您應該在 中擁有一或多個 EC2 執行個體 AWS 帳戶。您的執行個體應包含至少一個 t2.micro 執行個體及其他類型的組合。
若要建立此規則,首先,您將透過在 AWS Lambda 主控台中自訂藍圖來建立 AWS Lambda 函數。然後,您將在 中建立自訂 Lambda 規則 AWS Config,並將規則與 函數建立關聯。
步驟 1:為 AWS Lambda 自訂組態規則建立函數
登入 AWS Management Console ,並在 https://https://console.aws.amazon.com/lambda/
開啟 AWS Lambda 主控台。 -
在 AWS Management Console 選單中,確認區域選擇器已設定為支援 AWS Config 規則的區域。如需支援區域的清單,請參閱《Amazon Web Services 一般參考》中的 AWS Config 區域與端點。
-
在 AWS Lambda 主控台中,選擇建立 Lambda 函數。
-
選擇 使用藍圖 。在搜尋列中鍵入 config-rule-change-triggered。在篩選結果中選取藍圖,然後選取 設定。
-
在 Configure triggers (設定觸發條件) 頁面中,選擇 Next (下一步)。
-
在 基本資訊 頁面上,完成下列步驟:
-
針對 Function name (函數名稱),輸入
InstanceTypeCheck
。 -
針對執行角色,選擇從 AWS 政策範本建立新角色。
-
針對 Runtime (執行時間),選擇 Node.js。
-
在 角色名稱 中鍵入名稱。
-
針對 政策範本,選擇 AWS Config Rules 權限。
-
對於 Lambda function code function (Lambda 函數程式碼函數),請保留預先設定的程式碼。您函數的 Node.js 程式碼會在程式碼編輯器中提供。針對此程序,您無須變更程式碼。
-
確認詳細資訊,接著選擇 建立函數。 AWS Lambda 主控台會顯示您的 函數。
-
-
若要驗證您的函數已設定正確,請使用下列步驟進行測試:
-
從 函式概觀 下方的功能表中選擇 測試,然後選擇 設定測試事件。
-
針對 範本,選擇 AWS Config 組態項目變更通知。
-
針對 Name (名稱),輸入名稱。
-
選擇測試。使用範例事件 AWS Lambda 測試您的函數。若您的函數如預期般正常運作,與下列內容相似的錯誤訊息會出現在 Execution result (執行結果) 下方:
{ "errorType": "InvalidResultTokenException," "errorMessage": "Result Token provided is invalid", . . .
InvalidResultTokenException
是預期的,因為您的函數只有在收到來自 的結果字符時,才會成功執行 AWS Config。結果字符會識別 AWS Config 規則及造成評估的事件,並且結果字符會將評估與規則建立關聯。此異常表示您的函數擁有將結果傳送至 AWS Config的必要許可。否則,會出現下列錯誤訊息:not authorized to perform: config:PutEvaluations
。若發生此錯誤,請更新您指派給函數的角色,允許config:PutEvaluations
動作,並再次測試您的函數。
-
步驟 2:建立自訂 Lambda 規則來評估 Amazon EC2 執行個體
-
在 https://https://console.aws.amazon.com/config/
開啟 AWS Config 主控台。 -
在 AWS Management Console 選單中,確認區域選擇器已設定為您為自訂 Lambda 規則建立 AWS Lambda 函數的相同區域。
-
在 Rules (規則) 頁面,選擇 Add rule (新增規則)。
-
在 指定規則類型 頁面上,選擇 建立自訂規則。
-
在 Configure rule (設定規則) 頁面上,完成下列步驟:
-
在 Name (名稱) 輸入
InstanceTypesAreT2micro
。 -
針對 Description (描述),輸入
Evaluates whether EC2 instances are the t2.micro type
。 -
在 AWS Lambda function ARN ( 函數 ARN) 中,指定 AWS Lambda 指派給您的函數的 ARN。
注意
您在此步驟中指定的 ARN 不得包含
$LATEST
限定詞。您可以指定 ARN,而不需要版本限定詞,也不需要任何限定詞$LATEST
。 AWS Lambda 支援函數版本控制,而且每個版本都會指派一個 ARN 搭配限定詞。 AWS Lambda 會使用$LATEST
限定詞做為最新版本。 -
針對 觸發類型,選擇 組態有所變更時。
-
針對 Scope of changes (變更範圍),選擇 Resources (資源)。
-
針對 資源,請從 資源類型下拉式清單中選擇 AWS EC2 執行個體。
-
在參數區段中,您必須指定 AWS Lambda 函數評估的規則參數和所需的值。此程序的函數會評估
desiredInstanceType
參數。在 Key (鍵) 中,輸入
desiredInstanceType
。針對 Value (值),輸入t2.micro
。
-
-
選擇 Next (下一步)。在 檢閱和建立 頁面上,驗證規則的詳細資訊,然後選擇 新增函數。您的新規則會顯示在 Rules (規則) 頁面上。
合規會顯示評估中...,直到 AWS Config 收到您 AWS Lambda 函數的評估結果為止。若規則和函數如預期般正常運作,結果摘要便會在幾分鐘之後出現。例如,2 noncompliant resource(s) (2 個不合規資源) 表示您有 2 個執行個體並非 t2.micro 執行個體,Compliant (合規) 結果則表示所有執行個體皆為 t2.micro。您可以使用重新整理按鈕來更新結果。
如果規則或函數未如預期般正常運作,Compliance (合規) 可能會顯示以下其中一個項目:
-
未報告任何結果 - 根據規則 AWS Config 評估您的資源。規則不適用於範圍內的 AWS 資源,指定的資源已遭刪除,或評估結果已遭刪除。若要取得評估結果,請更新規則、變更其範圍,或選擇 Re-evaluate (重新評估)。
驗證範圍包含適用於 資源 的 AWS EC2 執行個體,然後再試一次。
-
範圍內沒有資源 - AWS Config 無法針對此規則評估您的記錄 AWS 資源,因為您的資源都不在規則範圍內。若要取得評估結果,請編輯規則並變更其範圍,或使用設定頁面為 新增 AWS Config 要記錄的資源。
確認 AWS Config 正在記錄 EC2 執行個體。
-
Evaluations failed (評估失敗) - 如需有助於判斷問題的資訊,請選擇規則名稱以開啟它的詳細資訊頁面,並參閱錯誤訊息。
-
如果您的規則正常運作並提供 AWS Config 評估結果,您可以了解哪些條件會影響規則的合規狀態。您可以了解哪些資源不合規,以及原因為何 (若有的話)。如需詳細資訊,請參閱使用 檢視 AWS 資源的合規資訊和評估結果 AWS Config。