

# 保護靜態資料
<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) 