

# 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) 