手動管理 Amazon EKS 叢集的安全代理程式 - Amazon GuardDuty

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

手動管理 Amazon EKS 叢集的安全代理程式

本節說明啟用執行階段監控後,如何管理 Amazon EKS 附加元件GuardDuty 代理程式 (代理程式)。若要使用執行階段監控,您必須啟用執行階段監控並設定 Amazon EKS 附加元件aws-guardduty-agent。僅執行這兩個步驟之一,將無法協助 GuardDuty 偵測潛在威脅或產生發現項目。

部署 GuardDuty 安全代理程式的必要

本節說明手動為EKS叢集部署 GuardDuty 安全性代理程式的必要條件。在繼續之前,請確保您已經為您的帳戶配置了運行時監控。如果您未設定執行階段監控, GuardDuty 安全性代理程式 (EKS附加元件) 將無法運作。如需詳細資訊,請參閱啟用 GuardDuty 執行期監視。完成下列步驟之後,請參閱部署 GuardDuty 安全代理

選擇您偏好的存取方法來建立 Amazon VPC 端點。

Console
建立VPC端點
  1. 在打開 Amazon VPC 控制台https://console.aws.amazon.com/vpc/

  2. 在導覽窗格中的虛擬私有雲端下,選擇端點

  3. 選擇建立端點

  4. 建立端點頁面上,為服務類別選擇其他端點服務

  5. 對於服務名稱,輸入 com.amazonaws.us-east-1.guardduty-data

    確保更換 us-east-1 使用正確的區域。此區域必須與屬於您 AWS 帳戶 ID 的EKS叢集相同。

  6. 選擇驗證服務

  7. 成功驗證服務名稱後,請選擇叢集所VPC在的位置。新增下列策略,將VPC端點用法限制為僅限指定的帳號。您可以透過本政策下方提供的組織 Condition,更新下列政策以限制對端點的存取權限。若要為組織IDs中的特定帳戶提供VPC端點支援,請參閱Organization condition to restrict access to your endpoint

    { "Version": "2012-10-17", "Statement": [ { "Action": "*", "Resource": "*", "Effect": "Allow", "Principal": "*" }, { "Condition": { "StringNotEquals": { "aws:PrincipalAccount": "111122223333" } }, "Action": "*", "Resource": "*", "Effect": "Deny", "Principal": "*" } ] }

    aws:PrincipalAccount帳號 ID 必須與包含VPC和VPC端點的帳號相符。下列清單顯示如何與其他VPC端點共用端點 AWS 帳戶 IDs:

    限制端點存取的組織條件
    • 若要指定多個帳戶來存取VPC端點,請以下列項目取代"aws:PrincipalAccount": "111122223333"

      "aws:PrincipalAccount": [ "666666666666", "555555555555" ]
    • 若要允許組織中的所有成員存取VPC端點,請以下列項目取代"aws:PrincipalAccount": "111122223333"

      "aws:PrincipalOrgID": "o-abcdef0123"
    • 若要限制存取組織 ID 的資源,請將您的 ResourceOrgID 新增至該政策。

      如需詳細資訊,請參閱 ResourceOrgID

      "aws:ResourceOrgID": "o-abcdef0123"
  8. 其他設定下,選擇啟用DNS名稱

  9. 子網路下方,選擇叢集所在的子網路。

  10. 在 [安全性群組] 下,選擇已從您 VPC (或您的EKS叢集) 啟用輸入連接埠 443 的安全性群組。如果您尚未擁有已啟用輸入連接埠 443 的安全群組,則建立安全群組

    如果在限制您 VPC (或叢集) 的上傳權限時發生問題,請從任何 IP 位址 () 提供對內繫結 443 連接埠的支援。0.0.0.0/0

