Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
如何保護我在 Amazon S3 儲存貯體中的檔案安全?
我想透過存取限制、資源監控及資料加密來保護我的 Amazon S3 儲存貯體,以保護我的檔案並符合安全性最佳實務。
解決方法
首先,確認您的 Amazon S3 儲存貯體類型是一般用途、目錄或資料表。接著,選擇與您的儲存貯體類型相符的安全措施與監控服務。
限制對 S3 資源的存取
預設情況下,所有 S3 儲存貯體皆為私有。只有您明確授予儲存貯體權限的使用者才能存取該儲存貯體。
若要限制對 S3 儲存貯體或物件的存取,請採取以下動作:
- 使用身分型政策來指定哪些使用者可以存取特定的儲存貯體與物件。若要建立並測試使用者政策,請使用 AWS 政策產生器與 IAM 政策模擬器。
- 使用儲存貯體政策來定義對特定儲存貯體與物件的存取。使用儲存貯體政策可跨 AWS 帳戶授予存取權、授予公開或匿名權限,並可根據條件允許或封鎖存取。
**注意:**您可以在儲存貯體政策中使用 Deny 陳述式,以限制特定 AWS Identity and Access Management (IAM) 使用者的存取,即使您在 IAM 政策中已授予該使用者存取權。 - 使用 Amazon S3 封鎖公開存取作為集中化的方式來限制公開存取。封鎖公開存取設定會覆寫儲存貯體政策和對象許可。請務必為所有您不希望公開存取的帳戶與儲存貯體開啟封鎖公開存取。Amazon S3 會預設為所有新帳戶與新儲存貯體開啟封鎖公開存取。只有在您明確需要公開存取 S3 資源時,才停用此功能。如果您在儲存貯體上停用封鎖公開存取,請定期稽核該儲存貯體。
- 在您的儲存貯體與物件上設定存取控制清單。
**注意:**若您必須以程式方式管理權限,請使用 IAM 政策或儲存貯體政策,而非 ACL。但是,當儲存貯體政策超過 20 KB 檔案大小上限時,您可以使用 ACL。或當您需要授予 Amazon S3 伺服器存取日誌或 Amazon CloudFront 日誌的存取權時,也可使用 ACL。 - 使用服務控制政策 (SCPs),集中管理並強制執行整個組織中所有帳戶的 S3 安全政策。
- 在網路層級,使用虛擬私有雲端 (VPC) 端點、儲存貯體政策中的 IP 位址限制,以及 AWS PrivateLink for S3 來限制存取。VPC 端點允許在不透過網際網路的情況下私下存取 Amazon S3。
- 使用 S3 存取點,以簡化多個應用程式或團隊存取儲存貯體時的安全管理。
- 實作 S3 物件鎖定,以防止使用者在指定期間內刪除或覆寫物件。
若您使用 ACL 來保護資源,請遵循以下最佳實務:
- 檢閱允許在儲存貯體或物件上執行 Amazon S3 動作的 ACL 權限。
- 限制可取得讀取與寫入存取權的對象。
- 僅在您希望所有人都能存取儲存貯體或物件時,才授予讀取存取權給所有人群組。
- 切勿授予寫入存取權給所有人群組。任何具有寫入存取權的人都能將物件新增至您的儲存貯體,且 AWS 會對每個上傳的物件收費。此外,任何擁有寫入存取權的人都能刪除儲存貯體中的物件。
- 切勿授予寫入存取權給任何已驗證的 AWS 使用者群組,因為該群組包含所有具有有效帳戶的使用者。若要控制帳戶中 IAM 使用者的存取,請改用 IAM 政策。如需了解 Amazon S3 如何評估 IAM 政策,請參閱 Amazon S3 如何授權請求。
- 對於新的儲存貯體,Amazon S3 會預設將 S3 物件擁有權設為強制執行儲存貯體擁有者。這會停用 ACL。若要維持對所有物件的完整控制,最佳實務是停用 ACL,並使用儲存貯體政策與 IAM 政策來進行存取控制。
您也可以透過以下方式限制特定動作的存取:
- 若要要求使用者在刪除物件或停用儲存貯體版本設定前使用多重要素驗證,請設定 MFA 刪除。
- 設定受 MFA 保護的 API 存取,以便使用者在呼叫特定 Amazon S3 API 作業前,必須使用 AWS MFA 裝置進行驗證。
- 若您暫時與其他使用者共用 S3 物件,請建立預先簽署的網址,以授予該物件的限時存取權。
監控您的 S3 資源
若要開啟記錄並監控您的 S3 資源,請採取以下動作:
- 啟用儲存貯體物件的 AWS CloudTrail 記錄。預設情況下,CloudTrail 只會監控儲存貯體層級的動作。若要監控物件層級的動作 (例如 GetObject),請記錄資料事件。有關資料事件的範例,請參閱範例: 記錄 Amazon S3 物件的資料事件。
- 開啟 Amazon S3 伺服器存取記錄。如需檢視伺服器存取日誌的資訊,請參閱 Amazon S3 伺服器存取日誌格式。
- 使用 AWS Config 來監控儲存貯體 ACL 與儲存貯體政策是否存在允許公開讀取或寫入存取的違規情況。如需更多資訊,請參閱 s3-bucket-public-read-prohibited 與 s3-bucket-public-write-prohibited。
- 使用 IAM Access Analyzer 來檢閱允許其他帳戶存取您 S3 資源的儲存貯體或 IAM 政策。
- 開啟 Amazon Macie,以自動識別儲存在儲存貯體中的敏感資料、過於寬鬆的存取權限與未加密的儲存貯體。
- 將 CloudTrail 與其他 AWS 服務結合使用,以在您對 S3 資源執行特定動作時調用特定程序。例如,您可以使用 Amazon EventBridge 記錄 S3 物件層級操作。
- 使用 AWS Trusted Advisor 的 S3 儲存貯體權限檢查功能,以通知您具有開放權限的儲存貯體。如需更多資訊,請參閱 AWS Trusted Advisor 檢查參考資料。
使用加密來保護您的資料
若您需要在傳輸過程中加密資料,請使用 HTTPS 通訊協定,在將資料傳送至 Amazon S3 或接收 Amazon S3 的資料時進行加密。所有 AWS SDK 與 AWS 工具預設皆使用 HTTPS。
**注意:**若您使用第三方工具與 Amazon S3 互動,請聯絡該第三方公司以確認其工具是否也支援 HTTPS 通訊協定。
若您需要靜態資料加密,請使用伺服器端加密 (SSE) 選項:Amazon S3 受管金鑰 (SSE-S3)、AWS Key Management Service (AWS KMS) 金鑰 (SSE-KMS),或客戶提供的金鑰 (SSE-C)。SSE 透過 CloudTrail 提供額外的保護層與詳細稽核軌跡。您可以在將物件寫入儲存貯體時指定 SSE 參數。您也可以使用 SSE-S3 或 SSE-KMS 為儲存貯體啟用預設加密。
**注意:**Amazon S3 會自動為所有新儲存貯體啟用 SSE-S3。
若您需要用戶端加密,請參閱使用用戶端加密保護資料。
相關資訊
相關內容
- 已提問 2 年前
- 已提問 2 年前

