

# 保護運算
<a name="protecting-compute"></a>

運算資源包括 EC2 執行個體、容器、AWS Lambda 函數、資料庫服務、IoT 裝置等。這些運算資源類型中的每一種都需要不同的方法來保護。不過，這些運算資源類型共用您需要考慮的常用策略：深度防禦、漏洞管理、減少受攻擊面、組態和操作的自動化，以及遠距離執行動作。在本節中，您將找到有關保護關鍵服務之運算資源的一般指引。對於使用的每項 AWS 服務，請您務必檢查服務文件中的特定安全建議。

**Topics**
+ [SEC06-BP01 執行漏洞管理](sec_protect_compute_vulnerability_management.md)
+ [SEC06-BP02 從強化的影像佈建運算](sec_protect_compute_hardened_images.md)
+ [SEC06-BP03 減少手動管理和互動式存取](sec_protect_compute_reduce_manual_management.md)
+ [SEC06-BP04 驗證軟體完整性](sec_protect_compute_validate_software_integrity.md)
+ [SEC06-BP05 自動化運算保護](sec_protect_compute_auto_protection.md)

# SEC06-BP01 執行漏洞管理
<a name="sec_protect_compute_vulnerability_management"></a>

經常掃描和修補程式碼、相依性和基礎設施中的漏洞，以協助防禦新的威脅。

 **預期成果：**您擁有解決方案，可持續掃描工作負載以找出軟體漏洞、潛在缺陷和意料之外的網路暴露情形。您已建立流程和程序，可根據風險評估標準來識別、排定優先順序和修復這些漏洞。此外，您已為運算執行個體實作自動修補管理。您的漏洞管理計畫已整合至您的軟體開發生命週期，並且備有解決方案可在 CI/CD 管道中掃描原始程式碼。

 **常見的反模式：**
+  沒有漏洞管理計畫。
+  執行系統修補而不考慮嚴重性或避免風險。
+  使用已過廠商提供的結束生命週期日期的軟體。
+  在分析程式碼的安全問題之前將其部署至生產環境。

 **未建立此最佳實務時的曝險等級：**高 

