我想限制對我的 Amazon Simple Storage Service (Amazon S3) 資源的許可,並監控對這些資源的存取。
簡短說明
若要保護您的檔案和 Amazon S3 儲存區,請遵循下列最佳做法:
解決方法
限制對 S3 資源的存取
預設情況下,所有 S3 儲存貯體都是私有的,只有獲得明確授予存取權的使用者才能存取。
執行下列動作,限制對 S3 儲存貯體或物件的存取:
- 撰寫 IAM 使用者政策,以指定可存取特定儲存貯體和對象的使用者。IAM 政策提供程式設計方式,可管理多個使用者的 Amazon S3 許可。如需有關建立和測試使用者政策的詳細資訊,請參閱 AWS 政策產生器和 IAM 政策模擬器。
- 撰寫儲存貯體政策,以定義對特定儲存貯體和物件的存取。使用儲存貯體政策授予跨 AWS 帳戶的存取權限、授予公開或匿名許可,並根據條件允許或封鎖存取。如需有關建立和測試儲存貯體政策的詳細資訊,請參閱 AWS 政策產生器。
**注意:**您可以在儲存貯體政策中使用拒絕陳述式,限制特定 IAM 使用者的存取權限。即使已在 IAM 政策中授予使用者存取權,您也可以限制存取。
- 使用 Amazon S3 封鎖公開存取集中限制公開存取。封鎖公開存取設定會覆寫儲存貯體政策和對象許可。請務必為您不希望允許公開存取的所有帳戶和儲存貯體開啟封鎖公開存取。
- 在儲存貯體和物件上設定存取控制清單 (ACL)。
**注意:**如果您需要以程式設計方式管理許可,請使用 IAM 政策或儲存貯體政策,而不是 ACL。但是,當儲存貯體政策超過 20 KB 檔案大小上限時,您可以使用 ACL。或者,您也可以使用 ACL 授予對 Amazon S3 伺服器存取日誌或 Amazon CloudFront 日誌的存取權。
使用 ACL 保護資源安全時,請考慮下列最佳做法:
- 檢閱允許在儲存貯體或物件上執行 Amazon S3 動作的 ACL 許可。如需 ACL 許可及其允許動作清單,請參閱我可以授予哪些權限?
- 嚴格限制獲得讀取和寫入存取權限的人員。
- 向 Everyone 群組授予讀取權限前,請仔細考量您的使用案例,因為這將允許任何人存取該儲存貯體或物件。
- 絕對不要向 Everyone 群組授予寫入權限。此設定會允許任何人將物件新增至您的儲存貯體,然後由您支付費用。此設定也可會允許任何人刪除儲存貯體中的對象。
- 絕對不要向任何經過身分驗證的 AWS 使用者群組授予寫入存取權限。此群組包含具備作用中 AWS 帳戶的任何人,不只是您帳戶中的 IAM 使用者。若要控制您帳戶中 IAM 使用者的存取權限,請改用 IAM 政策。如需 Amazon S3 如何評估 IAM 政策的詳細資訊,請參閱 Amazon S3 如何授權請求。
除了使用政策、封鎖公開存取和 ACL 之外,您也可以透過下列方式限制特定動作的存取權:
- 開啟 MFA 刪除。這要求使用者在刪除物件或停用儲存貯體版本控制前,先使用多重要素驗證 (MFA) 裝置進行身分驗證。
- 設定 MFA 保護的 API 存取。這要求使用者在呼叫特定 Amazon S3 API 操作前,先使用 AWS MFA 裝置進行身分驗證。
- 如果您暫時與其他使用者共用 S3 對象,請建立預先簽章的 URL 以授予對該對象的限時存取權。如需詳細資訊,請參閱使用預先簽章的 URL 共用對象。
監控您的 S3 資源
使用下列方式開啟日誌記錄和監控 S3 資源:
使用加密保護資料
如果您的使用案例在傳輸過程中需要加密,請使用 HTTPS 通訊協定。這會加密與 Amazon S3 之間傳輸的資料。預設情況下,所有 AWS SDK 和 AWS 工具都使用 HTTPS。
**注意:**如果使用第三方工具與 Amazon S3 互動,請聯絡開發人員以確認其工具是否也支援 HTTPS 通訊協定。
如果您的使用案例需要對靜態資料進行加密,請使用伺服器端加密 (SSE)。SSE 選項包括 SSE-S3、SSE-KMS 或 SSE-C。您可以在將物件寫入儲存貯體時指定 SSE 參數。您也可以啟用儲存貯體的預設 SSE-S3 或 SSE-KMS 加密。
如果您的使用案例需要用戶端加密,請參閱使用用戶端加密保護資料。
相關資訊
Amazon S3 中的身分和存取管理
Amazon S3 中的資料保護
如何要求其他 AWS 帳戶的使用者使用 MFA 存取我的 Amazon S3 儲存貯體?
如何查看誰正在存取我的 Amazon S3 儲存貯體和對象?