Amazon ECS 控制 - AWS Security Hub

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

Amazon ECS 控制

這些控制項與 Amazon 資ECS源有關。

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

[ECS.1] Amazon ECS 任務定義應具有安全的聯網模式和使用者定義。

相關需求:交流 -2 (1)、NIST .800-53.R5 交流電 -3、.800-53.r5 交流 -3 (15)、NIST .800-53.r5 交流 -3 (7)、NIST .800-53.R5 交流 -6 NIST NIST NIST

類別:保護 > 安全存取管理

嚴重性:

資源類型:AWS::ECS::TaskDefinition

AWS Config 規則:ecs-task-definition-user-for-host-mode-check

排程類型:已觸發變更

參數:

  • SkipInactiveTaskDefinitionstrue(不可定制)

此控制項會檢查具有主機聯網模式的ECS作用中 Amazon 任務定義privileged還是有user容器定義。對於具有主機網路模式和容器定義為空白和或空白的privileged=false工作定義user=root,控制項會失敗。

此控制項僅評估 Amazon ECS 任務定義的最新作用中修訂版本。

此控制項的目的在於確保在您執行使用主機網路模式的工作時刻意定義存取權。如果工作定義具有提升的權限,這是因為您已選擇該組態。當工作定義已啟用主機網路,而且您未選擇提升的權限時,此控制項會檢查是否有意外的權限提升。

修補

如需如何更新任務定義的相關資訊,請參閱 Amazon 彈性容器服務開發人員指南中的更新任務定義

當您更新工作定義時,它不會更新從先前的工作定義啟動的執行中工作。若要更新執行中的工作,您必須使用新的工作定義重新部署工作。

[ECS.2] ECS 服務不應該自動分配公共 IP 地址

相關需求:NIST.800-53.R5 交流 -3、.800-53.R5 交流 -3、NIST .800-53.r5 交流 -6 (7)、NIST .800-53.R5 交流 4 (21)、.800-53.r5 交流 -6、NIST .800-53.r5 交流 -6、.800-53.r5 .800-53.R5 星期六七 (20), NIST .800-53.R5 星期六七 (21), NIST .800-53.r5 星期六七 (3), NIST .800-53.r5 星期六七 (4), .800-53.r5 SC-7 (9) NIST NIST NIST NIST NIST NIST NIST AC-21

分類:保護 > 安全網路設定 > 不可公開存取的資源

嚴重性:

資源類型:AWS::ECS::Service

AWS Config規則:ecs-service-assign-public-ip-disabled(自訂 Security Hub 規則)

排程類型:已觸發變更

參數:

  • exemptEcsServiceArns(不可定制)。Security Hub 不會填入此參數。不受此規則豁免ARNs的 Amazon ECS 服務清單 (逗號分隔)。

    此規COMPLIANT則是 Amazon ECS 服務已AssignPublicIP設定為ENABLED且已在此參數清單中指定時。

    此規則是NON_COMPLIANT如果 Amazon ECS 服務已AssignPublicIP設定為ENABLED且未在此參數清單中指定。

此控制項可檢查 Amazon ECS 服務是否設定為自動指派公有 IP 地址。如果AssignPublicIP是,則此控制項失敗ENABLED。如果是,則此控制項AssignPublicIP會傳遞DISABLED

公用 IP 位址是可從網際網路存取的 IP 位址。如果您使用公有 IP 地址啟動 Amazon ECS 執行個體,則可以從網際網路存取您的 Amazon ECS 執行個體。Amazon ECS 服務不應可公開存取,因為這可能會允許意外存取您的容器應用程式伺服器。

修補

若要停用自動公有 IP 指派,請參Amazon 彈性容器服務開發人員指南中的若要為您的服務設定VPC和安全群組設定。

[ECS.3] ECS 任務定義不應共享主機的進程名稱空間

相關需求:NISTNIST

類別:識別 > 資源配置

嚴重性:

資源類型:AWS::ECS::TaskDefinition