## 實作指引
<a name="implementation-guidance"></a>

 漏洞管理是維護安全可靠的雲端環境的關鍵層面。它是一整套全方位的程序，包括安全性掃描、識別問題並排定優先順序，以及修補程式操作，以解決找到的漏洞。自動化在此過程中扮演關鍵角色，因為它有助於持續掃描工作負載，以找出潛在問題和意料之外的網路暴露情形，以及提供補救措施。

 [AWS 共同責任模型](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/shared-responsibility.html)是支援漏洞管理的基本概念。根據此模型，AWS 負責保護基本的基礎設施，包括執行 AWS 服務的硬體、軟體、網路和設備。另一方面，您負責保護與 Amazon EC2 執行個體和 Amazon S3 物件等服務相關聯的資料、安全組態和管理任務。

 AWS 提供一系列服務來支援漏洞管理計畫。[Amazon Inspector](https://aws.amazon.com/inspector/) 會持續掃描 AWS 工作負載，以找出軟體漏洞和意料之外的網路存取，而 [AWS Systems Manager Patch Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager.html) 會協助管理所有 Amazon EC2 執行個體的修補工作。這些服務可與 [AWS Security Hub CSPM](https://aws.amazon.com/security-hub/) 整合，這個雲端安全狀態管理服務可自動化 AWS 安全檢查、將安全提醒集中在一起，並提供全方位的視角來了解組織的安全狀態。此外，[Amazon CodeGuru 安全工具](https://aws.amazon.com/codeguru/)會在開發階段使用靜態程式碼分析，以識別 Java 和 Python 應用程式中的潛在問題。

 透過將漏洞管理實務納入軟體開發生命週期，您就可以在漏洞進入實際執行環境之前主動解決漏洞，從而降低安全事件的風險，並將漏洞可能造成的影響降至最低。

### 實作步驟
<a name="implementation-steps"></a>

1.  **了解共同責任模型：**檢閱 AWS 共同責任模型，以了解您在雲端保護工作負載和資料的責任。AWS 負責保護基礎雲端基礎設施，而您負責保護您使用的應用程式、資料和服務。

1.  **實作漏洞掃描**：設定漏洞掃描服務 (例如 Amazon Inspector) 以自動掃描您的運算執行個體 (例如，虛擬機器、容器或無伺服器函數)，藉此找出軟體漏洞、潛在缺陷和意料之外的網路暴露情形。

1.  **建立漏洞管理程序：**定義流程和程序來識別漏洞、排定優先順序和修復漏洞。這可能包括設定定期漏洞掃描排程、建立風險評估條件，以及根據漏洞嚴重性定義修復時間表。

1.  **設定修補程式管理：**使用修補程式管理服務來自動化修補運算執行個體的程序，包括作業系統和應用程式。您可以設定服務來掃描執行個體以找出缺少的修補程式，並依照排程自動進行安裝。考慮使用 AWS Systems Manager Patch Manager 來提供此功能。

1.  **設定惡意軟體防護：**實作各種機制來偵測您環境中的惡意軟體。例如，您可以使用 [Amazon GuardDuty](https://aws.amazon.com/guardduty/) 等工具來分析和偵測 EC2 和 EBS 磁碟區中的惡意軟體並發出警示。GuardDuty 也可以掃描新上傳到 Amazon S3 的物件，以找出潛藏的惡意軟體或病毒，並採取行動來隔離它們，以防它們進入下游程序。

1.  **在 CI/CD 管道中整合漏洞掃描：**如果您使用 CI/CD 管道進行應用程式部署，請將漏洞掃描工具整合到您的管道中。Amazon CodeGuru 安全工具和開放原始碼選項等工具可掃描您的原始程式碼、相依性和成品，以找出潛在的安全問題。

1.  **設定安全監控服務：**設定安全監控服務 (例如 AWS Security Hub CSPM)，以全面檢視多種雲端服務的安全狀態。監控服務應從各種不同的來源收集安全調查結果，並以標準化格式呈現，以更容易排定優先順序和修復。

1.  **實作 Web 應用程式滲透測試**：如果您的應用程式是 Web 應用程式，且您的組織具備必要的技能或能夠取得外部協助，請考慮實作 Web 應用程式滲透測試，以找出應用程式中的潛在漏洞。

1.  **利用基礎設施即程式碼實現自動化**：使用基礎設施即程式碼 (IaC) 工具 (例如 [AWS CloudFormation](https://aws.amazon.com/cloudformation/)) 將資源的部署和組態自動化，包括上述安全服務在內。此做法可協助您在多個帳戶和環境中建立更一致且標準化的資源架構。

1.  **監控並持續改進**：持續監控漏洞管理計畫的有效性，並視需要改進。檢閱安全調查結果、評估補救措施的有效性，並據以調整您的程序和工具。

## 資源
<a name="resources"></a>

 **相關文件：**
+  [AWS Systems Manager](https://aws.amazon.com/systems-manager/) 
+  [AWS Lambda 的安全概觀](https://pages.awscloud.com/rs/112-TZM-766/images/Overview-AWS-Lambda-Security.pdf) 
+ [ Amazon CodeGuru](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.html)
+ [ 透過全新的 Amazon Inspector 改進、自動化雲端工作負載的漏洞管理](https://aws.amazon.com/blogs/aws/improved-automated-vulnerability-management-for-cloud-workloads-with-a-new-amazon-inspector/)
+ [ 使用 Amazon Inspector 和 AWS Systems Manager 自動化 AWS 中的漏洞管理和修復 – 第 1 部分](https://aws.amazon.com/blogs/mt/automate-vulnerability-management-and-remediation-in-aws-using-amazon-inspector-and-aws-systems-manager-part-1/)

 **相關影片：**
+  [保護無伺服器和容器服務的安全](https://youtu.be/kmSdyN9qiXY) 
+  [Amazon EC2 執行個體中繼資料服務的安全最佳實務](https://youtu.be/2B5bhZzayjI) 

# SEC06-BP02 從強化的影像佈建運算
<a name="sec_protect_compute_hardened_images"></a>

 透過從強化的映像部署，就可減少意外存取執行時期環境的機會。僅從受信任的登錄檔取得執行時期相依項 (例如容器映像和應用程式庫)，並驗證其簽章。建立自己的私有登錄檔來儲存受信任的映像和程式庫，以供您的建置和部署程序使用。

 **預期成果：**您的運算資源是從強化的基準映像佈建。您只會從受信任的登錄檔擷取外部相依項 (例如容器映像和應用程式庫)，並驗證其簽章。這些都會儲存在私有登錄檔中，以供您的建置和部署程序參考。您會定期掃描和更新映像與相依項，以協助防禦任何新發現的漏洞。

 **常見的反模式：**
+  從受信任的登錄檔取得映像和程式庫，但未先驗證其簽章或執行漏洞掃描，即逕行使用。
+  強化映像，但未定期測試映像以確認是否有新的漏洞或更新到最新版本。
+  安裝或未移除在預期的映像生命週期內不需要的軟體套件。
+  僅仰賴修補來讓實際執行運算資源保持最新狀態。單單是修補就仍有可能導致運算資源在經過一段時間後，偏離強化的標準。修補也可能無法移除威脅行為者在安全事件期間安裝的惡意軟體。

 **建立此最佳實務的優勢：**強化映像有助於減少您的執行時期環境中可能成為未經授權使用者或服務意外存取路徑的數目。此外還能在發生任何意外存取的情況時，縮小影響的範圍。

 **未建立此最佳實務時的風險暴露等級：**高 

## 實作指引
<a name="implementation-guidance"></a>

 若要強化您的系統，請從作業系統、容器映像和應用程式庫的最新版本開始。套用已知問題的修補程式。移除任何不需要的應用程式、服務、裝置驅動程式、預設使用者和其他憑證，藉此盡可能縮減系統規模。採取任何其他必要的行動，例如，停用連接埠以建立只有工作負載所需資源和功能的環境。以此為基準，您就可以安裝用於監控工作負載或管理漏洞等操作所需的軟體、代理程式或其他程序。

 您可以使用受信任來源提供的指南來減輕強化系統的負擔，例如[網際網路安全中心 ](https://www.cisecurity.org/)（CIS） 和國防資訊系統局 （DISA） [安全技術實作指南 （STIGs）](https://public.cyber.mil/stigs/)。我們建議您從 AWS 或 APN合作夥伴發佈的 [Amazon Machine Image](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html) （AMI） 開始，並使用AWS [EC2 Image Builder](https://aws.amazon.com/image-builder/) 根據適當的 CIS和 STIG控制項組合來自動化組態。

 雖然有可用的強化映像和EC2映像建置器配方會套用 CIS或 DISASTIG建議，但您可能會發現其組態阻止軟體順利執行。在這種情況下，您可以從非強化基本映像開始，安裝軟體，然後逐步套用CIS控制項來測試其影響。對於防止軟體執行的任何CIS控制項，請測試您是否可以在 DISA 中實作更精細的強化建議。追蹤您能夠成功套用的不同CIS控制項和DISASTIG組態。使用這些選項，相應地在 Image Builder 中定義您的EC2映像強化配方。

 對於容器化工作負載，來自 Docker 的強化影像可在 [Amazon Elastic Container Registry （ECR）](https://aws.amazon.com/ecr/) [公有儲存庫 ](https://gallery.ecr.aws/docker)上取得。您可以使用 EC2 Image Builder 搭配 來強化容器映像AMIs。

 與作業系統和容器映像類似，您可以透過 pip、npm、Maven 和 等工具，從公有儲存庫取得程式碼套件 （或*程式庫* ） NuGet。我們建議您藉由整合私有儲存庫 (例如在 [AWS CodeArtifact](https://aws.amazon.com/codeartifact/) 內) 與受信任的公有儲存庫來管理程式碼套件。此整合可以 up-to-date為您處理擷取、儲存和保留套件。然後，您的應用程式建置程序可以使用 Software Composition Analysis （SCA）、Static Application Security Testing （SAST） 和 Dynamic Application Security Testing （） 等技術，取得並測試這些套件的最新版本DAST。

 對於使用 的無伺服器工作負載 AWS Lambda， 可簡化使用 [Lambda 層管理套件相依性。](https://docs.aws.amazon.com/lambda/latest/dg/chapter-layers.html)使用 Lambda 層設定一組跨不同函數共用的標準相依項，並放入獨立的封存中。您可以透過自己的建置程序來建立和維護層，為您的函數提供保留 的中央方式 up-to-date。

## 實作步驟
<a name="implementation-steps"></a>
+  強化作業系統。使用信任來源的基本映像作為建置強化 的基礎AMIs。使用 [EC2 Image Builder](https://aws.amazon.com/image-builder/) 協助自訂安裝在映像上的軟體。
+  強化容器化資源。設定容器化資源以符合安全最佳實務。使用容器時，請在建置管道中實作[ECR映像掃描](https://docs.aws.amazon.com/AmazonECR/latest/userguide/image-scanning.html)，並定期針對映像儲存庫實作映像掃描，以便在CVEs容器中尋找。  
+  搭配 使用無伺服器實作時 AWS Lambda，請使用 [Lambda 層](https://docs.aws.amazon.com/lambda/latest/dg/chapter-layers.html)來分隔應用程式函數程式碼和共用相依程式庫。為 Lambda 設定[程式碼簽署](https://docs.aws.amazon.com/lambda/latest/dg/configuration-codesigning.html)，確保只有受信任的程式碼能夠在您的 Lambda 函數中執行。

## 資源
<a name="resources"></a>

 **相關的最佳實務：**
+  [OPS05-BP05 執行修補程式管理](https://docs.aws.amazon.com/wellarchitected/latest/framework/ops_dev_integ_patch_mgmt.html) 

 **相關影片：**
+  [深入探索 AWS Lambda 安全性](https://www.youtube.com/watch?v=FTwsMYXWGB0) 

 **相關範例：**
+  [AMI使用 EC2 Image Builder 快速建置 STIG合規](https://aws.amazon.com/blogs/security/quickly-build-stig-compliant-amazon-machine-images-using-amazon-ec2-image-builder/) 
+  [建置更好的容器映像](https://aws.amazon.com/blogs/containers/building-better-container-images/) 
+  [使用 Lambda 層簡化開發流程](https://aws.amazon.com/blogs/compute/using-lambda-layers-to-simplify-your-development-process/) 
+  [使用無伺服器架構開發和部署 AWS Lambda 層](https://github.com/aws-samples/aws-serverless-lambda-layers) 
+  [使用開放原始碼 SCA、 SAST和 DAST 工具建置 end-to-end AWS DevSecOps CI/CD 管道](https://aws.amazon.com/blogs/devops/building-end-to-end-aws-devsecops-ci-cd-pipeline-with-open-source-sca-sast-and-dast-tools/) 

# SEC06-BP03 減少手動管理和互動式存取
<a name="sec_protect_compute_reduce_manual_management"></a>

 盡可能使用自動化方式來執行部署、組態、維護和調查任務。在發生緊急程序的情況下或在安全 (沙盒) 環境中無法啟用自動化時，請考慮手動存取運算資源。

 **預期成果：**程式化的指令碼和自動化文件 (執行手冊) 會擷取運算資源上獲得授權的動作。這些執行手冊會自動啟動、透過變更偵測系統啟動，或是在需要人為判斷時手動啟動。只有在無法啟用自動化的緊急情況下，才能直接存取運算資源。所有手動活動都會加以記錄並納入審查程序中，以持續改善您的自動化功能。

 **常見的反模式：**
+  透過 SSH 或 RDP 等協定互動式存取 Amazon EC2 執行個體。
+  維護個別使用者登入，例如 `/etc/passwd` 或 Windows 本機使用者。
+  在多個使用者之間共用密碼或私有金鑰以存取執行個體。
+  手動安裝軟體和建立或更新組態檔案。
+  手動更新或修補軟體。
+  登入執行個體以對問題進行疑難排解。

 **建立此最佳實務的優勢：**透過自動化方式執行步驟，有助於降低意外變更和組態錯誤伴隨的操作風險。不再使用 Secure Shell (SSH) 和遠端桌面協定 (RDP) 進行互動式存取，因此縮小了運算資源的存取範圍。這樣也消除了常見的未經授權動作路徑。在自動化文件和程式化指令碼中寫入運算資源管理任務，提供了以更精細的細節程度定義和稽核完整的授權活動範圍的機制。

 **未建立此最佳實務時的曝險等級：**中 

## 實作指引
<a name="implementation-guidance"></a>

 登入執行個體是系統管理的傳統方法。安裝伺服器作業系統後，使用者通常會手動登入以設定系統並安裝所需的軟體。在伺服器的生命週期內，使用者可能會登入以執行軟體更新、套用修補程式、變更組態及對問題進行疑難排解。

 但是，手動存取伴隨著許多風險。它需要伺服器監聽請求，例如 SSH 或 RDP 服務，而這些服務可能成為未經授權的存取路徑。此外，它也會增加執行手動步驟時發生人為錯誤的風險。這些都可能導致工作負載事件、資料損壞或銷毀，或其他安全問題。人為存取也需要設置防護措施來防止憑證共用行為，因而產生額外的管理負擔。  

 為了降低這些風險，您可以實作代理程式型遠端存取解決方案，例如 [AWS Systems Manager](https://aws.amazon.com/systems-manager/)。AWS Systems ManagerAgent (SSM Agent) 會啟動加密通道，因此不需仰賴偵聽外部發出的請求。請考慮設定 SSM Agent 以[透過 VPC 端點建立此通道](https://docs.aws.amazon.com/systems-manager/latest/userguide/setup-create-vpc.html)。

 Systems Manager 可讓您精細控制與受管執行個體互動的方式。您可以定義要執行的自動化程序、誰可以執行它們，以及何時可以執行。Systems Manager 不需互動式存取執行個體，即可套用修補程式、安裝軟體及進行組態變更。Systems Manager 還可提供對遠端 Shell 的存取權，並將工作階段期間調用的每個命令及其輸出記錄到日誌和 [Amazon S3](https://aws.amazon.com/s3/)。[AWS CloudTrail](https://aws.amazon.com/cloudtrail/) 會記錄 Systems Manager API 的調用以供檢測。

### 實作步驟
<a name="implementation-steps"></a>

1.  在 Amazon EC2 執行個體上[安裝 AWS Systems Manager Agent](https://docs.aws.amazon.com/systems-manager/latest/userguide/manually-install-ssm-agent-linux.html) (SSM Agent)。查看是否包含 SSM Agent，且它會作為基本 AMI 組態的一部分自動啟動。

1.  確認與您的 EC2 執行個體設定檔關聯的 IAM 角色是否包含 `AmazonSSMManagedInstanceCore` [受管 IAM 政策](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSSMManagedInstanceCore.html)。

1.  停用執行個體上執行的 SSH、RDP 及其他遠端存取服務。您可以藉由執行啟動範本的使用者資料區段中設定的指令碼，或使用 EC2 Image Builder 等工具建置自訂 AMI，以執行此操作。

1.  確認適用於 EC2 執行個體的安全群組輸入規則不允許在連接埠 22/tcp (SSH) 或連接埠 3389/tcp (RDP) 上的存取。使用 AWS Config 等服務實作偵測，並對設定錯誤的安全群組發出提醒。

1.  定義適當的自動化、執行手冊，並在 Systems Manager 中執行命令。使用 IAM 政策定義誰可以執行這些動作，以及允許執行這些動作的條件。在非實際執行環境中完整測試這些自動化程序。在必要時調用這些自動化程序，而非以互動方式存取執行個體。

1.  在必要時，使用 [AWS Systems Manager Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager.html) 提供對執行個體的互動式存取。開啟工作階段活動日誌記錄，以在 [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) 或 [Amazon S3](https://aws.amazon.com/s3/) 中維護稽核記錄。  

## 資源
<a name="resources"></a>

 **相關的最佳實務：**
+  [REL08-BP04 使用不可變基礎設施進行部署](https://docs.aws.amazon.com/wellarchitected/latest/framework/rel_tracking_change_management_immutable_infrastructure.html) 

 **相關範例：**
+  [使用 AWS Systems Manager 取代 SSH 存取以減輕管理和安全負擔](https://aws.amazon.com/blogs/mt/vr-beneficios-session-manager/) 

 **相關工具：**
+  [AWS Systems Manager](https://aws.amazon.com/systems-manager/) 

 **相關影片：**
+  [在 AWS Systems Manager Session Manager 中控制使用者工作階段對執行個體的存取權](https://www.youtube.com/watch?v=nzjTIjFLiow) 

# SEC06-BP04 驗證軟體完整性
<a name="sec_protect_compute_validate_software_integrity"></a>

 使用加密驗證來驗證工作負載所使用之軟體成品 (包括映像) 的完整性。 以加密方式簽署您的軟體，以防範未經授權的變更在您的運算環境內執行。

 **預期成果：**所有成品都是從受信任的來源取得。廠商網站憑證經過驗證。 下載的成品已藉由簽章以加密方式驗證。自有軟體會由您的運算環境以加密方式簽署和驗證。

 **常見的反模式：**
+  信任信譽良好的廠商網站來取得軟體成品，但忽略憑證到期通知。 未先確認憑證是否有效，即逕行下載。
+  驗證廠商網站憑證，但未以加密方式驗證從這些網站下載的成品。
+  僅仰賴摘要或雜湊值來驗證軟體完整性。 雜湊值確定成品的原版未經修改，但未驗證其來源。
+  即使僅在您自己的部署中使用，也未簽署自有軟體、程式碼或程式庫。  

 **建立此最佳實務的優勢：**驗證您的工作負載所依賴之成品的完整性，有助於防止惡意軟體進入您的運算環境。 簽署您的軟體有助於防範運算環境中發生未經授權執行的情況。  藉由簽署和驗證程式碼來保護您的軟體供應鏈。

 **未建立此最佳實務時的風險暴露等級：**中 

## 實作指引
<a name="implementation-guidance"></a>

 作業系統映像、容器映像和程式碼成品通常在散佈時會提供完整性檢查，例如透過摘要或雜湊值。 這些檢查可讓用戶端運算自有的承載雜湊值並確認其與發佈的雜湊值相同，藉此驗證完整性。 雖然這些檢查有助於驗證承載未遭到竄改，但不會驗證承載來自原始出處 (其*來源*)。 驗證來源需要使用受信任的授權機構發出的憑證來數位簽署成品。

 如果您在工作負載中使用下載的軟體或成品，請檢查提供者是否提供了用於驗證數位簽章的公有金鑰。 以下一些範例說明 AWS 如何提供公有金鑰，以及如何驗證我們發佈的軟體：
+  [EC2 Image Builder：驗證安裝下載的 AWS TOE簽章](https://docs.aws.amazon.com/imagebuilder/latest/userguide/awstoe-verify-sig.html) 
+  [AWS Systems Manager：驗證SSM客服人員的簽章](https://docs.aws.amazon.com/systems-manager/latest/userguide/verify-agent-signature.html) 
+  [Amazon CloudWatch：驗證 CloudWatch 客服人員套件的簽章](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/verify-CloudWatch-Agent-Package-Signature.html) 

 將數位簽章驗證納入您用於取得和強化影像的程序，如 [SEC06-BP02 佈建來自強化影像的運算](https://docs.aws.amazon.com/wellarchitected/latest/framework/sec_protect_compute_hardened_images.html)中所述。

 您可以使用 [AWS Signer](https://docs.aws.amazon.com/signer/latest/developerguide/Welcome.html) 協助您管理簽章驗證，以及您自有軟體和成品的程式碼簽署生命週期。 [AWS Lambda](https://aws.amazon.com/lambda/) 和 [Amazon Elastic Container Registry](https://aws.amazon.com/ecr/) 兩者都提供與 Signer 的整合，可用來驗證程式碼和映像的簽章。 您可以使用「資源」區段中的範例，將 Signer 納入您的持續整合和交付 (CI/CD) 管道中，以便自動驗證簽章及自動簽署自有程式碼和映像。

## 資源
<a name="resources"></a>

 **相關文件：**
+  [容器的加密簽署](https://aws.amazon.com/blogs/containers/cryptographic-signing-for-containers/) 
+  [使用 協助保護容器映像建置管道的最佳實務 AWS Signer](https://aws.amazon.com/blogs/security/best-practices-to-help-secure-your-container-image-build-pipeline-by-using-aws-signer/) 
+  [宣佈使用 AWS Signer 和 Amazon 進行容器映像簽署 EKS](https://aws.amazon.com/blogs/containers/announcing-container-image-signing-with-aws-signer-and-amazon-eks/) 
+  [設定 的程式碼簽署 AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/configuration-codesigning.html) 
+  [Lambda 程式碼簽署的最佳實務和進階模式](https://aws.amazon.com/blogs/security/best-practices-and-advanced-patterns-for-lambda-code-signing/) 
+  [使用 AWS Certificate Manager Private CA AWS Key Management Service 和非對稱金鑰進行程式碼簽署](https://aws.amazon.com/blogs/security/code-signing-aws-certificate-manager-private-ca-aws-key-management-service-asymmetric-keys/) 

 **相關範例：**
+  [使用 Amazon CodeCatalyst 和 自動化 Lambda 程式碼簽署 AWS Signer](https://aws.amazon.com/blogs/devops/automate-lambda-code-signing-with-amazon-codecatalyst-and-aws-signer/) 
+  [使用 簽署和驗證OCI偽影 AWS Signer](https://aws.amazon.com/blogs/containers/signing-and-validating-oci-artifacts-with-aws-signer/) 

 **相關工具：**
+  [AWS Lambda](https://aws.amazon.com/lambda/) 
+  [AWS Signer](https://docs.aws.amazon.com/signer/latest/developerguide/Welcome.html) 
+  [AWS Certificate Manager](https://aws.amazon.com/certificate-manager/) 
+  [AWS Key Management Service](https://aws.amazon.com/kms/) 
+  [AWS CodeArtifact](https://aws.amazon.com/codeartifact/) 

# SEC06-BP05 自動化運算保護
<a name="sec_protect_compute_auto_protection"></a>

 自動化運算保護操作以減少人工介入的需求。使用自動化掃描偵測運算資源內的潛在問題，並透過自動化的程式化回應或機群管理操作進行修復。 將自動化納入 CI/CD 程序，以部署具有最新相依項且值得信賴的工作負載。

 **預期成果：**自動化系統會執行運算資源的所有掃描和修補工作。您會使用自動化的驗證方式檢查軟體映像和相依項來自受信任的來源，且未遭到竄改。透過自動化方式檢查工作負載是否有最新的相依項，並且簽署工作負載以在 AWS 運算環境中建立可靠性。 偵測到不合規資源時，系統會啟動自動補救措施。  

 **常見的反模式：**
+  遵循不可變的基礎設施實務，但未備妥解決方案來因應緊急修補或取代實際執行系統。
+  使用自動化方式修復設定錯誤的資源，但未設置手動覆寫機制。 可能會發生需要調整需求的情況，且您可能需要暫停自動化程序，直到完成這些變更為止。

 **建立此最佳實務的優勢：**自動化可降低未經授權存取和使用您的運算資源的風險。 它有助於防止錯誤的組態進入實際執行環境，並且在發生組態錯誤時偵測到該錯誤並加以修復。 自動化還可協助偵測未經授權存取和使用運算資源的情況，進而縮短您回應的時間。 如此還能進一步縮小問題的整體影響範圍。

 **未建立此最佳實務時的曝險等級：**中 

## 實作指引
<a name="implementation-guidance"></a>

 您可以套用「安全支柱」實務中所述的自動化方式，以保護您的運算資源。[SEC06-BP01 執行漏洞管理](https://docs.aws.amazon.com/wellarchitected/latest/framework/sec_protect_compute_vulnerability_management.html)說明如何在您的 CI/CD 管道中使用 [Amazon Inspector](https://aws.amazon.com/inspector/)，以及如何運用它持續掃描您的執行時期環境，以找出已知的通用漏洞披露 (CVE)。 您可以透過自動化執行手冊，使用 [AWS Systems Manager](https://aws.amazon.com/systems-manager/) 套用修補程式或從全新映像重新部署，讓您的運算機群隨時擁有最新的軟體和程式庫。 使用這些技術可減少對手動程序和互動式存取運算資源的需求。 請參閱 [SEC06-BP03 減少手動管理和互動式存取](https://docs.aws.amazon.com/wellarchitected/latest/framework/sec_protect_compute_reduce_manual_management.html)以了解更多資訊。

 自動化在部署值得信賴的工作負載方面，也發揮了舉足輕重的作用，如 [SEC06-BP02 從強化的映像佈建運算](https://docs.aws.amazon.com/wellarchitected/latest/framework/sec_protect_compute_hardened_images.html)和 [SEC06-BP04 驗證軟體完整性](https://docs.aws.amazon.com/wellarchitected/latest/framework/sec_protect_compute_validate_software_integrity.html)中所述。 您可以使用 [EC2 Image Builder](https://aws.amazon.com/image-builder/)、[AWS Signer](https://docs.aws.amazon.com/signer/latest/developerguide/Welcome.html)、[AWS CodeArtifact](https://aws.amazon.com/codeartifact/) 和 [Amazon Elastic Container Registry (ECR)](https://aws.amazon.com/ecr/) 等服務來下載、驗證、建構和儲存強化且經核准的映像和程式碼相依項。  除了 Inspector 之外，這些都可在 CI/CD 程序中發揮作用。因此，只有在確認工作負載的相依項為最新狀態且來自受信任的來源時，工作負載才會進入實際執行環境。 您的工作負載也會經過簽署，如此一來，[AWS Lambda](https://aws.amazon.com/lambda/) 和 [Amazon Elastic Kubernetes Service (EKS)](https://aws.amazon.com/eks/) 等 AWS 運算環境就能在確認其未遭到竄改後，再允許其執行。

 除了這些預防性控制之外，您還可以在偵測控制中針對運算資源使用自動化。 舉例來說，[AWS Security Hub CSPM](https://aws.amazon.com/security-hub/) 提供 [NIST 800-53 Rev. 5](https://docs.aws.amazon.com/securityhub/latest/userguide/nist-standard.html) 標準，其中包括如下述的檢查：[[EC2.8] EC2 執行個體應使用執行個體中繼資料服務第 2 版 (IMDSv2)](https://docs.aws.amazon.com/securityhub/latest/userguide/ec2-controls.html#ec2-8)。 IMDSv2 會使用工作階段驗證技術，封鎖包含 X-Forwarded-For HTTP 標頭以及網路 TTL 1 的請求，藉此阻止來自外部來源的流量擷取有關 EC2 執行個體的資訊。Security Hub CSPM 中的這項檢查可偵測 EC2 執行個體何時使用 IMDSv1，並實施自動補救措施。請參閱 [SEC04-BP04 針對不合規資源實施補救措施](https://docs.aws.amazon.com/wellarchitected/latest/framework/sec_detect_investigate_events_noncompliant_resources.html)，進一步了解自動化偵測和補救措施。

### 實作步驟
<a name="implementation-steps"></a>

1.  使用 [EC2 Image Builder](https://docs.aws.amazon.com/imagebuilder/latest/userguide/integ-compliance-products.html) 自動建立安全、合規且強化的 AMI。 您可以產生映像，並於當中納入來自 Center for Internet Security (CIS) Benchmarks 的控制，或來自基本 AWS 和 APN 合作夥伴映像的安全技術實作指南 (STIG) 標準。

1.  自動化組態管理。藉由使用組態管理服務或工具，在您的運算資源中自動強制執行和驗證安全組態。  

   1.  使用 [AWS Config](https://aws.amazon.com/config/) 自動化組態管理 

   1.  使用 [AWS Security Hub CSPM](https://aws.amazon.com/security-hub/) 自動化安全和合規狀態管理 

1.  自動修補或取代 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體。AWSSystems Manager Patch Manager 可自動執行透過安全相關及其他更新來修補受管執行個體的程序。您可以使用修補程式管理員以套用適用於作業系統和應用程式的修補程式。

   1.  [AWS Systems Manager Patch Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-patch.html) 

1.  自動掃描運算資源以找出通用漏洞披露 (CVE)，並將安全掃描解決方案內嵌於您的建置管道中。

   1.  [Amazon Inspector](https://aws.amazon.com/inspector/) 

   1.  [ECR 映像掃描](https://docs.aws.amazon.com/AmazonECR/latest/userguide/image-scanning.html) 

1.  考慮使用 Amazon GuardDuty 執行自動化惡意軟體和威脅偵測，以保護運算資源。GuardDuty 還可在 [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) 函數於您的 AWS 環境中調用時，識別潛在問題。  

   1.  [Amazon GuardDuty](https://aws.amazon.com/guardduty/) 

1.  考慮 AWS 合作夥伴解決方案。AWS合作夥伴提供領先業界的產品，這些產品與您內部部署環境中的現有控制相當、相同或互相整合。這些產品可補充現有的 AWS 服務，讓您在雲端和內部部署環境中部署全方位的安全架構，以及擁有更流暢的體驗。

   1.  [基礎設施安全性](https://aws.amazon.com/security/partner-solutions/#infrastructure_security) 

## 資源
<a name="resources"></a>

 **相關的最佳實務：**
+  [SEC01-BP06 自動部署標準安全控制](https://docs.aws.amazon.com/wellarchitected/latest/framework/sec_securely_operate_automate_security_controls.html) 

 **相關文件：**
+  [在您的 AWS 基礎設施內充分利用 IMDSv2 的優勢並停用 IMDSv1](https://aws.amazon.com/blogs/security/get-the-full-benefits-of-imdsv2-and-disable-imdsv1-across-your-aws-infrastructure/) 

 **相關影片：**
+  [Amazon EC2 執行個體中繼資料服務的安全最佳實務](https://youtu.be/2B5bhZzayjI) 