API/CLI
  • 調用CreateVpcEndpoint

  • 使用下列值做為參數︰

    • 對於服務名稱,輸入 com.amazonaws.us-east-1.guardduty-data

      確保更換 us-east-1 使用正確的區域。此區域必須與屬於您 AWS 帳戶 ID 的EKS叢集相同。

    • 對於 DNSOptions,透過將其設定為來啟用私人DNS選項true

  • 對於 AWS Command Line Interface,請參閱create-vpc-endpoint

設定 Amazon 的 GuardDuty 安全代理程式 (附加元件) 參數 EKS

您可以為 Amazon 設定 GuardDuty 安全代理程式的特定參數EKS。此支援適用於 GuardDuty 安全代理程式版本 1.5.0 及更新版本。如需最新附加元件版本的資訊,請參閱GuardDuty Amazon EKS 叢集的安全代理程式

為什麼要更新安全代理程式設定結構描述

Amazon EKS 叢集中所有容器之間的 GuardDuty 安全代理程式組態結構描述相同。如果預設值與相關聯的工作負載和執行個體大小不一致,請考慮進行CPU設定、記憶體設定和dnsPolicy設定。PriorityClass無論您如何管理 Amazon EKS 叢集的 GuardDuty 代理程式,都可以設定或更新這些參數的現有組態。

使用已設定參數的自動化代理程式

代表您 GuardDuty 管理安全性代理程式 (EKS附加元件) 時,會視需要更新附加元件。 GuardDuty 會將可配置參數的值設定為預設值。但是,您仍然可以將參數更新為所需的值。如果這會導致衝突,則預設選項resolveConflictsNone

可配置的參數和值

如需設定附加元件參數之步驟的相關資訊,請參閱:

下表提供可用於手動部署 Amazon EKS 附加元件或更新現有附加元件設定的範圍和值。

CPU設定

參數

預設值

可配置範圍

請求

200 m

二百米至一萬米之間,均包括在內

限制

1000 m

記憶體設定

參數

預設值

可配置範圍

請求

五六英里

256 米至 200 英里之間,均包括在內

限制

一百二十米

PriorityClass 設定

當為您 GuardDuty 創建一個 Amazon EKS 加載項時,分配的PriorityClassaws-guardduty-agent.priorityclass. 這表示不會根據代理程式網繭的優先順序採取任何動作。您可以選擇下列其中一個選PriorityClass項來設定此附加元件參數:

可配置 PriorityClass

preemptionPolicy

preemptionPolicy描述

網繭值

aws-guardduty-agent.priorityclass

Never

無動作

1000000

aws-guardduty-agent.priorityclass-high

PreemptLowerPriority

指派此值將會預佔優先順序值低於代理程式網繭值的網繭。

100000000

system-cluster-critical1

PreemptLowerPriority

2000000000

system-node-critical1

PreemptLowerPriority

2000001000

1 庫伯尼特提供這兩個PriorityClass選項 — 和. system-cluster-critical system-node-critical 如需詳細資訊,請參閱 Kubernetes 文PriorityClass中的。

dnsPolicy 設定

選擇 Kubernetes 支援的下列其中一個DNS原則選項。如果未指定任何組態,ClusterFirst則會用作預設值。

  • ClusterFirst

  • ClusterFirstWithHostNet

  • Default

如需這些原則的相關資訊,請參閱 Kubernetes 文件中的網繭DNS原則

部署 GuardDuty 安全代理

本節說明如何首次為特定EKS叢集部署 GuardDuty 安全性代理程式。在繼續執行本節之前,請確定您已設定必要條件並為您的帳戶啟用「執行階段監視」。如果您未啟用執行階段監控, GuardDuty安全性代理程式 (EKS附加元件) 將無法運作。

選擇您偏好的存取方法,以首次部署 GuardDuty Security Agent。