AWS Config規則:ecs-task-definition-pid- 模式檢查

排程類型:已觸發變更

參數:

此控制項會檢查 Amazon ECS 任務定義是否設定為與其容器共用主機的程序命名空間。如果工作定義與主機上執行的容器共用主機的處理序命名空間,則控制項會失敗。此控制項僅評估 Amazon ECS 任務定義的最新作用中修訂版本。

一個進程 ID(PID)命名空間提供進程之間的分離。它可以防止系統進程可見,並PIDs允許重複使用,包括 PID 1。如果主機的PID命名空間與容器共享,它將允許容器查看主機系統上的所有進程。這減少了主機和容器之間流程層級隔離的好處。這些情況可能會導致未經授權存取主機本身的處理序,包括操控和終止處理序的能力。客戶不應與主機上運行的容器共享主機的進程命名空間。

修補

若要在任務定義pidMode上進行設定,請參閱 Amazon 彈性容器服務開發人員指南中的任務定義參數。

[ECS.4] ECS 容器應該以非特權運行

相關需求:交流 -2 (1)、NIST .800-53.R5 交流電 -3、.800-53.r5 交流 -3 (15)、NIST .800-53.r5 交流 -3 (7)、NIST .800-53.R5 交流 -6 NIST NIST NIST

類別:保護 > 安全存取管理 > 根使用者存取限制

嚴重性:

資源類型:AWS::ECS::TaskDefinition

AWS Config規則:ecs-containers-nonprivileged

排程類型:已觸發變更

參數:

此控制項會檢查 Amazon ECS 任務定義之容器定義中的privileged參數是否設定為true。如果此參數等於,則控制項會失敗true。此控制項僅評估 Amazon ECS 任務定義的最新作用中修訂版本。

建議您從ECS工作定義中移除提升的權限。當權限參數為時 true,容器會在主機容器執行個體上獲取更高的權限 (類似於 root 使用者)。

修補

若要在任務定義上設定參privileged數,請參閱 Amazon 彈性容器服務開發人員指南中的進階容器定義參數

[ECS.5] ECS 容器應僅限於對 root 文件系統的只讀訪問

相關需求:交流 -2 (1)、NIST .800-53.R5 交流電 -3、.800-53.r5 交流 -3 (15)、NIST .800-53.r5 交流 -3 (7)、NIST .800-53.R5 交流 -6 NIST NIST NIST

類別:保護 > 安全存取管理

嚴重性:

資源類型:AWS::ECS::TaskDefinition

AWS Config規則:ecs-containers-readonly-access

排程類型:已觸發變更

參數:

此控制項會檢查 Amazon ECS 容器是否僅限於掛載根檔案系統的唯讀存取權。如果參數設定為falsereadonlyRootFilesystem參數不存在於工作定義中的容器定義中,則控制項會失敗。此控制項僅評估 Amazon ECS 任務定義的最新作用中修訂版本。

啟用此選項可減少安全性攻擊媒介,因為容器執行個體的檔案系統無法竄改或寫入,除非容器執行個體對其檔案系統資料夾和目錄具有明確的讀寫權限。此控制也遵循最低權限原則。

修補

將容器定義限制為 root 檔案系統的唯讀存取
  1. 在打開 Amazon ECS 經典控制台https://console.aws.amazon.com/ecs/

  2. 在左側導覽窗格中,選擇 [工作定義]。

  3. 選取具有需要更新之容器定義的作業定義。對於每個,請完成以下步驟:

    • 從下拉式清單中,選擇 [建立新修訂版本使用] JSON。

    • 新增readonlyRootFilesystem參數,並在任務定義內true的容器定義中將其設定為。

    • 選擇建立

[ECS.8] 秘密不應作為容器環境變量傳遞

相關需求:NISTNIST

分類:保護 > 安全開發 > 未硬式編碼的憑證

嚴重性:

資源類型:AWS::ECS::TaskDefinition

AWS Config規則:ecs-no-environment-secrets

