Nitro Enclaves zijn een nieuwe functie van AWS's Nitro Hypervisor die EC2-instanties beheert. Hiermee kunt u een afzonderlijke, geïsoleerde omgeving inrichten die wordt gebruikt voor het verwerken van zeer veilige, vaak versleutelde gegevens.
Gegevensverwerking in een geïsoleerde omgeving
Nitro Enclaves is een nieuwe mogelijkheid van EC2. Elke Enclave heeft een EC2-instantie nodig als ouder; je kunt het zien als een bijlage, zoals een EBS-schijf of een acceleratorkaart.
Deze Nitro Enclaves zijn eigenlijk ongelooflijk veilig. Ze zijn volledig geïsoleerd - niemand, zelfs jij, de eigenaar of de beheerder niet, heeft rechtstreeks via SSH toegang tot ze of alle processen die erop worden uitgevoerd. Ze hebben geen externe netwerken; alleen de ouder kan met de enclave praten en alleen via lokale netwerkaansluitingen. Dit betekent dat de bovenliggende server kan worden geconfigureerd om versleutelde gegevens te verwerken zonder dat deze ooit binnen het bereik van die server komt.
Het werkt als volgt: er komt een verzoek binnen bij de bovenliggende instantie die gevoelige gegevens moet verwerken. In plaats van het lokaal te verwerken, wordt het naar de enclave gestuurd. Hoewel het technisch gescheiden is, kun je het zien als een speciaal beschermd onderdeel van de bovenliggende server. De enclave kan een decoderingssleutel ophalen van AWS's Key Management Service, de gegevens decoderen en een reactie sturen na verwerking.

Een enclave wordt gemaakt door "de CPU en het geheugen van een EC2-instantie te partitioneren". Als je een 16-core 64 GB-machine hebt, kun je bijvoorbeeld 4 cores en 32 GB aan de enclave toewijzen.
Desalniettemin stelt de Nitro Hypervisor dezelfde beperkingen op CPU- en geheugentoegang tussen een bovenliggende instantie en een enclave als tussen uw instantie en die van iemand anders op dezelfde host. Het enige dat de twee verbindt, is een lokale vsock-verbinding.

De integratie met AWS's Key Management Service is hier erg handig. KMS kan worden gebruikt om de toegang tot gevoelige decoderingssleutels te volgen, te roteren en te beheren. Deze integratie maakt gebruik van "cryptografische attestering", wat betekent dat de Nitro Hypervisor een ondertekend attestdocument voor de enclave produceert om zijn identiteit aan KMS te bewijzen. Dit omvat een hash van het afbeeldingsbestand, een certificaat voor het ondertekenen van een afbeeldingsbestand, een hash van de Linux-kernel, IAM-rollen op de bovenliggende en de ID van de bovenliggende. Alles moet overeenkomen met de configuratie, anders gaat het verzoek aan KMS niet door. Als je geïnteresseerd bent, is er een voorbeeldtool die Nitro meelevert en die het cryptografische attestproces demonstreert.
Hoe Nitro Enclaves te gebruiken
Om ze te gebruiken, moet je een instantie starten met de instelling ingeschakeld:

Je moet dan de afbeelding bouwen vanuit een Dockerfile en de CLI gebruiken om de enclave te maken. Je kunt de handleiding van AWS lezen op hun blog of hun YouTube-tutorial voor meer informatie.
Daarna moet u waarschijnlijk het KMS-attest instellen om het veilig met KMS te gebruiken.