AWS Nitro Enclaves 的定義以及使用場景。
AWS Nitro Enclaves 是一項新的 EC2 功能,使客戶能夠創建隔離的計算環境 (Enclaves) 來進一步保護和安全地處理高度敏感的數據,例如其 Amazon EC2 實例中的個人身份信息 (PII)、醫療保健、金融和知識產權數據。Nitro Enclaves 可幫助客戶減少他們用於處理最敏感數據的應用程序的攻擊面。
Enclaves 是獨立的虛擬機,穩定且高度受限。它們沒有持久性存儲、交互式訪問和外部聯網。因此,即使您是實例上的根用戶或管理員用戶,您也不能訪問或通過 SSH 連接到 Enclave。Nitro Enclaves 使用經過驗證的 Nitro 管理程序隔離將 Enclave 的 CPU 和內存與父級實例上的用戶、應用程序和庫進一步隔離。與 Enclave 通信的唯一方式是通過與 Enclave 連接的父級實例中的本地套接字。利用此方式,您可以將您的 EC2 實例內的高度敏感性數據處理與您自己的內部管理員、開發人員和其他 EC2 實例隔離。 【1】
目前支持的區域包括: us-east-1, us-east-2, us-west-1, us-west-2, eu-central-1, eu-west-1, eu-west-2, eu-west-3, eu-south-1, eu-north-1, me-south-1, ap-east-1, ap-south-1, ap-northeast-1, ap-northeast-2, ap-southeast-1, ap-southeast-2, sa-east-1, ca-central-1, and af-south-1.
支持的實例類型: Virtualized Nitro-based instances with at least four vCPUs. t3, t3a, t4g, a1, c6g, c6gd, m6g, m6gd, r6g, and r6gd instances are not supported.
需要創建 parent 實例,以及 enclave 部分。【2】
1. 創建 parent 實例
創建實例的時候在 configuration details - advanced 裡面選擇 enable Enclave. 這樣實例就具有 Enclave 功能。
2. 通過 docker ,Building an enclave image file 【3】
3. 利用 enclave image file (.eif) 創建 Enclave [4]
nitro-cli run-enclave --cpu-count 2 --memory 1600 --eif-path sample.eif --enclave-cid 10
具體的使用還需要看您需要使用到什麼場景,總的資料可以參考【5】。
簡單來說EC2啟用後,會把CPU 、記憶體進行分割來建立出獨立的 Nitro Enclaves隔離區,隔離區的OS是用docker 轉eif,溝通透過vsock
您可以指定需要分割的 vcpu 數量和內存大小。
在創建 enclave 時需要使用 cli 命令 :
nitro-cli run-enclave --cpu-count 2 --memory 1600 --eif-path sample.eif --enclave-cid 10
意思是從父實例中分配出 4 vcpu 和 1600MB 內存給 enclave 使用。
Ec2 重開機隔離區資料會保留?
Enclaves 上沒有本地存儲,數據通信來源父ec2,數據只有通過 vsock 通信。所以一旦父ec2重啓, Enclaves 的數據會丟失。
建立的Enclave 是與EBS共用硬碟空間?
Enclaves 上沒有本地存儲,數據通信來源父ec2,數據通過 vsock 通信。
若我Ec2啟用後父Ec2 的主機效能會間接影響到隔離區的處理效能嗎?
Enclaves 是完全獨立的,擁有自己內核,cpu ,內存的虛擬機。處理的效能不會相互影響,性能取決您具體給 ec2 和 enclaves 分配了多少 CPU 和內存。
參考:
【1】 https://aws.amazon.com/cn/about-aws/whats-new/2020/10/announcing-general-availability-of-aws-nitro-enclaves/
【2】 https://docs.aws.amazon.com/zh_cn/enclaves/latest/user/using.html
【3】 https://docs.aws.amazon.com/zh_cn/enclaves/latest/user/building-eif.html
[4] https://docs.aws.amazon.com/zh_cn/enclaves/latest/user/create-enclave.html#boot-enclave
【5】 https://docs.aws.amazon.com/zh_cn/enclaves/latest/user/nitro-enclave-concepts.html