排程類型:已觸發變更

參數:

  • secretKeys =AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY, ECS_ENGINE_AUTH_DATA (不可自訂)

此控制項會檢查容器定義參數中任何變environment數的索引鍵值是否包含AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY、或ECS_ENGINE_AUTH_DATA。如果任何容器定義中的單一環境變數等於AWS_ACCESS_KEY_ID、或AWS_SECRET_ACCESS_KEY,則此控制項會失敗ECS_ENGINE_AUTH_DATA。此控制項不涵蓋從其他位置 (例如 Amazon S3) 傳入的環境變數。此控制項僅評估 Amazon ECS 任務定義的最新作用中修訂版本。

AWS Systems Manager 參數存放區可協助您改善組織的安全性狀態。我們建議使用參數存放區來儲存機密和認證,而不是直接將它們傳遞到容器執行個體,或將它們硬式編碼到程式碼中。

修補

若要使用建立參數SSM,請參閱使用指南中的〈建立 Systems Manager 參數AWS Systems Manager。如需建立指定密碼之任務定義的詳細資訊,請參閱 Amazon 彈性容器服務開發人員指南中的使用 Secret Manager 指定敏感資料

[ECS.9] ECS 任務定義應該有一個日誌記錄配置

相關要求:NIST.800-53.R5 交流四 (26)、NIST .800-53.R5 AU-10、.800-53.R5、.800-53.R5 澳大利亞交流四 (26)、NIST. NIST 800-53.R5 澳洲六 (3)、.800-53.R5、NIST .800-53.R5 三七七 (8) NIST NIST NIST NIST NIST AU-12

類別:識別 > 記錄日誌

嚴重性:

資源類型:AWS::ECS::TaskDefinition

AWS Config規則:ecs-task-definition-log-配

排程類型:已觸發變更

參數:

此控制項會檢查最新的作用中 Amazon ECS 任務定義是否具有指定的記錄組態。如果工作定義未定義logConfiguration屬性,或者至少一個容器定義中的值logDriver為 null,則控制項會失敗。

記錄可協助您維護 Amazon 的可靠性、可用性和效能ECS。從工作定義收集資料可提供可見性,這可協助您偵錯程序並找出錯誤的根本原因。如果您使用的記錄解決方案不必在ECS工作定義中定義 (例如協力廠商記錄解決方案),您可以在確定正確擷取和傳遞記錄檔之後停用此控制項。

修補

若要為 Amazon ECS 任務定義定義日誌組態,請參閱 Amazon 彈性容器服務開發人員指南中的任務定義中的指定日誌組態。

[ECS.10] ECS Fargate 服務應該在最新的 Fargate 平台版本上運行

相關需求:NIST.800-53.R5 四二 (2)、NIST .800-53.R5 四 (2)、.800-53.R5 四二 (4) NIST NIST

類別:識別 > 漏洞、修補程式和版本管理

嚴重性:

資源類型:AWS::ECS::Service

AWS Config規則:ecs-fargate-latest-platform-version

排程類型:已觸發變更

參數:

  • latestLinuxVersion: 1.4.0(不可定制)

  • latestWindowsVersion: 1.0.0(不可定制)

此控制項可檢查 Amazon ECS Fargate 服務是否正在執行最新的 Fargate 平台版本。如果平台版本不是最新版本,則此控制項會失敗。

AWS Fargate 平台版本是指 Fargate 任務基礎結構的特定運行時環境,該基礎結構是內核和容器運行時版本的組合。隨著運行時環境的發展,新的平台版本會發布。例如,可能會針對核心或作業系統更新、新功能、錯誤修正或安全性更新發行新版本。系統會為 Fargate 任務自動部署安全性更新與修補程式。如果發現影響平台版本的安全性問題,請 AWS 修補平台版本。

修補

若要更新現有服務 (包括其平台版本),請參閱 Amazon 彈性容器服務開發人員指南中的更新服務

[ECS.12] ECS 叢集應使用容器深入解析

