本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon 的 Fargate 安全考量 ECS
每項任務都有專用的基礎架構容量,因為 Fargate 會在隔離的虛擬環境中執行每個工作負載。在 Fargate 上執行的工作負載不會與其他任務共用網路介面、暫時性儲存CPU、 或 記憶體。您可以在任務中執行多個容器,包括應用程式容器和附屬容器,或者僅是附屬。附屬容器是與 Amazon ECS任務中的應用程式容器一起執行的容器。當應用程式容器執行核心應用程式程式碼時,在附屬中執行的程序可以增強應用程式。附屬可協助您將應用程式功能隔離到專用容器中,讓您更輕鬆地更新應用程式的各個部分。
屬於相同任務的容器會共用 Fargate 啟動類型的資源,因為這些容器將始終會在相同的主機上執行並共用計算資源。這些容器也共用 Fargate 提供的暫時性儲存。任務中的 Linux 容器會共用網路命名空間,包括 IP 地址和網路連接埠。在任務內部,屬於任務的容器可以透過本機主機進行相互通訊。
Fargate 中的執行期環境可防止您使用EC2執行個體上支援的某些控制器功能。架構在 Fargate 上執行的工作負載時,請考量下列事項:
-
沒有特殊權限的容器或存取 - Fargate 目前無法提供特殊權限的容器或存取等功能。這將影響使用案例,例如在 Docker 中執行 Docker。
-
對 Linux 功能的有限存取 - 在 Fargate 上執行容器的環境已被鎖定。其他 Linux 功能,例如 CAP_SYS_ADMIN 和 CAP_NET_ADMIN,會受到限制以防止權限升級。Fargate 支援將 CAP_SYS_PTRACE Linux 功能新增至任務,以允許在任務內部署的可觀測性和安全性工具監控容器化應用程式。
-
無法存取基礎主機 - 客戶和 AWS 運算子都無法連線到執行客戶工作負載的主機。您可以使用 ECS exec 在 中執行命令,或取得在 Fargate 上執行的容器的 shell。您可以使用 ECS exec 協助收集診斷資訊以進行偵錯。Fargate 也可防止容器存取基礎主機的資源,例如檔案系統、裝置、網路和容器執行期。
-
網路 - 您可以使用安全群組和網路ACLs來控制傳入和傳出流量。Fargate 任務會從 中設定的子網路接收 IP 地址VPC。