[英]Isolate AWS lambda function
在一個業余愛好項目中,我正在創建一個在線游戲,用戶可以通過實施策略來玩紙牌游戲。 用戶可以提交他的代碼,它將與其他用戶策略對戰。 用戶提交代碼后,代碼需要在服務器端運行。
我決定將用戶提交代碼的代碼執行隔離到 AWS lambda function 中。 我想防止代碼竊取我的 AWS 憑證、挖掘加密貨幣和進行其他有害活動。
我的計划是執行以下操作:
現在我需要您就如何實現最佳隔離提出建議:
如何配置我的 function,使其無法訪問互聯網?
將 function 啟動到 VPC 內的隔離私有子網中。
如何配置我的 function,使其無法訪問我的內部服務?
通過在隔離的私有子網中啟動 function,您可以配置它可以訪問的服務,方法是通過安全組以及進一步通過路由表控制這些服務,該子網附加包括 AWS 網絡 ACL。
您是否看到任何其他可能的攻擊媒介? 這里可能有多個攻擊向量:
我會嘗試從 AWS 服務的安全角度來回答。 最重要的是添加AWS Billing Alerts設置,以防萬一出現問題,至少您會收到通知並采取必要的措施,並且我假設您已經為您的登錄設置了 MFA。
當您想在 AWS 中完全保護此部署時,該列表可能會很長。 我只添加了幾個。
我首先要說這是非常危險的,並且允許人們在您的基礎架構中運行他們自己的代碼可能非常危險。 但是,話雖如此,這里有幾件事:
限制代碼執行時間
這已經內置到 Lambda 中。 函數具有執行時間限制,您可以通過 IaC、AWS 控制台或 CLI 輕松配置該時間限制。
限制互聯網訪問
默認情況下,Lambda 函數可以被認為是存在於 VPC 約束之外的更多應用程序。 因此,他們可以訪問互聯網。 我想您可以將 Lambda function 放在 VPC 的私有子網中,然后將網絡配置為不允許連接到您想要的位置以外的位置。
限制對其他服務的訪問
假設您在這里指的是 AWS 服務,Lamdba 函數受 IAM 角色的約束,與它們可以訪問的其他 AWS 服務相關。 只要您不讓 Lambda function 訪問它的 IAM 角色中的某些內容,它就無法訪問這些服務,除非潛在的惡意用戶通過其他方式提供憑據,例如將它們以純文本形式放入代碼中可以通過 AWS SDK 實現來獲取。
如果您指的是其他內部服務,例如 EC2 實例或 ECS 服務,那么您可以使用正確的網絡配置來限制訪問,並將您的 function 放入 VPC。
您是否看到任何其他可能的攻擊媒介?
很難確定。 我真的會完全不建議這樣做,而無需采取一些專業的(並且可能是有償和有保險的)建議。 每天都有新的攻擊媒介可以打開或被發現,因此如果發現新的漏洞,現在的任何建議明天都可能完全改變。
我認為你最好的選擇是:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.