S3 Object Lambda 存取點的安全考量 - Amazon Simple Storage Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

S3 Object Lambda 存取點的安全考量

使用 Amazon S3 物件 Lambda,您可以使用作為運算平台的規模和靈活性,在資料離開 Amazon S3 時對資料執行自訂轉換。 AWS Lambda S3 和 Lambda 依預設保持安全狀態,但若要維護安全,需要 Lambda 函數授權方的特別考量。S3 Object Lambda 要求所有存取都由經過驗證的主體 (無匿名訪問) 和透過 HTTPS 進行。

若要緩解安全風險,建議您採取下列操作:

  • 將 Lambda 執行角色的範圍儘可能設定為最小的許可集。

  • 儘可能確保您的 Lambda 函數透過提供的預先簽章 URL 存取 Amazon S3。

設定 IAM 政策

S3 存取點支援 AWS Identity and Access Management (IAM) 資源政策,可讓您根據資源、使用者或其他條件控制存取點的使用。如需詳細資訊,請參閱 設定 Object Lambda 存取點的 IAM 政策

加密行為

由於物件 Lambda 存取點同時使用 Amazon S3 AWS Lambda,因此加密行為存在差異。如需預設 S3 加密行為的詳細資訊,請參閱對 Amazon S3 儲存貯體設定預設伺服器端加密行為

  • 當您搭配 Object Lambda 存取點使用 S3 伺服器端加密時,物件會在傳送至 Lambda 之前進行解密。將物件傳送至 Lambda 之後,會以未加密方式處理物件 (若為 GETHEAD 請求)。

  • 為了防止金鑰遭到記錄,S3 會針對搭配客戶提供的金鑰 (SSE-C) 使用伺服器加密來加密的物件拒絕 GETHEAD 請求。不過,如果 Lambda 函數可以存取用戶端提供的金鑰,則它仍然可能擷取這些物件。

  • 搭配 Object Lambda 存取點使用 S3 用戶端加密時,請確定 Lambda 可以存取金鑰,以便其可以解密和重新加密物件。

存取點安全

S3 Object Lambda 使用兩個存取點,一個 Object Lambda 存取點和一個標準 S3 存取點,這些稱為支援存取點。當您對 Object Lambda 存取點提出請求時,S3 會代表您叫用 Lambda,或將請求委派給支援的存取點 (視 S3 Object Lambda 組態而定)。當針對請求叫用 Lambda 時,S3 會透過支援存取點代表您對物件產生預先簽章的 URL。叫用 Lambda 函數時,此函數會接收此 URL 作為輸入。

您可以將 Lambda 函數設定為使用此預先簽章 URL 來擷取原始物件,而不是直接叫用 S3。藉由使用此模型,您可以將更好的安全界限套用至您的物件。您可以透過 S3 儲存貯體或 S3 存取點,將直接物件存取限制為一組有限的 IAM 角色或使用者。此方法也可以保護 Lambda 函數免受混淆代理人問題的影響,其中具有與啟動程式不同許可的錯誤設定函數可能會允許或拒絕物件的存取。

Object Lambda 存取點公有存取點

S3 Object Lambda 不允許匿名或公有存取,因為 Amazon S3 必須授權您的身分,才能完成任何 S3 Object Lambda 請求。當透過 Object Lambda 存取點叫用請求時,您必須具有所設定 Lambda 函數的 lambda:InvokeFunction 許可。同樣,當透過 Object Lambda 存取點叫用其他 API 操作時,您必須具有必要的 s3:* 許可。

若沒有這些許可,叫用 Lambda 或委派給 S3 的請求將會失敗,並顯示 HTTP 403 (禁止) 錯誤。所有存取必須由經過身分驗證的委託人進行。如果需要公有存取,您可以使用 Lambda@Edge 作為可能的替代方案。如需詳細資訊,請參Amazon CloudFront 開發人員指南中的使用 Lambda @Edge 在邊緣進行自訂。

Object Lambda 存取點 IP 地址

這些describe-managed-prefix-lists 子網路支援閘道虛擬私有雲端 (VPC) 端點,並且與 VPC 端點的路由表相關。由於 Object Lambda 存取點不支援閘道 VPC,因此缺少其 IP 範圍。缺少的範圍屬於 Amazon S3,但閘道 VPC 端點不支援。如需有關DescribeManagedPrefixListsAWS 詳 Amazon EC2 資訊describe-managed-prefix-lists,請參AWS 一般參考.

Object Lambda 存取點 CORS 支援

當 S3 Object Lambda 從瀏覽器接收到請求,或請求包含 Origin 標頭時,S3 Object Lambda 一律會新增 “AllowedOrigins":"*" 標頭欄位。

如需詳細資訊,請參閱 使用跨來源資源分享 (CORS)