

# 資料保護
<a name="data-protection"></a>

在建構任何工作負載之前，應先制訂有影響安全的基礎實務。例如，資料分類可基於敏感性等級將資料分類，加密則能對未經授權的存取將資料呈現為無法辨識，以保護資料。這些方法之所以重要，因為能支援例如防止處理不當，或遵循法規義務等目標。

在 AWS 中，進行資料保護時有多種不同的方法可供使用。以下一節介紹如何使用這些方法。

**Topics**
+ [資料分類](data-classification.md)
+ [保護靜態資料](protecting-data-at-rest.md)
+ [保護傳輸中的資料](protecting-data-in-transit.md)

# 資料分類
<a name="data-classification"></a>

資料分類可讓您根據關鍵性和敏感度將組織資料分類，協助判定適當的保護和保留控制。

**Topics**
+ [SEC07-BP01 了解您的資料分類機制](sec_data_classification_identify_data.md)
+ [SEC07-BP02 根據資料敏感性實施資料保護控制](sec_data_classification_define_protection.md)
+ [SEC07-BP03 自動識別和分類](sec_data_classification_auto_classification.md)
+ [SEC07-BP04 定義可擴展的資料生命週期管理](sec_data_classification_lifecycle_management.md)

# SEC07-BP01 了解您的資料分類機制
<a name="sec_data_classification_identify_data"></a>

 了解您的工作負載要處理的資料分類、其處理需求、關聯的業務流程、資料儲存在何處，以及誰是資料擁有者。 您的資料分類和處理機制應考慮工作負載的適用法律和合規需求，以及需要何種資料控制。了解資料是資料分類之旅的第一步。  

 **預期成果：**您的工作負載中存在的資料類型已得到充分了解並加以記錄。 設置了適當的控制，可根據資料分類來保護敏感資料。 這些控制左右著下列考量：允許誰存取資料及存取的目的為何、資料儲存在何處、該資料的加密政策及如何管理加密金鑰、資料的生命週期及其保留需求、適當的銷毀程序、設置了哪些備份和復原程序，以及存取權稽核。

 **常見的反模式：**