相關需求:澳洲六星期六 (3)、NIST .800-53.R5 澳大利亞六 (4)、NIST .800-53.R5 社區七、.800-53.R5 NIST NIST

類別:識別 > 記錄日誌

嚴重性:

資源類型:AWS::ECS::Cluster

AWS Config規則:ecs-container-insights-enabled

排程類型:已觸發變更

參數:

此控制項會檢查ECS叢集是否使用容器洞見。如果未針對叢集設定容器深入解析,則此控制項會失敗。

監控是維護 Amazon ECS 叢集可靠性、可用性和效能的重要組成部分。使用 CloudWatch 容器深入解析,從容器化應用程式和微服務收集、彙總和摘要指標和記錄。 CloudWatch 自動收集許多資源 (例如記憶體CPU、磁碟和網路) 的指標。Container Insights 還提供診斷資訊,例如容器重新啟動故障,協助您快速隔離和解決這些故障。您也可以針對容器深入解析收集的指標設定 CloudWatch 警示。

修補

若要使用容器洞見,請參Amazon 使用 CloudWatch 者指南中的更新服務

[ECS.13] ECS 服務應該被標記

類別:識別 > 庫存 > 標籤

嚴重性:

資源類型:AWS::ECS::Service

AWS Config規則:tagged-ecs-service(自訂 Security Hub 規則)

排程類型:已觸發變更

參數:

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

此控制項會檢查 Amazon ECS 服務是否具有標籤,其中包含參數中定義的特定金鑰requiredTagKeys。如果服務沒有任何標籤鍵,或者沒有在參數中指定的所有索引鍵,控制項就會失敗requiredTagKeys。如果requiredTagKeys未提供參數,控制項只會檢查標籤金鑰是否存在,如果服務未使用任何金鑰標記,則會失敗。系統標籤 (自動套用並以aws:開頭) 會被忽略。

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

注意

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

修補

若要將標籤新增至ECS服務,請參閱 Amazon 彈性容器服務開發人員指南中的標記 Amazon ECS 資源

[ECS.14] ECS 叢集應加上標記

類別:識別 > 庫存 > 標籤

嚴重性:

資源類型:AWS::ECS::Cluster

AWS Config規則:tagged-ecs-cluster(自訂 Security Hub 規則)

排程類型:已觸發變更

參數:

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

此控制項會檢查 Amazon ECS 叢集是否具有標籤,其中包含參數中定義的特定金鑰requiredTagKeys。如果叢集沒有任何標籤索引鍵或沒有在參數中指定的所有索引鍵,則控制項會失敗requiredTagKeys。如果requiredTagKeys未提供參數,則控制項只會檢查標籤金鑰是否存在,如果叢集未使用任何索引鍵標記,則會失敗。系統標籤 (自動套用並以aws:開頭) 會被忽略。

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

注意

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

修補

若要將標籤新增至ECS叢集,請參閱 Amazon 彈性容器服務開發人員指南中的標記 Amazon ECS 資源

[ECS.15] ECS 任務定義應該被標記

類別:識別 > 庫存 > 標籤

嚴重性:

資源類型:AWS::ECS::TaskDefinition

AWS Config規則:tagged-ecs-taskdefinition(自訂 Security Hub 規則)

排程類型:已觸發變更

參數:

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

此控制項會檢查 Amazon ECS 任務定義是否具有包含參數中定義之特定金鑰的標籤requiredTagKeys。如果工作定義沒有任何標籤索引鍵,或是沒有在參數中指定的所有索引鍵,控制項就會失敗requiredTagKeys。如果requiredTagKeys未提供參數,控制項只會檢查標籤索引鍵是否存在,如果工作定義未使用任何索引鍵標記,則會失敗。系統標籤 (自動套用並以aws:開頭) 會被忽略。

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

注意

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

修補

若要將標籤新增至ECS任務定義,請參閱 Amazon 彈性容器服務開發人員指南中的標記 Amazon ECS 資源