Console
  1. https://console.aws.amazon.com/eks/家裡 #/集群打開 Amazon EKS 控制台。

  2. 選擇您的叢集名稱

  3. 選擇附加元件索引標籤。

  4. 選擇取得更多附加元件

  5. 在 [選取附加元件] 頁面上,選擇 Amazon GuardDuty 執行階段監控

  6. 設定選取的附加元件設定頁面上,使用預設設定。如果EKS附加元件的 [狀態] 為 [需要啟用],請選擇 [啟用] GuardDuty。這個動作會開啟 GuardDuty 主控台,為您的帳戶設定執行階段監控。

  7. 為帳戶設定執行階段監控之後,請切換回 Amazon EKS 主控台。EKS附加元件的狀態應該已變更為 [安裝準備就緒]。

  8. (選擇性) 提供EKS附加元件組態結構

    對於附加版本,如果您選擇 v1.5.0 及更高版本,執行階段監控支援設定代理程式的特定參數。 GuardDuty 如需有關參數範圍的資訊,請參閱配置EKS附加參數

    1. 展開選擇性組態設定以檢視可設定的參數及其預期值和格式。

    2. 設定參數。這些值必須在中提供的範圍內配置EKS附加參數

    3. 選擇 [儲存變更],根據進階設定建立附加元件。

    4. 對於衝突解決方法,當您將參數值更新為非預設值時,將使用您選擇的選項來解決衝突。如需有關所列選項的詳細資訊,請參閱 Amazon EKS API 參考resolveConflicts中的。

  9. 選擇 Next (下一步)

  10. 檢閱和建立頁面上,確認所有詳細資訊,然後選擇建立

  11. 導覽回叢集詳細資訊,然後選擇資源索引標籤。

  12. 您可以使用前置詞檢視新網繭aws-guardduty-agent

API/CLI

您可以使用下列任一選項設定 Amazon EKS 附加元件代理程式 (aws-guardduty-agent):

  • CreateAddon為您的帳戶運行。

  • 注意

    對於附加元件version,如果您選擇 v1.5.0 及更新版本,執行階段監視支援設定代理程式的特定參數。 GuardDuty 如需詳細資訊,請參閱配置EKS附加參數

    使用下列值作為請求參數︰

    • 針對 addonName,請輸入 aws-guardduty-agent

      當使用附加元件 v1.5.0 及更新版本支援的可設定值時,您可以使用下列 AWS CLI 範例。請務必取代以紅色反白顯示的預留位置值,以及Example.json與設定值相關聯的預留位置值。

      aws eks create-addon --region us-east-1 --cluster-name myClusterName --addon-name aws-guardduty-agent --addon-version v1.5.0-eksbuild.1 --configuration-values 'file://example.json'
      範例 示例
      { "priorityClassName": "aws-guardduty-agent.priorityclass-high", "dnsPolicy": "Default", "resources": { "requests": { "cpu": "237m", "memory": "512Mi" }, "limits": { "cpu": "2000m", "memory": "2048Mi" } } }
    • 如需有關支援的 addonVersion 的資訊,請參閱安全性代理程式支援的 Kubernetes 版本 GuardDuty

  • 或者,您可以使用 AWS CLI. 如需詳細資訊,請參閱建立附加元件。

驗證組態架構更新

設定完參數之後,請執行下列步驟來確認組態結構描述是否已更新:

  1. https://console.aws.amazon.com/eks/家裡 #/集群打開 Amazon EKS 控制台。

  2. 在導覽窗格中,選擇叢集

  3. 在 [叢集] 頁面上,選取您要驗證更新的叢集名稱

  4. 選擇 Resources (資源) 標籤。

  5. 從 [資源類型] 窗格的 [工作負載] 下,選擇DaemonSets

  6. 選取aws-guardduty-agent

  7. aws-guardduty-agent頁面上,選擇 [原始檢視] 以檢視未格式化的JSON回應。確認可配置參數是否顯示您提供的值。

確認之後,請切換至主 GuardDuty 控台。選取對應的 AWS 區域 並檢視 Amazon EKS 叢集的涵蓋範圍狀態。如需詳細資訊,請參閱Amazon EKS 群集的覆蓋範