+  未制定正式的資料分類政策來定義資料敏感程度及其處理需求 
+  未充分了解工作負載內資料的敏感程度，也未在架構和營運文件中擷取這些資訊 
+  未能根據您的資料分類和處理政策中所述的資料敏感程度和需求，對資料實施適當的控制 
+  未能向政策負責人提供有關資料分類和處理需求的意見回饋。

 **建立此最佳實務的優勢：**此實務可消除有關適當處理工作負載內資料的不確定性。 實施正式政策來定義組織中資料的敏感程度及其所需防護措施，有助於符合法律規範和其他網路安全鑑定與認證。 工作負載負責人清楚知道敏感資料儲存在何處以及設置了哪些保護控制，因而能夠放心。 將這些資訊納入文件中，可協助新的團隊成員更充分了解並在任職期間及早採取控制。這些實務還可針對每一種資料類型實施適當的控制，進而有助於降低成本。

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

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

 在設計工作負載時，您可能會考量採取直接了當的方式保護敏感資料。 例如，在多租用戶應用程式中，直接將每一個租用戶的資料視為敏感資料並採取防護措施，讓租用戶無法存取其他租用戶的資料。 同樣地，您可能會直接設計存取控制，只讓管理員修改資料，而其他使用者只擁有讀取層級存取權，或完全無存取權。

 藉由在政策中定義並擷取這些資料敏感程度，以及其資料保護需求，您就能正式確定哪些資料要放在您的工作負載中。然後，您可以確定是否設置了正確的控制、是否可稽核控制，以及在發現資料遭不當處理的情況時，要採取何種適當的回應。

 為了有助於識別敏感資料存放在工作負載中的位置，請考慮使用資料目錄。資料目錄是對應您組織中資料的資料庫，其位置、敏感度層級和既有控制機制都會保護該資料。此外，請考慮使用可用的[資源標籤](https://docs.aws.amazon.com/whitepapers/latest/tagging-best-practices/tagging-best-practices.html)。 例如，您可以對受保護醫療資訊 (PHI) 套用*標籤索引鍵*為 `Classification` 且*標籤值*為 `PHI` 的標籤，以及另一個*標籤索引鍵*為 `Sensitivity` 且*標籤值*為 `High` 的標籤。 然後，您可以使用 [AWS Config](https://aws.amazon.com/config/) 等服務來監控這些資源是否發生變更，並且在發生修改後導致資源不符合保護需求 (例如變更加密設定) 的情況時發出提醒。 您可以使用[標籤政策](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_tag-policies.html) (AWS Organizations 的功能) 擷取標籤索引鍵的標準定義和可接受的值。不建議在標籤索引鍵或值中包含私人或敏感資料。

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

1.  了解組織的資料分類機制和保護需求。

1.  識別工作負載處理的敏感資料類型。

1.  在資料目錄中擷取資料，該目錄提供單一檢視讓您得知資料在組織中的位置，以及該資料的敏感度層級。

1.  考慮使用資源和資料層級標記 (如可用) 來標記資料的敏感程度和其他操作中繼資料，以協助監控和回應事件。

   1.   AWS Organizations 標籤政策可用來強制實施標記標準。

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

 **相關的最佳實務：**
+  [SUS04-BP01 實作資料分類政策](https://docs.aws.amazon.com/wellarchitected/latest/framework/sus_sus_data_a2.html) 

 **相關文件：**
+  [資料分類白皮書](https://docs.aws.amazon.com/whitepapers/latest/data-classification/data-classification-overview.html) 
+  [標記 AWS 資源的最佳實務](https://docs.aws.amazon.com/whitepapers/latest/tagging-best-practices/tagging-best-practices.html) 

 **相關範例：**
+  [AWS Organizations 標籤政策語法和範例](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_example-tag-policies.html) 

 **相關工具** 
+  [AWS Tag Editor](https://docs.aws.amazon.com/tag-editor/latest/userguide/tag-editor.html) 

# SEC07-BP02 根據資料敏感性實施資料保護控制
<a name="sec_data_classification_define_protection"></a>

 實施資料保護控制，為您分類政策中定義的每一個資料類別提供適當的控制層級。 此實務可讓您保護敏感資料防止遭到未經授權的存取和使用，同時讓資料保持可用且實用。

 **預期成果：**您設置了分類政策，在組織中定義不同程度的資料敏感性。 您針對每一種敏感程度發布了清楚的指引，以界定核准的儲存和處理服務與位置，以及其所需的組態。 您根據所需的保護層級及其關聯成本，針對每一種敏感程度實施控制。 您設置了監控和提醒，以偵測資料是否出現在未經授權的位置、在未經授權的環境中經過處理、遭到未經授權的人員存取，或是相關服務的組態是否變得不合規。

 **常見的反模式：**
+  對所有資料實施相同層級的保護控制。這可能會導致對低敏感性資料過度佈建安全控制，或對高敏感性資料的保護不足。
+  在定義資料保護控制時，未邀集安全、合規和業務團隊的利害關係人參與此過程。
+  忽略實施和維護資料保護控制伴隨的營運支出和成本。
+  未定期審查資料保護控制，而未能持續遵循分類政策。
+  沒有靜態資料和傳輸中資料位置的完整庫存。

 **建立此最佳實務的優勢：**藉由依照資料分類層級實施您的控制，您的組織就能在需要時投入更高層級的控制。這可能包括增加保障安全、監控、衡量、修復和報告方面的資源。 在適度採取較少控制的情況下，您可以改善員工、客戶或成員使用的資料存取性和完整性。 此方法為您的組織帶來了最大的資料使用彈性，同時遵守資料保護要求。

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

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

 根據資料敏感程度實施資料保護控制的方式包含幾個重要的步驟。首先，識別工作負載架構內不同的資料敏感程度 (例如公開、內部、機密和受限)，並評估您儲存和處理這些資料的位置。接著，根據資料敏感程度定義其隔離界限。建議您使用[服務控制政策](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) (SCP) 將資料分隔到不同的 AWS 帳戶 中，以限制每一種資料敏感程度允許的服務和動作。這樣一來，您就可以建立強大的隔離界限，並強制執行最低權限原則。

 定義隔離界限之後，根據資料敏感程度實施適當的保護控制。請參閱[保護靜態資料](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/protecting-data-at-rest.html)和[保護傳輸中的資料](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/protecting-data-in-transit.html)的最佳實務，以實作加密、存取控制和稽核等相關控制。考慮採用記號化或匿名化等技術來降低資料的敏感程度。採用集中式系統進行記號化和去記號化，以簡化對整個企業套用一致的資料政策的程序。

 持續監控和測試所實作控制的有效性。隨著組織的資料態勢和威脅發展，定期審查和更新資料分類機制、風險評估和保護控制。實作的資料保護控制務必遵循相關產業法規、標準和法律要求。此外，提供安全意識和培訓，協助員工了解資料分類機制及他們在處理和保護敏感資料方面的責任。

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

1.  識別工作負載內資料的分類和敏感程度。

1.  為每一種敏感程度定義隔離界限，並確定執行策略。

1.  評估您定義的控制是否確實有效控管您的資料分類政策規定的存取、加密、稽核、保留和其他方面。

1.  評估能適時降低資料敏感程度的選項，例如使用記號化或匿名化。

1.  使用自動測試和監控所設定資源的方式來驗證您的控制。

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

 **相關的最佳實務：**
+  [PERF03-BP01 使用最能滿足資料存取和儲存需求的專用資料存放區](https://docs.aws.amazon.com/wellarchitected/latest/framework/perf_data_use_purpose_built_data_store.html) 
+  [COST04-BP05 強制執行資料保留政策](https://docs.aws.amazon.com/wellarchitected/latest/framework/cost_decomissioning_resources_data_retention.html) 

 **相關文件：**
+  [資料分類白皮書](https://docs.aws.amazon.com/whitepapers/latest/data-classification/data-classification.html) 
+  [安全、身分及合規最佳實務](https://aws.amazon.com/architecture/security-identity-compliance/?cards-all.sort-by=item.additionalFields.sortDate&cards-all.sort-order=desc&awsf.content-type=*all&awsf.methodology=*all) 
+  [AWS KMS 最佳實務](https://docs.aws.amazon.com/kms/latest/developerguide/best-practices.html) 
+  [AWS 服務的加密最佳實務和功能](https://docs.aws.amazon.com/prescriptive-guidance/latest/encryption-best-practices/welcome.html) 

 **相關範例：**
+  [建置無伺服器記號化解決方案為敏感資料提供遮罩](https://aws.amazon.com/blogs/compute/building-a-serverless-tokenization-solution-to-mask-sensitive-data/) 
+  [如何使用記號化的方式來提高資料安全並縮小稽核範圍](https://aws.amazon.com/blogs/security/how-to-use-tokenization-to-improve-data-security-and-reduce-audit-scope/) 

 **相關工具：**
+  [AWS Key Management Service (AWS KMS)](https://aws.amazon.com/kms/) 
+  [AWS CloudHSM](https://aws.amazon.com/cloudhsm/) 
+  [AWS Organizations](https://aws.amazon.com/organizations/) 

# SEC07-BP03 自動識別和分類
<a name="sec_data_classification_auto_classification"></a>

 將資料的識別和分類自動化，可協助您實作正確的控制。使用自動化增強手動判斷，可降低人為錯誤和暴露的風險。

 **預期成果：**您可根據您的分類和處理政策來確認是否有適當的控制。自動化工具和服務可協助您識別和分類資料的敏感程度。 自動化還可協助您持續監控環境，以偵測並提醒未經授權的資料儲存或處理行為，以便快速採取更正動作。

 **常見的反模式：**
+  僅仰賴手動程序來識別和分類資料，這個過程可能容易出錯且相當耗時。 這樣做可能導致資料分類效率不彰且不一致，尤其隨著資料量增加會每況愈下。
+  未設置追蹤和管理整個組織中資料資產的機制。
+  即使資料在組織內移動和發展，組織仍然忽略持續監控和分類資料的需要。

 **建立此最佳實務的優勢：**採取自動識別和分類資料的方式，能夠更一致且準確地實施資料保護控制，進而降低人為錯誤的風險。 自動化還可讓您深入洞悉敏感資料存取和移動的情形，進而協助您偵測未經授權的處理，並採取更正動作。

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

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

 在工作負載的初始設計階段常會採用人為判斷來分類資料，盡管如此，仍請考慮設置系統來自動識別和分類測試資料，以此做為預防性控制。例如，您可提供工具或服務讓開發人員用來掃描代表性的資料，以確定其敏感性。 在 AWS 內，您可以將資料集上傳到 [Amazon S3](https://aws.amazon.com/s3/)，並使用 [Amazon Macie](https://aws.amazon.com/macie/)、[Amazon Comprehend](https://aws.amazon.com/comprehend/) 或 [Amazon Comprehend Medical](https://aws.amazon.com/comprehend/medical/) 掃描這些資料集。  同樣地，請考慮在單元和整合測試的過程中掃描資料，以偵測不該出現敏感資料的位置。在此階段發出有關敏感資料的提醒，就能在部署到實際執行環境之前，讓防護措施的落差浮現。其他諸如 [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/detect-PII.html)、[Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-message-data-protection-managed-data-identifiers.htm) 和 [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data.html) 中的敏感資料偵測等功能，也可用來偵測 PII 和採取緩解措施。對於任何自動化工具或服務，務必了解其如何定義敏感資料，並利用其他人為或自動化解決方案加強它，以視需要消除任何落差。

 持續監控您的環境，以其做為偵測控制，藉以偵測敏感資料是否以不合規的方式儲存。 這樣做有助於偵測出在未適當去識別化或修訂的情況下，將敏感資料發送到日誌檔案或複製到資料分析環境中的情形。 您可以使用 Amazon Macie 持續監控儲存在 Amazon S3 中的資料，以偵測其中是否存在敏感資料。  

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

1.  請檢閱 [SEC07-BP01](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/sec_data_classification_identify_data.html) 中所述，了解您組織內的資料分類結構。

   1.  只要了解您組織的資料分類結構，您就可以建立準確的流程用於自動化適合您公司政策的識別和分類。

1.  對您的環境執行初始掃描，以進行自動識別和分類。

   1.  初始完整掃描資料有助於全面了解敏感資料在您環境中的位置。若一開始不需要或因成本考量而無法事先完成完整掃描，請評估資料取樣技術是否適合用來實現您的成果。例如，您可以設定 Amazon Macie 跨 S3 儲存貯體執行廣泛的自動化敏感資料探索操作。 此功能使用的取樣技術會以符合成本效益的方式初步分析敏感資料的所在位置。 然後，您可以使用敏感資料探索工作來深入分析 S3 儲存貯體。也可以將其他資料存放區匯出至 S3，以便讓 Macie 進行掃描。

   1.  針對掃描中識別的資料儲存資源，依照 [SEC07-BP02](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/sec_data_classification_define_protection.html) 中所定義來建立存取控制。

1.  設定環境的持續掃描。

   1.  Macie 的自動化敏感資料探索功能可用來持續掃描您的環境。 若有任何經授權儲存敏感資料的已知 S3 儲存貯體，則可使用 Macie 中的允許清單將其排除在外。

1.  將識別和分類納入您的建置和測試程序中。

   1.  識別開發人員可在工作負載開發過程中用來掃描資料以判斷敏感性的工具。 在整合測試的過程中使用這些工具，以便在敏感資料意外出現時發出提醒，並防止進一步部署。

1.  在未經授權的位置發現敏感資料時，實作系統或執行手冊來採取行動。

   1.  使用自動修復來限制對資料的存取。例如，若您使用屬性型存取控制 (ABAC)，就可以將此資料移至限制存取的 S3 儲存貯體或標記物件。此外，請考慮在偵測到資料時，為其加上遮罩。

   1.  提醒您的資料防護和事件回應團隊調查事件的根本原因。他們在調查過程中學到的任何經驗，都有助於防止未來的事件發生。

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

 **相關文件：**
+  [AWS Glue：偵測和處理敏感資料](https://docs.aws.amazon.com/glue/latest/dg/detect-PII.html) 
+  [在 Amazon SNS 中使用受管資料識別碼](https://docs.aws.amazon.com/sns/latest/dg/sns-message-data-protection-managed-data-identifiers.html) 
+  [Amazon CloudWatch Logs：使用遮罩協助保護敏感日誌資料](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data.html) 

 **相關範例：**
+  [使用 Macie 為 Amazon RDS 資料庫啟用資料分類](https://aws.amazon.com/blogs/security/enabling-data-classification-for-amazon-rds-database-with-amazon-macie/) 
+  [使用 Macie 偵測 DynamoDB 中的敏感資料](https://aws.amazon.com/blogs/security/detecting-sensitive-data-in-dynamodb-with-macie/) 

 **相關工具：**
+  [Amazon Macie](https://aws.amazon.com/macie/) 
+  [Amazon Comprehend](https://aws.amazon.com/comprehend/) 
+  [Amazon Comprehend Medical](https://aws.amazon.com/comprehend/medical/) 
+  [AWS Glue](https://aws.amazon.com/glue/) 

# SEC07-BP04 定義可擴展的資料生命週期管理
<a name="sec_data_classification_lifecycle_management"></a>

 了解您的資料生命週期需求，因為這些需求與您不同層級的資料分類和處理相關。 這可能包括資料一開始進入環境時的處理方式、資料轉換的方式，以及銷毀資料的規則。請將保留期、存取、稽核和追蹤來源等因素納入考量。

 **預期成果：**您的資料分類會盡可能接近擷取點和時間。當資料分類需要遮罩、記號化或其他降低敏感程度的處理時，您會在盡可能最接近擷取點和時間的條件下執行這些動作。

 當資料不再適合保存時，您會遵循政策根據資料的分類將其刪除。

 **常見的反模式：**
+  實作一體適用的方法來管理資料生命週期，而未考量不同的敏感程度和存取需求。
+  僅從資料為可用資料或備份資料的角度來考量生命週期管理，而非兩者均考量。
+  假設已輸入工作負載的資料有效，但未確定其價值或來源。
+  仰賴資料耐久性來替代資料備份和保護。
+  保留資料的時間超過其實用性和所需的保留期。

 **建立此最佳實務的優勢：**定義明確且可擴展的資料生命週期管理策略有助於保持合規、提高資料安全性、最佳化儲存成本，以及在維持適當控制之下實現有效率的資料存取和共用。

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

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

 工作負載內的資料通常是動態的。 資料進入工作負載環境時採取的形式，可能與資料儲存或使用在商業邏輯、報告、分析或機器學習上的形式有所不同。 此外，資料的價值可能隨時間而改變。有些資料本質上是暫時性的，會隨著時間失去其價值。 請考量在您的資料分類機制與相關控制下，這些資料變更對評估的影響。 可能的話，盡量使用自動化生命週期機制 (如 [Amazon S3 生命週期政策](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html)和 [Amazon Data Lifecycle Manager](https://aws.amazon.com/ebs/data-lifecycle-manager/)) 來設定資料保留、封存和到期程序。對於儲存在 DynamoDB 中的資料，您可以使用[存留時間 (TTL)](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/TTL.html) 功能來定義每個項目的過期時間戳記。  

 區分可供使用的資料與儲存為備份的資料。 考慮使用 [AWS Backup](https://aws.amazon.com/backup/) 自動備份 AWS 服務中的資料。 [Amazon EBS 快照](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-snapshots.html)提供了複製 EBS 磁碟區並使用 S3 功能來儲存它的方式，包括生命週期、資料保護和存取保護機制。其中兩種機制為 [S3 Object Lock](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html) 和 [AWS Backup Vault Lock](https://docs.aws.amazon.com/aws-backup/latest/devguide/vault-lock.html)，皆可提高您備份的安全性，並且讓您更有效地掌控備份。進行分明的職責和備份存取權劃分管理。在帳戶層級隔離備份，以便在事件發生期間與受影響的環境保持分離。

 生命週期管理的另一方面，是記錄資料在工作負載中進度的歷史記錄，稱為*資料來源追蹤*。如此您就能確信自己知道資料來自何處、執行的任何轉換、哪些擁有者或處理程序做出這些變更，以及時間點。 這份歷史記錄有助於在可能發生安全事件的期間進行問題的疑難排解和調查。 例如，您可以在 [Amazon DynamoDB](https://aws.amazon.com/dynamodb/) 資料表中記錄有關轉換的中繼資料。 在資料湖內，您可以針對每一個資料管道階段，將轉換後資料的副本保留在不同的 S3 儲存貯體中。將結構描述和時間戳記資訊儲存在 [AWS Glue Data Catalog](https://docs.aws.amazon.com/glue/latest/dg/catalog-and-crawler.html) 中。 無論您採用何種解決方案，請務必考量最終使用者的需求，以確定報告資料來源所需的適當工具。 這樣做將協助您確定追蹤來源的最佳方式。

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

1.  分析工作負載的資料類型、敏感程度及存取需求，以分類資料並定義適當的生命週期管理策略。

1.  設計並實施符合法律、法規和組織要求的資料保留政策及自動銷毀程序。

1.  建立流程和自動化功能，以隨著工作負載需求和法規發展，持續監控、稽核和調整資料生命週期管理策略、控制及政策。

   1.  使用 [AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/s3-lifecycle-policy-check.html) 偵測尚未開啟自動生命週期管理的資源 

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

 **相關的最佳實務：**
+  [COST04-BP05 強制執行資料保留政策](https://docs.aws.amazon.com/wellarchitected/latest/framework/cost_decomissioning_resources_data_retention.html) 
+  [SUS04-BP03 使用政策來管理資料集的生命週期](https://docs.aws.amazon.com/wellarchitected/latest/framework/sus_sus_data_a4.html) 

 **相關文件：**
+  [資料分類白皮書](https://docs.aws.amazon.com/whitepapers/latest/data-classification/data-classification-overview.html) 
+  [AWS 勒索軟體防禦藍圖](https://d1.awsstatic.com/whitepapers/compliance/AWS-Blueprint-for-Ransomware-Defense.pdf) 
+  [DevOps 指引：利用資料來源追蹤改善可追溯性](https://docs.aws.amazon.com/wellarchitected/latest/devops-guidance/ag.dlm.8-improve-traceability-with-data-provenance-tracking.html) 

 **相關範例：**
+  [如何在 AWS 中於整個生命週期保護敏感資料](https://aws.amazon.com/blogs/security/how-to-protect-sensitive-data-for-its-entire-lifecycle-in-aws/) 
+  [使用 AWS Glue、Amazon Neptune 和 Spline 為資料湖建置資料歷程](https://aws.amazon.com/blogs/big-data/build-data-lineage-for-data-lakes-using-aws-glue-amazon-neptune-and-spline/) 

 **相關工具：**
+  [AWS Backup](https://aws.amazon.com/backup/) 
+  [Amazon Data Lifecycle Manager](https://aws.amazon.com/ebs/data-lifecycle-manager/) 
+  [AWS Identity and Access Management Access Analyzer](https://aws.amazon.com/iam/access-analyzer/) 

# 保護靜態資料
<a name="protecting-data-at-rest"></a>

*靜態資料*代表您在工作負載中的任何期間，保留在非揮發性儲存體中的任何資料。其中包括：長期存放資料的區塊儲存體、物件儲存體、資料庫、封存、IoT 裝置和任何其他儲存媒介。實作加密和適當的存取控制，保護靜態資料能將未經授權存取的風險降低。

加密和記號化是兩個重要但截然不同的資料保護方案。

*記號化*是一種過程，可讓您定義權杖來表示敏感資訊 (例如，用權杖來表示客戶的信用卡號)。記號本身必須毫無意義，而且不可衍生自記號化的資料，因此，密碼編譯摘要無法作為記號使用。透過仔細地規劃記號化的方法，您可以為內容提供額外的保護，並確保滿足合規要求。例如，如果您善用記號而非使用信用卡號碼，則可以縮小信用卡處理系統的合規範圍。

*加密*是一種轉換內容的方式，若沒有將內容解密回純文字所需的私密金鑰，就無法讀取。記號化和加密都可以用來適當地保護資訊。此外，遮罩這種技術也允許將資料片段修訂成為剩餘的資料不視為敏感的狀態。例如，PCI-DSS 允許超出合規範圍邊界，保留卡號的後四碼以編製索引。

**稽核加密金鑰的使用**：請確定您了解並稽核加密金鑰的使用，以驗證金鑰的存取控制機制是否正確實作。例如，任何使用 AWS KMS 金鑰的 AWS 服務，都會將每次的使用記錄在 AWS CloudTrail 中。然後，您可以使用 Amazon CloudWatch Logs Insights 等工具來查詢 AWS CloudTrail，以確保金鑰的所有使用都是有效的。

**Topics**
+ [SEC08-BP01 實作安全金鑰管理](sec_protect_data_rest_key_mgmt.md)
+ [SEC08-BP02 強制靜態加密](sec_protect_data_rest_encrypt.md)
+ [SEC08-BP03 自動化靜態資料保護](sec_protect_data_rest_automate_protection.md)
+ [SEC08-BP04 強制存取控制](sec_protect_data_rest_access_control.md)

# SEC08-BP01 實作安全金鑰管理
<a name="sec_protect_data_rest_key_mgmt"></a>

 安全金鑰管理包括儲存、輪換、存取控制及監控保護工作負載的靜態資料所需的金鑰資料。

 **預期成果：**您擁有可擴展、可重複且自動化的金鑰管理機制。此機制會對金鑰資料強制執行最低權限存取，並且在金鑰可用性、機密性和完整性之間取得正確的平衡。您會監控金鑰的存取情況，若需要輪換金鑰資料，您可以使用自動化程序進行輪換。您不允許真人操作員存取金鑰資料。

**常見的反模式：**
+  真人存取未加密的金鑰資料。
+  建立自訂加密演算法。
+  存取金鑰資料的許可過於廣泛。

 **建立此最佳實務的優勢：**透過為工作負載建立安全的金鑰管理機制，就可以協助保護您的內容，防止未經授權的存取。此外，您可能需要依法加密您的資料。有效的金鑰管理解決方案能夠提供符合這些法規的技術機制，以保護金鑰資料。

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

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

 靜態資料加密是基本的安全控制。為了實作此控制，您的工作負載須採取某種機制，以安全儲存和管理用於加密靜態資料的金鑰資料。

 AWS 提供 AWS Key Management Service (AWS KMS) 來為 AWS KMS 金鑰提供耐用、安全和備援儲存。[許多 AWS 服務會與 AWS KMS 整合](https://aws.amazon.com/kms/features/#integration)，以支援資料加密。AWS KMS 使用 FIPS 140-3 3 級驗證的硬體安全模組來保護您的金鑰。沒有任何機制可將 AWS KMS 金鑰匯出為純文字。

 使用多帳戶策略部署工作負載時，您應將 AWS KMS 金鑰與使用金鑰的工作負載保存在相同的帳戶中。[這個分散式模型](https://docs.aws.amazon.com/prescriptive-guidance/latest/security-reference-architecture/application.html#app-kms)會將管理 AWS KMS 金鑰的責任歸在您的團隊身上。在其他使用案例中，您的組織可能會選擇將 AWS KMS 金鑰儲存到集中式帳戶中。此集中式結構須實施其他政策來實現跨帳戶存取權，才能讓工作負載帳戶存取儲存在集中式帳戶中的金鑰，但此結構可能較適合跨多個 AWS 帳戶 共用單一金鑰的使用案例。

 無論金鑰資料儲存在何處，您都應透過使用[金鑰政策](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)和 IAM 政策嚴格控管金鑰存取權。金鑰政策是控制 AWS KMS 金鑰存取權的主要方式。此外，AWS KMS 金鑰授權可提供 AWS 服務的存取權，以代表您加密和解密資料。檢閱 [AWS KMS 金鑰存取控制指引](https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies-best-practices.html)。

 您應監控加密金鑰的使用情況，以偵測不尋常的存取模式。使用儲存在 AWS KMS 中 AWS 管理的金鑰和客戶管理的金鑰執行的操作可記錄在 AWS CloudTrail 中，並且應定期審查。務必特別注意監控金鑰銷毀事件。為了減少意外或惡意銷毀金鑰資料的情況，金鑰銷毀事件並不會立即刪除金鑰資料。嘗試刪除 AWS KMS 中的金鑰會受到[等待期](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html#deleting-keys-how-it-works)的約束 (預設為 30 天，最短 7 天)，讓管理員有時間檢閱這些動作，並在必要時撤回請求。

 大多數 AWS 服務會以顯而易見的方式使用 AWS KMS，您唯一要做的就是決定要使用 AWS 管理或客戶管理的金鑰。如果您的工作負載要求直接使用 AWS KMS 來加密或解密資料，則您應使用[封套加密](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#enveloping)來保護您的資料。此 [AWS Encryption SDK](https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/introduction.html) 可為您的應用程式提供用戶端加密基本類型，以實作封套加密並與 AWS KMS 整合。

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

1.  確定金鑰的適當[金鑰管理選項](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-mgmt) (AWS 受管或客戶自管)。

   1.  為了方便使用，AWS 為大多數服務提供了 AWS 擁有和 AWS 管理的金鑰，其提供靜態加密功能，而不需要管理金鑰資料或金鑰政策。

   1.  使用客戶管理的金鑰時，請考慮使用預設金鑰存放區，以便在敏捷性、安全性、資料主權與可用性之間達到最佳平衡。其他使用案例可能會要求使用自訂金鑰存放區搭配 [AWS CloudHSM](https://aws.amazon.com/cloudhsm/) 或[外部金鑰存放區](https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html)。

1.  審核您用於工作負載的服務清單，以了解 AWS KMS 與服務整合的方式。例如，EC2 執行個體可以使用加密的 EBS 磁碟區，因此要確認從這些磁碟區建立的 Amazon EBS 快照同樣是使用客戶管理的金鑰加密，並減少意外洩漏未加密的快照資料。

   1.  [AWS 服務使用 AWS KMS 的方式](https://docs.aws.amazon.com/kms/latest/developerguide/service-integration.html) 

   1.  如需 AWS 服務提供之加密選項的詳細資訊，請參閱該服務之使用者指南或開發人員指南中的靜態加密主題。

1.  實作 AWS KMS：AWS KMS 可讓您輕鬆建立和管理金鑰，並控制多種 AWS 服務和應用程式中的加密使用方式。

   1.  [入門：AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/getting-started.html) 

   1.  審核 [AWS KMS 金鑰存取控制的最佳實務](https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies-best-practices.html)。

1.  考慮使用 AWS Encryption SDK：當您的應用程式需要在用戶端對資料進行加密時，可使用整合 AWS KMS 的 AWS Encryption SDK。

   1.  [AWS Encryption SDK](https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/introduction.html) 

1.  啟用 [IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html) 以自動審核並在發現有過度廣泛的 AWS KMS 金鑰政策時發出通知。

   1.  考慮使用[自訂政策檢查](https://docs.aws.amazon.com/access-analyzer/latest/APIReference/API_CheckNoPublicAccess.html)，以確認資源政策更新未將公開存取權授予 KMS 金鑰。

1.  啟用 [Security Hub CSPM](https://docs.aws.amazon.com/securityhub/latest/userguide/kms-controls.html) 以在金鑰政策設定錯誤、有排定要刪除的金鑰，或有未啟用自動輪替的金鑰時收到通知。

1.  確定適合 AWS KMS 金鑰的日誌記錄層級。由於 AWS KMS 的呼叫 (包括唯讀事件) 會加以記錄，因此與 AWS KMS 關聯的 CloudTrail 日誌可能會變得很龐大。

   1.  有些組織偏好將 AWS KMS 日誌記錄活動分隔為單獨的追蹤。如需詳細資訊，請參閱《AWS KMS 開發人員指南》的 [Logging AWS KMS API calls with CloudTrail](https://docs.aws.amazon.com/kms/latest/developerguide/logging-using-cloudtrail.html)。

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

 **相關文件：**
+  [AWS Key Management Service](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) 
+  [AWS 加密服務和工具](https://docs.aws.amazon.com/crypto/latest/userguide/awscryp-overview.html) 
+  [使用加密保護 Amazon S3 資料](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingEncryption.html) 
+  [封套加密](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#enveloping) 
+  [數位主權承諾](https://aws.amazon.com/blogs/security/aws-digital-sovereignty-pledge-control-without-compromise/) 
+  [揭密 AWS KMS 金鑰操作、攜帶自有金鑰、自訂金鑰存放區，以及密文可攜性](https://aws.amazon.com/blogs/security/demystifying-kms-keys-operations-bring-your-own-key-byok-custom-key-store-and-ciphertext-portability/) 
+  [AWS Key Management Service 密碼編譯詳細資訊](https://docs.aws.amazon.com/kms/latest/cryptographic-details/intro.html) 

 **相關影片：**
+  [在 AWS 中加密如何運作](https://youtu.be/plv7PQZICCM) 
+  [保護 AWS 上的區塊儲存安全](https://youtu.be/Y1hE1Nkcxs8) 
+  [AWS 資料保護：使用鎖定、金鑰、簽章和憑證](https://www.youtube.com/watch?v=lD34wbc7KNA) 

 **相關範例：**
+  [使用 AWS KMS 實作進階存取控制機制](https://catalog.workshops.aws/advkmsaccess/en-US/introduction) 

# SEC08-BP02 強制靜態加密
<a name="sec_protect_data_rest_encrypt"></a>

 加密私有靜態資料以維持機密性，並提供一層額外的保護，以防止意外揭露或洩露資料。加密可保護資料，防止資料在未先解密的情況下遭到讀取或存取。清查和控制未加密的資料，以降低資料暴露伴隨的風險。

 **預期成果：**您建立了預設加密靜態私有資料的機制。這些機制有助於維持資料的機密性，並提供一層額外的保護，以防有意或不慎揭露或洩露資料。您維護未加密資料的庫存，並了解為了保護資料而採取的控制措施。

 **常見的反模式：**
+  未使用預設加密組態。
+  對解密金鑰提供過於寬鬆的存取權。
+  未監控加密和解密金鑰的使用。
+  在未加密的情況下儲存資料。
+  對所有資料使用相同的加密金鑰，無論資料使用方式、類型和分類。

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

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

 在工作負載中將加密金鑰對應到資料分類。當對資料使用單一或極少數的加密金鑰時，此方法有助於防止過於寬鬆的存取權 (請參閱 [SEC07-BP01 了解您的資料分類機制](sec_data_classification_identify_data.md))。

 AWS Key Management Service (AWS KMS) 與許多 AWS 服務整合，更方便您加密靜態資料。例如，在 Amazon Elastic Compute Cloud (Amazon EC2) 中，您可以在帳戶上設定[預設加密](https://docs.aws.amazon.com/ebs/latest/userguide/work-with-ebs-encr.html#encryption-by-default)，以便自動加密新的 EBS 磁碟區。當使用 AWS KMS 時，考慮需要嚴格限制資料的程度。AWS 會代表您管理及使用預設和服務控制的 AWS KMS 金鑰。對於需要對基礎加密金鑰的精細存取權之敏感資料，可考慮客戶自管金鑰 (CMK)。您可全權控制 CMK，包括透過使用金鑰政策進行輪換和存取管理。

 此外，像是 Amazon Simple Storage Service ([Amazon S3](https://aws.amazon.com/blogs/aws/amazon-s3-encrypts-new-objects-by-default/)) 等服務現在預設會加密所有新物件。此實作提供了更強大的安全性，而且不會影響效能。

 其他服務像是 [Amazon Elastic Compute Cloud](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#encryption-by-default) (Amazon EC2) 或 [Amazon Elastic File System](https://docs.aws.amazon.com/prescriptive-guidance/latest/encryption-best-practices/efs.html) (Amazon EFS)，都可支援預設加密的設定。您也可以使用 [AWS Config 規則](https://docs.aws.amazon.com/config/latest/developerguide/managed-rules-by-aws-config.html) 自動檢查您是否對 [Amazon Elastic Block Store (Amazon EBS) 磁碟區](https://docs.aws.amazon.com/config/latest/developerguide/encrypted-volumes.html)、[Amazon Relational Database Service (Amazon RDS) 執行個體](https://docs.aws.amazon.com/config/latest/developerguide/rds-storage-encrypted.html)和 [Amazon S3 儲存貯體](https://docs.aws.amazon.com/config/latest/developerguide/s3-default-encryption-kms.html)，以及組織內的其他服務使用加密。

 AWS 也提供用戶端加密選項，允許您在上傳到雲端之前加密資料。AWS Encryption SDK 提供使用[封套加密](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#enveloping)來加密資料的方法。您提供包裝金鑰，而 AWS Encryption SDK 會為它加密的每個資料物件產生唯一的資料金鑰。如果您需要受管的單一租用戶硬體安全模組 (HSM)，可考慮 AWS CloudHSM。AWS CloudHSM 可讓您在 FIPS 140-2 3 級驗證的 HSM 上產生、匯入和管理加密金鑰。AWS CloudHSM 的一些使用案例包括保護用於核發憑證認證機構 (CA) 的私有金鑰，以及為 Oracle 資料庫開啟透明資料加密 (TDE)。AWS CloudHSM 用戶端 SDK 提供軟體，可讓您在將資料上傳到 AWS 之前，使用儲存在 AWS CloudHSM 內的金鑰加密資料用戶端。Amazon DynamoDB Encryption Client 還允許您在上傳到 DynamoDB 資料表之前，加密和簽署項目。

### 實作步驟
<a name="implementation-steps"></a>
+  **為**[https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html)**：**使用 AWS 提供的預設金鑰或您自行建立的金鑰，指定您希望以加密形式建立所有新的 Amazon EBS 磁碟區。
+  **設定加密的 Amazon Machine Images (AMI)：**複製已設定加密的現有 AMI 會自動加密根磁碟區和快照。
+  **設定 **[https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Overview.Encryption.html](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Overview.Encryption.html)**：**透過使用加密選項，為您的 Amazon RDS 資料庫叢集和靜態快照設定加密。
+  **使用政策限制對適當主體的存取，為每個資料分類建立和設定 AWS KMS 金鑰：**例如，建立一個 AWS KMS 金鑰用於加密生產資料，另一個金鑰用於加密開發或測試資料。您還可以提供金鑰來存取其他 AWS 帳戶。考慮針對開發和生產環境擁有不同的帳戶。如果您的生產環境需要解密開發帳戶中的成品，您可以編輯用來加密開發成品的 CMK 金鑰，使生產帳戶能夠解密這些成品。生產環境接著可以擷取解密的資料以用於生產。
+  **在其他 AWS 服務中設定加密：**對於您使用的其他 AWS 服務，請檢閱該服務的[安全文件](https://docs.aws.amazon.com/security/)，以確定該服務的加密選項。

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

 **相關文件：**
+  [AWS 加密工具](https://docs.aws.amazon.com/aws-crypto-tools) 
+  [AWS Encryption SDK](https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/introduction.html) 
+  [AWS KMS 加密詳細資訊白皮書](https://docs.aws.amazon.com/kms/latest/cryptographic-details/intro.html) 
+  [AWS Key Management Service](https://aws.amazon.com/kms) 
+  [AWS 加密服務和工具](https://docs.aws.amazon.com/aws-crypto-tools/) 
+  [Amazon EBS 加密](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html) 
+  [Amazon EBS 磁碟區的預設加密](https://aws.amazon.com/blogs/aws/new-opt-in-to-default-encryption-for-new-ebs-volumes/) 
+  [加密 Amazon RDS 資源](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.Encryption.html) 
+  [如何啟用 Amazon S3 儲存貯體的預設加密？](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/default-bucket-encryption.html) 
+  [使用加密保護 Amazon S3 資料](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingEncryption.html) 

 **相關影片：**
+  [在 AWS 中加密如何運作](https://youtu.be/plv7PQZICCM) 
+  [保護 AWS 上的區塊儲存安全](https://youtu.be/Y1hE1Nkcxs8) 

# SEC08-BP03 自動化靜態資料保護
<a name="sec_protect_data_rest_automate_protection"></a>

 使用自動化來驗證和強制執行靜態資料控制。 使用自動掃描來偵測資料儲存解決方案的錯誤組態，並盡可能透過自動化的程式化回應執行補救措施。 將自動化納入 CI/CD 程序中，以在部署到實際執行環境之前先偵測是否有資料儲存組態錯誤的情形。

 **預期成果：**自動化系統會掃描和監控資料儲存位置，找出是否有控制組態錯誤、未經授權存取及意外使用的情況。 偵測到設定錯誤的儲存位置就會啟動自動化補救措施。 自動化程序會建立資料備份，並將不可變的副本儲存在原始環境之外。

 **常見的反模式：**
+  未考慮在受支援的情況下，啟用預設加密設定的選項。
+  制定自動備份和復原策略時，未考慮安全事件還有操作事件。
+  未強制執行儲存服務的公開存取設定。
+  未監控和稽核保護靜態資料的控制。

 **建立此最佳實務的優勢：**自動化有助於防止發生資料儲存位置設定錯誤的風險。這有助於防止錯誤組態進入您的實際執行環境。此最佳實務也有助於偵測並修正錯誤組態 (如發生)。  

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

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

 自動化是貫穿保護靜態資料的實務的主題。[SEC01-BP06 自動部署標準安全控制](https://docs.aws.amazon.com/wellarchitected/latest/framework/sec_securely_operate_automate_security_controls.html)說明了如何使用*基礎設施即程式碼* (IaC) 範本 (例如使用 [AWS CloudFormation](https://aws.amazon.com/cloudformation/)) 擷取資源的組態。 這些範本已遞交至版本控制系統中，且用於在 AWS 上透過 CI/CD 管道部署資源。 這些技術同樣適用於自動化資料儲存解決方案的組態，例如 Amazon S3 儲存貯體上的加密設定。  

 您可以在 CI/CD 管道中使用 [AWS CloudFormation Guard](https://docs.aws.amazon.com/cfn-guard/latest/ug/what-is-guard.html) 內的規則檢查您在 IaC 範本中定義的設定是否有組態錯誤。 您可以透過 [AWS Config](https://aws.amazon.com/config/) 監控尚未在 CloudFormation 或其他 IaC 工具中提供的設定，以檢查是否有組態錯誤。 Config 針對錯誤組態所產生的提醒可以自動修復，如 [SEC04-BP04 針對不合規資源實施補救措施](https://docs.aws.amazon.com/wellarchitected/latest/framework/sec_detect_investigate_events_noncompliant_resources.html)中所述。

 將自動化納入您的許可管理策略中，也是整體自動化資料防護措施的一環。[SEC03-BP02 授予最低權限存取權](https://docs.aws.amazon.com/wellarchitected/latest/framework/sec_permissions_least_privileges.html)和 [SEC03-BP04 持續減少許可](https://docs.aws.amazon.com/wellarchitected/latest/framework/sec_permissions_continuous_reduction.html)中說明了如何設定最低權限存取權政策，這些政策會受到 [AWS Identity and Access Management Access Analyzer](https://aws.amazon.com/iam/access-analyzer/) 的持續監控，以在能夠減少許可時產生調查結果。 除了自動化監控許可之外，您還可以設定 [Amazon GuardDuty](https://aws.amazon.com/guardduty/) 來監看 [EBS 磁碟區](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-ec2.html) (藉由 EC2 執行個體)、[S3 儲存貯體](https://docs.aws.amazon.com/guardduty/latest/ug/s3-protection.html)和支援的 [Amazon Relational Database Service 資料庫](https://docs.aws.amazon.com/guardduty/latest/ug/rds-protection.html)中是否存在異常資料存取行為。

 自動化也會在偵測到敏感資料儲存於未經授權的位置時，發揮重要的作用。[SEC07-BP03 自動識別和分類](https://docs.aws.amazon.com/wellarchitected/latest/framework/sec_data_classification_auto_classification.html)說明了 [Amazon Macie](https://aws.amazon.com/macie/) 如何監控您的 S3 儲存貯體是否有非預期的敏感資料，並產生可啟動自動化回應的提醒。

 遵循 [REL09 備份資料](https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/back-up-data.html)中的實務，制定自動化資料備份和復原策略。資料備份和復原對於操作事件，以及從安全事件中復原來說都相當重要。

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

1.  在 IaC 範本中擷取資料儲存組態。 使用自動化檢查在 CI/CD 管道中偵測組態錯誤。

   1.  您可以將 [CloudFormation](https://aws.amazon.com/cloudformation/) 用於您的 IaC 範本，並且將 [CloudFormation Guard](https://docs.aws.amazon.com/cfn-guard/latest/ug/what-is-guard.html) 用於檢查範本是否有組態錯誤。

   1.  使用 [AWS Config](https://aws.amazon.com/config/) 在主動評估模式下執行規則。在建立資源之前，使用此設定做為 CI/CD 管道中的步驟來檢查資源是否合規。

1.  監控資源是否有資料儲存組態錯誤。

   1.  設定 [AWS Config](https://aws.amazon.com/config/) 來監控資料儲存資源是否有控制組態方面的變更，並在偵測到組態錯誤時產生提醒，以調用修復動作。

   1.  如需有關自動化補救措施的詳細指引，請參閱 [SEC04-BP04 針對不合規資源實施補救措施](https://docs.aws.amazon.com/wellarchitected/latest/framework/sec_detect_investigate_events_noncompliant_resources.html)。

1.  透過自動化持續監控並減少資料存取許可。

   1.  [IAM Access Analyzer](https://aws.amazon.com/iam/access-analyzer/) 可持續執行，並在有可能減少許可時產生提醒。

1.  監控並提醒異常資料存取行為。

   1.  [GuardDuty](https://aws.amazon.com/guardduty/) 會監看 EBS 磁碟區、S3 儲存貯體及 RDS 資料庫等資料儲存資源中，是否存在已知的威脅特徵和偏離基準存取行為。

1.  監控並在敏感資料儲存於非預期位置時發出提醒。

   1.  使用 [Amazon Macie](https://aws.amazon.com/macie/) 持續掃描您的 S3 儲存貯體是否有敏感資料。

1.  自動保護和加密資料備份。

   1.  [AWS Backup](https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html) 是受管服務，會在 AWS 上建立各種資料來源的加密和安全備份。 [彈性災難復原](https://aws.amazon.com/disaster-recovery/)可讓您透過以秒為單位測量的復原點目標 (RPO)，複製完整的伺服器工作負載並維持持續的資料保護。 您可以設定讓兩種服務搭配運作，以自動建立資料備份並將其複製到容錯移轉位置。 這有助於在受到操作或安全事件影響時，保持資料的可用性。

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

 **相關的最佳實務：**
+  [SEC01-BP06 自動部署標準安全控制](https://docs.aws.amazon.com/wellarchitected/latest/framework/sec_securely_operate_automate_security_controls.html) 
+  [SEC03-BP02 授予最低權限存取權](https://docs.aws.amazon.com/wellarchitected/latest/framework/sec_permissions_least_privileges.html) 
+  [SEC03-BP04 持續減少許可](https://docs.aws.amazon.com/wellarchitected/latest/framework/sec_permissions_continuous_reduction.html) 
+  [SEC04-BP04 針對不合規資源實施補救措施](https://docs.aws.amazon.com/wellarchitected/latest/framework/sec_detect_investigate_events_noncompliant_resources.html) 
+  [SEC07-BP03 自動識別和分類](https://docs.aws.amazon.com/wellarchitected/latest/framework/sec_data_classification_auto_classification.html) 
+  [REL09-BP02 保護和加密備份](https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/rel_backing_up_data_secured_backups_data.html) 
+  [REL09-BP03 自動執行資料備份](https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/rel_backing_up_data_automated_backups_data.html) 

 **相關文件：**
+  [AWS 方案指引：自動加密現有和新的 Amazon EBS 磁碟區](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/automatically-encrypt-existing-and-new-amazon-ebs-volumes.html) 
+  [在 AWS 上使用 NIST 網路安全架構 (CSF) 進行勒索軟體風險管理](https://docs.aws.amazon.com/whitepapers/latest/ransomware-risk-management-on-aws-using-nist-csf/ransomware-risk-management-on-aws-using-nist-csf.html) 

 **相關範例：**
+  [如何使用 AWS Config 主動式規則和 AWS CloudFormation 勾點來防止建立不合規的雲端資源](https://aws.amazon.com/blogs/mt/how-to-use-aws-config-proactive-rules-and-aws-cloudformation-hooks-to-prevent-creation-of-non-complaint-cloud-resources/) 
+  [使用 AWS Backup 自動化並集中管理 Amazon S3 的資料保護](https://aws.amazon.com/blogs/storage/automate-and-centrally-manage-data-protection-for-amazon-s3-with-aws-backup/) 
+  [AWS re:Invent 2023 - 使用 Amazon EBS 快照實作主動式資料保護](https://www.youtube.com/watch?v=d7C6XsUnmHc) 
+  [AWS re:Invent 2022 - 利用現代化資料保護建置並自動化以強化恢復能力](https://www.youtube.com/watch?v=OkaGvr3xYNk) 

 **相關工具：**
+  [AWS CloudFormation Guard](https://docs.aws.amazon.com/cfn-guard/latest/ug/what-is-guard.html) 
+  [AWS CloudFormation Guard 規則登錄檔](https://github.com/aws-cloudformation/aws-guard-rules-registry) 
+  [IAM Access Analyzer](https://aws.amazon.com/iam/access-analyzer/) 
+  [Amazon Macie](https://aws.amazon.com/macie/) 
+  [AWS Backup](https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html) 
+  [彈性災難復原](https://aws.amazon.com/disaster-recovery/) 

# SEC08-BP04 強制存取控制
<a name="sec_protect_data_rest_access_control"></a>

 要協助保護您的靜態資料，使用隔離和版本控制等機制來強制存取控制。套用最低權限和條件存取控制。避免授予您資料的公開存取權。

 **預期成果：**確認只有授權使用者才能在必要時存取資料。您透過定期備份和版本控制來保護您的資料，以防有意或不慎修改或刪除資料。您將重要資料與其他資料分離，以保護其機密性和資料完整性。

**常見的反模式：**
+  將具有不同敏感度需求或分類的資料儲存在一起。
+  對解密金鑰使用過於寬鬆的許可。
+  資料分類不當。
+  未保留重要資料的詳細備份。
+  對生產資料提供持續存取權。
+  未稽核資料存取或定期審查許可。

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

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

 保護靜態資料對於維護資料完整性、機密性和符合法規要求至關重要。您可以實作多個控制項來協助達成此目標，包括存取控制、隔離、條件式存取和版本控制。

 您可以使用最低權限原則強制執行存取控制，該原則僅為使用者和服務提供執行其任務所需的許可權。這包括加密金鑰的存取權。檢閱您的 [AWS Key Management Service (AWS KMS) 政策](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html)，確認您授予的存取權層級適當，並且適用相關條件。

 您可以針對每個層級使用各自不同的 AWS 帳戶，根據不同的分類層級分隔資料，並使用 [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html) 管理這些帳戶。此隔離有助於預防未經授權的存取，並將資料揭露風險降到最低。

 定期審查 S3 儲存貯體政策中授予的存取權層級。除非絕對必要，否則避免使用可公開讀取或可寫入的儲存貯體。考慮使用 [AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/managed-rules-by-aws-config.html) 偵測公開可用的儲存貯體，以及使用 Amazon CloudFront 從 Amazon S3 提供內容。確認不允許公開存取的儲存貯體，已正確設定為防止公開存取。

 針對存放在 Amazon S3 中的關鍵資料實作版本控制和物件鎖定機制。[Amazon S3 版本控制](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Versioning.html)會保留舊版物件，以從意外刪除或覆寫中復原資料。[Amazon S3 物件鎖定](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html)為物件提供強制性存取控制功能，此功能可預防遭到刪除或覆寫，即使根使用者也一樣，直到鎖定到期為止。此外，[Amazon Glacier Vault Lock](https://docs.aws.amazon.com/amazonglacier/latest/dev/vault-lock.html) 可為儲存在 Amazon Glacier 中的封存提供類似的功能。

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

1.  **使用最低權限原則強制執行存取控制**：
   +  檢閱授予使用者和服務的存取權限，並確認他們只擁有執行任務所需的許可權。
   +  檢查 [AWS Key Management Service (AWS KMS) 政策](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html)以檢閱加密金鑰的存取權。

1.  **根據不同的分類層級分隔資料**：
   +  針對每個資料分類層級使用不同的 AWS 帳戶。
   +  使用 [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html) 管理這些帳戶。

1.  **檢閱 Amazon S3 儲存貯體和物件許可權**：
   +  定期審查 S3 儲存貯體政策中授予的存取權層級。
   +  除非絕對必要，否則避免使用可公開讀取或可寫入的儲存貯體。
   +  考慮使用 [AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/managed-rules-by-aws-config.html) 偵測公開可用的儲存貯體。
   +  使用 Amazon CloudFront 提供來自 Amazon S3 的內容。
   +  確認不允許公開存取的儲存貯體，已正確設定為防止公開存取。
   +  您可以對資料庫和使用 IAM 身分驗證的其他任何資料來源，套用相同的審查程序，例如 SQS 或第三方資料存放區。

1.  **使用 AWS IAM Access Analyzer**：
   +  您可以設定讓 [AWS IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html) 分析 Amazon S3 儲存貯體，並在 S3 政策將存取權授予外部實體時產生調查結果。

1.  **實作版本控制和物件鎖定機制**：
   +  使用 [Amazon S3 版本控制](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Versioning.html)保留物件的舊版本，如此即可將意外刪除或覆寫的資料復原。
   +  使用 [Amazon S3 物件鎖定](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html)為物件提供強制存取控制，如此可避免遭到刪除或覆寫，即使根使用者也一樣，直到鎖定功能到期為止。
   +  針對儲存在 Amazon Glacier 中的封存使用 [Amazon Glacier Vault Lock](https://docs.aws.amazon.com/amazonglacier/latest/dev/vault-lock.html)。

1.  **使用 Amazon S3 庫存清單** 
   +  使用 [Amazon S3 庫存清單](https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html)稽核及報告 S3 物件的複寫和加密狀態。

1.  **檢閱 Amazon EBS 和 AMI 共用權限**：
   +  檢閱 [Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-modifying-snapshot-permissions.html) 和 [AMI 共用](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/sharing-amis.html)權限，確認您的映像和磁碟區未與在工作負載外部的 AWS 帳戶 共用。

1.  **定期審查 AWS Resource Access Manager Shares**：
   +  您可以使用 [AWS Resource Access Manager](https://docs.aws.amazon.com/ram/latest/userguide/what-is.html) 共用 Amazon VPC 內的資源，例如 AWS Network Firewall 政策、Amazon Route 53 Resolver 規則和子網路。
   +  定期稽核共用的資源，並停止共用不再需要共用的資源。

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

 **相關的最佳實務：**
+ [SEC03-BP01 定義存取需求](sec_permissions_define.md) 
+  [SEC03-BP02 授予最低權限存取權](sec_permissions_least_privileges.md) 

 **相關文件：**
+  [AWS KMS 加密詳細資訊白皮書](https://docs.aws.amazon.com/kms/latest/cryptographic-details/intro.html) 
+  [管理對 Amazon S3 資源的存取權限的簡介](https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-managing-access-s3-resources.html) 
+  [管理 AWS KMS 資源存取的概觀](https://docs.aws.amazon.com/kms/latest/developerguide/control-access-overview.html) 
+  [AWS Config 規則](https://docs.aws.amazon.com/config/latest/developerguide/managed-rules-by-aws-config.html) 
+  [Amazon S3 \$1 Amazon CloudFront：雲端中的最佳拍檔](https://aws.amazon.com/blogs/networking-and-content-delivery/amazon-s3-amazon-cloudfront-a-match-made-in-the-cloud/) 
+  [使用版本控制](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html) 
+  [使用 Amazon S3 Object Lock 鎖定物件](https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html) 
+  [共用 Amazon EBS 快照](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-modifying-snapshot-permissions.html) 
+  [共用 AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/sharing-amis.html) 
+  [在 Amazon S3 上託管單頁應用程式](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/deploy-a-react-based-single-page-application-to-amazon-s3-and-cloudfront.html) 
+  [AWS 全域條件索引鍵](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) 
+  [在 AWS 上建置資料周邊](https://docs.aws.amazon.com/whitepapers/latest/building-a-data-perimeter-on-aws/building-a-data-perimeter-on-aws.html) 

 **相關影片：**
+  [保護 AWS 上的區塊儲存安全](https://youtu.be/Y1hE1Nkcxs8) 

# 保護傳輸中的資料
<a name="protecting-data-in-transit"></a>

 *傳輸中的資料*是指從一個系統傳送到另一個系統的任何資料。這包括工作負載內資源之間的通訊，以及其他服務與最終使用者之間的通訊。為傳輸中的資料提供適度的保護，意味著您保護工作負載中資料的機密性和完整性。

**保護來自 VPC 之間或內部部署位置的資料：**您可以使用 [AWS PrivateLink](https://aws.amazon.com/privatelink/)，在 Amazon Virtual Private Cloud (Amazon VPC) 之間建立安全且私有的網路連線，或建立 AWS 中所託管服務的內部部署連線。您可以存取 AWS 服務、第三方服務，以及其他 AWS 帳戶中的服務，就像這些服務是在您的私有網路上一樣。使用 AWS PrivateLink，您可以跨具有重疊 IP CIDR 的帳戶存取服務，而不需要網際網路閘道或 NAT。您也不必設定防火牆規則、路徑定義或路由表。流量停留在 Amazon 骨幹網路上，而且不會周遊網際網路，因此您的資料受到保護。您可以遵守產業特定的合規法規，例如 HIPAA 和歐盟/美國隱私保護盾。AWS PrivateLink 無縫使用第三方解決方案，建立簡化的全球網路，可讓您加速遷移到雲端並利用可用的 AWS 服務。

**Topics**
+ [SEC09-BP01 實作安全金鑰和憑證管理](sec_protect_data_transit_key_cert_mgmt.md)
+ [SEC09-BP02 強制傳輸中加密](sec_protect_data_transit_encrypt.md)
+ [SEC09-BP03 驗證網路通訊](sec_protect_data_transit_authentication.md)

# SEC09-BP01 實作安全金鑰和憑證管理
<a name="sec_protect_data_transit_key_cert_mgmt"></a>

 Transport Layer Security (TLS) 憑證可用來保護網路通訊，和建立網際網路跟私有網路中的網站、資源和工作負載的身分。

 **預期成果：**可以在公開金鑰基礎設施 (PKI) 中佈建、部署、儲存和更新憑證的安全憑證管理系統。安全金鑰與憑證管理機制可以防止憑證私有金鑰資料外洩，也能定期自動更新憑證。它也能與其他服務整合，為工作負載內的機器資源提供安全的網路通訊和身分識別。金鑰資料絕不可供真人身分存取。

 **常見的反模式：**
+  在憑證部署或更新程序期間執行手動步驟。
+  設計私有 CA 時，忽略憑證授權單位 (CA) 階層。
+  針對公有資源使用自我簽署憑證。

 **建立此最佳實務的優勢：**
+  透過自動化部署和更新來簡化憑證管理 
+  鼓勵使用 TLS 憑證加密傳輸中的資料 
+  增加憑證授權機構所採取憑證動作的安全性和可稽核性 
+  在 CA 階層中不同層次的管理責任組織 

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

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

 現代工作負載可透過使用 TLS 等 PKI 協定，來廣泛使用加密網路通訊。PKI 憑證管理可能很複雜，但自動化憑證佈建、部署和更新可以減少憑證管理相關障礙。

 AWS 提供兩種管理一般用途 PKI 憑證的服務：[AWS Certificate Manager](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html) 和 [AWS 私有憑證授權單位 (AWS 私有 CA)](https://docs.aws.amazon.com/privateca/latest/userguide/PcaWelcome.html)。ACM 是客戶在公有和私有 AWS 工作負載中，用來佈建、管理和部署憑證的主要服務。ACM 則使用 AWS 私有 CA 發行私有憑證，並與許多其他 AWS 受管服務[整合](https://docs.aws.amazon.com/acm/latest/userguide/acm-services.html)，以提供安全的工作負載 TLS 憑證。ACM 也可以從 [Amazon Trust Services](https://www.amazontrust.com/repository/) 發出公有信任憑證。ACM 的公有憑證可用於面向公眾的工作負載，因為新型瀏覽器和作業系統預設信任這些憑證。

 AWS 私有 CA 可讓您建立自己的根憑證授權單位或下層憑證授權單位，並透過 API 發行 TLS 憑證。在您控制和管理 TLS 連線用戶端信任鏈時，您可以使用這些憑證類型。除了 TLS 使用案例之外，AWS 私有 CA 還可以用來發行憑證給 Kubernetes Pod、重要裝置產品證明、程式碼簽署，以及其他具有[自訂範本](https://docs.aws.amazon.com/privateca/latest/userguide/UsingTemplates.html)的使用案例。您也可以使用 [IAM Roles Anywhere](https://docs.aws.amazon.com/rolesanywhere/latest/userguide/introduction.html) 提供暫時 IAM 憑證給具有您私有 CA 發行 X.509 憑證的內部部署工作負載。

 除了 ACM 和 AWS 私有 CA 之外，[AWS IoT Core](https://docs.aws.amazon.com/iot/latest/developerguide/what-is-aws-iot.html) 也為 IoT 裝置提供特別支援，用來佈建、管理和部署 PKI 憑證。AWS IoT Core 提供了專門的機制，可[將 IoT 裝置大規模加入](https://docs.aws.amazon.com/whitepapers/latest/device-manufacturing-provisioning/device-manufacturing-provisioning.html)您的公有金鑰基礎設施。

 有些 AWS 服務如 [Amazon API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/welcome.html) 和 [Elastic Load Balancing](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html)，會提供使用憑證來保護應用程式連線的自有功能。例如，API Gateway 和 Application Load Balancer (ALB) 都支援交互 TLS (mTLS)，其便是使用您使用 AWS 管理主控台、CLI 或 API 建立和匯出的用戶端憑證。

**建立私有 CA 階層時的考量**

 在需要建立私有 CA 時，請務必特別留意，預先正確設計 CA 階層。建立私有 CA 階層時，最佳實務是將 CA 階層的每個層級部署到個別 AWS 帳戶。這個刻意的步驟會減少 CA 階層中每個層級的界面面積，讓您更容易察覺 CloudTrail 日誌資料的異常狀況，並在出現未經授權的帳戶存取動作時降低存取或影響範圍。根 CA 應位於自己的個別帳戶中，且只能用來發行一個或多個中繼 CA 憑證。

 接著，請在不同於根 CA 帳戶的其他帳戶中建立一個或多個中繼 CA，為終端使用者、裝置或其他工作負載發行憑證。最後，請將憑證從根 CA 發行至中繼 CA，這個動作會將憑證發行給您的終端使用者或裝置。如需深入了解 CA 部署規劃和 CA 階層設計，包括恢復能力、跨區域複寫、在組織中共用 CA 等規劃，請參閱[規劃您的 AWS 私有 CA 部署](https://docs.aws.amazon.com/privateca/latest/userguide/PcaPlanning.html)。

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

1.  確定使用案例所需的相關 AWS 服務：
   +  許多使用案例都可以使用 [AWS Certificate Manager](https://docs.aws.amazon.com/acm/latest/userguide/acm-overview.html) 來利用現有的 AWS 公有金鑰基礎設施。ACM 可以用於為 Web 伺服器、負載平衡器或公開信任憑證的其他用途部署 TLS 憑證。
   +  當您需要建立自己的私有憑證授權機構階層或需要存取可匯出的憑證時，考慮 [AWS 私有 CA](https://docs.aws.amazon.com/privateca/latest/userguide/PcaWelcome.html)。然後，ACM 可用於使用 AWS 私有 CA 發行[許多類型的終端實體憑證](https://docs.aws.amazon.com/privateca/latest/userguide/PcaIssueCert.html)。
   +  針對必須為嵌入式物聯網 (IoT) 裝置大規模佈建憑證的使用案例，請考慮 [AWS IoT Core](https://docs.aws.amazon.com/iot/latest/developerguide/x509-client-certs.html)。
   +  請考慮在 [Amazon API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/welcome.html) 或 [Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html) 等服務中使用原生 mTLS 功能。

1.  盡可能實作自動憑證續約：
   +  使用 [ACM 受管續約](https://docs.aws.amazon.com/acm/latest/userguide/managed-renewal.html) ACM 發行的憑證以及整合式 AWS 受管服務。

1.  建立日誌記錄和稽核記錄：
   +  啟用 [CloudTrail 日誌](https://docs.aws.amazon.com/privateca/latest/userguide/PcaCtIntro.html)以追蹤對持有憑證授權機構之帳戶的存取權。請考慮在 CloudTrail 中設定日誌檔案完整性驗證，以驗證日誌資料的真實性。
   +  定期產出並審核[稽核報告](https://docs.aws.amazon.com/privateca/latest/userguide/PcaAuditReport.html)，其中列出您的私有 CA 發行或撤銷的憑證。這些報告可以匯出到 S3 儲存貯體。
   +  部署私有 CA 時，您也需要建立 S3 儲存貯體來儲存憑證撤銷清單 (CRL)。如需有關根據工作負載需求設定此 S3 儲存貯體的指引，請參閱[規劃憑證撤銷清單 (CRL)](https://docs.aws.amazon.com/privateca/latest/userguide/crl-planning.html)。

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

 **相關的最佳實務：**
+  [SEC02-BP02 使用暫時憑證](sec_identities_unique.md) 
+ [SEC08-BP01 實作安全金鑰管理](sec_protect_data_rest_key_mgmt.md)
+  [SEC09-BP03 驗證網路通訊](sec_protect_data_transit_authentication.md) 

 **相關文件：**
+  [如何在 AWS 中託管和管理整個私有憑證基礎設施](https://aws.amazon.com/blogs/security/how-to-host-and-manage-an-entire-private-certificate-infrastructure-in-aws/) 
+  [如何保護用於汽車和製造領域的企業規模 ACM 私有 CA 階層](https://aws.amazon.com/blogs/security/how-to-secure-an-enterprise-scale-acm-private-ca-hierarchy-for-automotive-and-manufacturing/) 
+  [私有 CA 最佳實務](https://docs.aws.amazon.com/privateca/latest/userguide/ca-best-practices.html) 
+  [如何使用 AWS RAM 共用您的 ACM 私有 CA 跨帳戶](https://aws.amazon.com/blogs/security/how-to-use-aws-ram-to-share-your-acm-private-ca-cross-account/) 

 **相關影片：**
+  [啟動 AWS Certificate Manager 私有 CA (研討會)](https://www.youtube.com/watch?v=XrrdyplT3PE) 

 **相關範例：**
+  [私有 CA 研討會](https://catalog.workshops.aws/certificatemanager/en-US/introduction) 
+  [IOT Device Management 研討會](https://iot-device-management.workshop.aws/en/) (包括裝置佈建) 

 **相關工具：**
+  [要使用 AWS 私有 CA 的 Kubernetes cert-manager 外掛程式](https://github.com/cert-manager/aws-privateca-issuer) 

# SEC09-BP02 強制傳輸中加密
<a name="sec_protect_data_transit_encrypt"></a>

根據您組織的政策、法規義務和標準強制已定義的加密需求，以符合組織、法律和合規上的要求。只有在虛擬私有雲端 (VPC) 以外傳輸敏感資料時才使用加密協定。加密有助於保持資料完整性，甚至當資料傳輸於不受信任的網路。

 **預期成果：**您將資源與網際網路之間的網路流量加密，以減少對資料的未經授權存取。您可以根據您的安全要求，加密內部 AWS 環境中的網路流量。您使用安全的 TLS 協定和密碼套件，為所有傳輸中的資料加密。

 **常見的反模式：**
+  使用 SSL、TLS 和其他套件元件已棄用的版本 (例如，SSL v3.0、1024 位元 RSA 金鑰和 RC4 密碼)。
+  允許未加密的 (HTTP) 流量來往面向公眾的資源。
+  未監控 X.509 憑證並在到期前更換。
+  對 TLS 使用自我簽署的 X.509 憑證。

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

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

 AWS 服務提供使用 TLS 的 HTTPS 端點以進行通訊，在與 AWS API 通訊時提供傳輸中加密。不安全的 HTTP 通訊協定可以在虛擬私有雲端 (VPC) 中，透過使用安全群組來進行稽核和封鎖。在 Amazon CloudFront 或 [Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html#redirect-actions) 中，HTTP 請求也可以[自動重新導向至 HTTPS](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https-viewers-to-cloudfront.html)。您可以使用 [Amazon Simple Storage Service (Amazon S3) 儲存貯體政策](https://aws.amazon.com/blogs/storage/enforcing-encryption-in-transit-with-tls1-2-or-higher-with-amazon-s3/)來限制透過 HTTP 上傳物件的能力，並有效地強制執行使用 HTTPS，將物件上傳至儲存貯體。您可以全權控制您的運算資源，以在各個服務中實作傳輸中加密。此外，還可以從外部網路或 [AWS Direct Connect](https://aws.amazon.com/directconnect/) 使用 VPN 連線功能進入 VPC，加速流量加密。確認您的用戶端使用至少 TLS 1.2 對 AWS APIs 進行呼叫，因為 [AWS TLS 的早期版本已於 2024 年 2 月棄用](https://aws.amazon.com/blogs/security/tls-1-2-required-for-aws-endpoints/)。建議您使用 TLS 1.3。如果您有傳輸中加密的特殊要求，您可以在 AWS Marketplace 中找到可用的第三方解決方案。

### 實作步驟
<a name="implementation-steps"></a>
+  **強制傳輸中加密：**您定義的加密要求應符合最新標準和最佳實務，並僅允許採用安全協定。例如，設定安全群組，僅允許 HTTPS 協定連至 Application Load Balancer 或 Amazon EC2 執行個體。
+  **在邊緣服務中設定安全協定：**[使用 Amazon CloudFront 設定 HTTPS](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https.html)，並使用[適用於您的安全狀態和使用案例的安全設定檔](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/secure-connections-supported-viewer-protocols-ciphers.html#secure-connections-supported-ciphers)。
+  **使用 [VPN 進行外部連線](https://docs.aws.amazon.com/vpc/latest/userguide/vpn-connections.html)：**考慮使用 IPsec VPN，保護點對點或網路對網路連線，以協助提供資料隱私和完整性。
+  **在負載平衡器中設定安全協定**：選取安全政策，以提供要連接到接聽程式的用戶端所支援的最強固的密碼套件。[為 Application Load Balancer 建立 HTTPS 接聽程式](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html)。
+  **在 Amazon Redshift 中設定安全協定：**將您的叢集設定為要求 [Secure Socket Layer (SSL) 或 Transport Layer Security (TLS) 連線](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html)。
+  **設定安全協定：**檢閱 AWS 服務文件以確定傳輸中加密功能。
+  **設定上傳至 Amazon S3 儲存貯體時的安全存取：**使用 Amazon S3 儲存貯體政策控制對資料[強制安全存取](https://docs.aws.amazon.com/AmazonS3/latest/userguide/security-best-practices.html)。
+  **考慮使用 [AWS Certificate Manager](https://aws.amazon.com/certificate-manager/)：**ACM 可讓您佈建、管理和部署 TLS 憑證與 AWS 服務搭配使用。
+  **考慮使用 [AWS 私有憑證授權單位](https://aws.amazon.com/private-ca/) 滿足私有 PKI 需求：**AWS 私有 CA 可讓您建立私有憑證授權機構 (CA) 階層來發行可用於建立已加密 TLS 通道的終端實體 X.509 憑證。

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

 **相關文件：**
+ [ 將 HTTPS 與 CloudFront 搭配使用](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/using-https.html)
+ [ 使用 AWS Virtual Private Network 將 VPC 連線至遠端網路](https://docs.aws.amazon.com/vpc/latest/userguide/vpn-connections.html)
+ [ 為 Application Load Balancer 建立 HTTPS 接聽程式](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-https-listener.html)
+ [ 教學課程：在 Amazon Linux 2 上設定 SSL/TLS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/SSL-on-amazon-linux-2.html)
+ [ 使用 SSL/TLS 加密與資料庫執行個體的連線](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html)
+ [ 設定連線的安全選項](https://docs.aws.amazon.com/redshift/latest/mgmt/connecting-ssl-support.html)

# SEC09-BP03 驗證網路通訊
<a name="sec_protect_data_transit_authentication"></a>

 使用支援身分驗證的協定 [如 Transport Layer Security (TLS) 或 IPsec] 來驗證通訊的身分。

 設計工作負載，以在每當服務、應用程式或使用者之間進行通訊時，使用安全、經驗證的網路協定。使用支援驗證和授權的網路協定可提供更強大的網路流量控制能力，並減少未經授權存取所造成的影響。

 **預期成果：**設計出工作負載，讓其有明確定義的服務間資料平面和控制平面流量流程。在技術允許的情況下，流量流程要使用經過驗證和加密的網路協定。

 **常見的反模式：**
+  工作負載內有未經加密或驗證的流量流程。
+  在多個使用者或實體之間重複使用驗證憑證。
+  僅仰賴網路控制做為存取控制機制。
+  建立自訂驗證機制，而非仰賴產業標準的驗證機制。
+  服務元件或 VPC 中的其他資源之間有過於寬鬆的流量。

 **建立此最佳實務的優勢：**
+  將未經授權存取所造成的影響範圍限制在工作負載的某個部分。
+  提供只會由已驗證實體執行動作的更高層級保證。
+  透過清楚地定義並強制執行預期的資料傳輸介面來改善服務的去耦。
+  透過請求歸因和明確定義的通訊介面，增強監控、日誌記錄和事件回應。
+  結合網路控制與驗證和授權控制，為您的工作負載提供深度防禦。

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

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

 您工作負載的網路流量模式可分為兩個類別：
+  *東西流量*代表構成工作負載的服務之間的流量流程。
+  *南北流量*代表工作負載和取用者之間的流量流程。

 雖然加密南北流量是常見的做法，但是使用經過驗證的協定來保護東西流量則較不常見。現代安全實務的建議是，單靠網路設計並無法讓兩個實體之間建立信任的關係。當兩個服務可能位於一個共通的網路邊界內時，最佳實務仍是對這些服務之間的通訊進行加密、驗證和授權。

 舉例來說，無論請求來自哪個網路，AWS 服務 API 都會使用 [AWS 第 4 版簽署程序 (SigV4)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-signing.html) 簽署協定來驗證呼叫者。此驗證可確保 AWS API 可以驗證發出動作請求的身分，該身分接著可與政策結合來作出授權決策，確定是否應允許該動作。

 [Amazon VPC Lattice](https://docs.aws.amazon.com/vpc-lattice/latest/ug/access-management-overview.html) 和 [Amazon API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/permissions.html) 等服務可讓您使用相同的 SigV4 簽署協定，為自己的工作負載中的東西流量新增驗證和授權功能。如果 AWS 環境以外的資源需要與要求進行 SigV4 型驗證和授權的服務進行通訊，您可以在非 AWS 資源上使用 [AWS Identity and Access Management (IAM) Roles Anywhere](https://docs.aws.amazon.com/rolesanywhere/latest/userguide/introduction.html) 來取得暫時 AWS 憑證。使用這些憑證，便可透過 SigV4 簽署服務請求以授權存取。

 用於驗證東西流量的另一種常見機制是 TLS 相互驗證 (mTLS)。許多物聯網 (IoT)、企業對企業應用程式和微型服務都使用 mTLS，透過使用用戶端和伺服器端 X.509 憑證來驗證 TLS 通訊兩端的身分。這些憑證可由 AWS 私有憑證授權單位 (AWS 私有 CA) 發行。您可以使用 [Amazon API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/rest-api-mutual-tls.html) 等服務，為工作負載之間或工作負載內部的通訊提供 mTLS 驗證。[Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/mutual-authentication.html) 也支援內部或外部工作負載的 mTLS。雖然 mTLS 會為 TLS 通訊的兩端提供驗證資訊，但不提供授權機制。

 最後，OAuth 2.0 和 OpenID Connect (OIDC) 是兩種常用於控制使用者對服務存取行為的協定，但現在也變成服務對服務流量的熱門協定。API Gateway 會提供 [JSON Web Token (JWT) 授權器](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-jwt-authorizer.html)，可讓工作負載使用 OIDC 或 OAuth 2.0 身分提供者所發行的 JWT 來限制 API 路由的存取。OAuth2 的範圍可做為基本授權決策的來源，但仍需要在應用程式層實作授權檢查，而且單靠 OAuth2 範圍並無法支援更複雜的授權需求。

### 實作步驟
<a name="implementation-steps"></a>
+  **定義並記錄您的工作負載網路流程：**實作深度防禦策略的第一步是定義工作負載的流量流程。
  +  建立可清楚定義構成工作負載的不同服務間資料傳輸方式的資料流程圖。此圖是透過已驗證的網路通道強制執行這些流程的第一步。
  +  在開發和測試階段檢測您的工作負載，以驗證資料流程圖是否準確反映工作負載在執行時期的行為。
  +  資料流程圖在執行威脅建模練習時也很有用，如 [SEC01-BP07 使用威脅模型識別威脅並優先考慮緩解措施](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/sec_securely_operate_threat_model.html)中所述。
+  **建立網路控制：**考慮用來建立與資料流程一致的網路控制的 AWS 功能。雖然網路邊界不應成為唯一的安全控制，但其可在深度防禦策略中提供一個保護層，以保護您的工作負載。
  +  使用[安全群組](https://docs.aws.amazon.com/vpc/latest/userguide/security-groups.html)建立定義和限制資源之間的資料流程。
  +  考慮使用 [AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/what-is-privatelink.html) 與支援 AWS PrivateLink 的 AWS 和第三方服務進行通訊。透過 AWS PrivateLink 介面端點傳送的資料會保留在 AWS 網路骨幹內，不會周遊公用網際網路。
+  **在工作負載中跨服務實作驗證和授權：**選擇最適合用來在您工作負載中提供經驗證加密流量的 AWS 服務集。
  +  考慮用來保護服務對服務通訊的 [Amazon VPC Lattice](https://docs.aws.amazon.com/vpc-lattice/latest/ug/what-is-vpc-lattice.html)。VPC Lattice 可以使用 [SigV4 驗證結合驗證政策](https://docs.aws.amazon.com/vpc-lattice/latest/ug/auth-policies.html)來控制服務對服務的存取。
  +  對於使用 mTLS 的服務對服務通訊，請考慮 [API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/rest-api-mutual-tls.html)、[Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/mutual-authentication.html)。[AWS 私有 CA](https://docs.aws.amazon.com/privateca/latest/userguide/PcaWelcome.html) 可用於建立能夠發行憑證以與 mTLS 搭配使用的私有 CA 階層。
  +  與使用 OAuth 2.0 或 OIDC 的服務進行整合時，請考慮[使用 JWT 授權器的 API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-jwt-authorizer.html)。
  +  對於工作負載和 IoT 裝置之間的通訊，請考慮 [AWS IoT Core](https://docs.aws.amazon.com/iot/latest/developerguide/client-authentication.html)，它提供了幾種網路流量加密和驗證選項。
+  **監控未經授權的存取：**持續監控是否有意外的通訊管道、嘗試存取受保護資源的未經授權主體，以及其他不當的存取模式。
  +  如果使用 VPC Lattice 來管理服務的存取，請考慮啟用和監控 [VPC Lattice 存取日誌](https://docs.aws.amazon.com/vpc-lattice/latest/ug/monitoring-access-logs.html)。這些存取日誌包括請求方實體的資訊、包括來源和目的地 VPC 在內的網路資訊，以及請求中繼資料。
  +  考慮啟用 [VPC 流程日誌](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html)來擷取網路流程上的中繼資料，並定期審查是否有異常狀況。
  +  如需更多有關規劃、模擬和應對安全事件的指引，請參閱 [AWS 安全事件回應指南](https://docs.aws.amazon.com/whitepapers/latest/aws-security-incident-response-guide/aws-security-incident-response-guide.html)和 AWS Well Architected Framework 安全支柱的[事件回應](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/incident-response.html)章節。

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

 **相關的最佳實務：**
+ [ SEC03-BP07 分析公有和跨帳戶存取權](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/sec_permissions_analyze_cross_account.html)
+ [ SEC02-BP02 使用臨時憑證](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/sec_identities_unique.html)
+ [ SEC01-BP07 使用威脅模型識別威脅並優先考慮緩解措施](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/sec_securely_operate_threat_model.html)

 **相關文件：**
+ [ 評估用來保護 Amazon API Gateway API 的存取控制方法](https://aws.amazon.com/blogs/compute/evaluating-access-control-methods-to-secure-amazon-api-gateway-apis/)
+ [ 為 REST API 設定相互 TLS 驗證](https://docs.aws.amazon.com/apigateway/latest/developerguide/rest-api-mutual-tls.html)
+ [ 如何使用 JWT 授權器保護 API Gateway HTTP 端點 ](https://aws.amazon.com/blogs/security/how-to-secure-api-gateway-http-endpoints-with-jwt-authorizer/)
+ [ 使用 AWS IoT Core 憑證提供者來授權 AWS 服務的直接呼叫](https://docs.aws.amazon.com/iot/latest/developerguide/authorizing-direct-aws.html)
+ [AWS 安全事件回應指南](https://docs.aws.amazon.com/whitepapers/latest/aws-security-incident-response-guide/aws-security-incident-response-guide.html)

 **相關影片：**
+ [AWS re:invent 2022：VPC Lattice 簡介](https://www.youtube.com/watch?v=fRjD1JI0H5w)
+ [AWS re:invent 2020：針對 AWS 上 HTTP API 的無伺服器 API 驗證](https://www.youtube.com/watch?v=AW4kvUkUKZ0)

 **相關範例：**
+ [ Amazon VPC Lattice 研討會](https://catalog.us-east-1.prod.workshops.aws/workshops/9e543f60-e409-43d4-b37f-78ff3e1a07f5/en-US)
+ [ 零信任第 1 集 - Phantom Service Perimeter 研討會 ](https://catalog.us-east-1.prod.workshops.aws/workshops/dc413216-deab-4371-9e4a-879a4f14233d/en-US)