Skip to content
Skillpedia
Security35k · #5837

implementing-aws-nitro-enclave-security

Teaches your AI agent to protect apps against attacks and ship projects and manage infrastructure.

What it does

This tool helps create secure environments in AWS called 'Nitro Enclaves'. They isolate sensitive data, like personal information or encryption keys, within a protected part of the virtual machine, ensuring even administrators cannot access it.

When to use it

  • ✓Protecting highly sensitive data (like health or financial information).
  • ✓Ensuring code handling secrets only runs in a verified environment.
  • ✓Allowing different secure environments to talk to each other reliably.

Example of what to ask your AI

“Set up a secure environment in AWS to process patient data, ensuring only authorized code can decrypt the information.”

Want more? Open the sections below.

How to use

The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.

Skill link

https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/implementing-aws-nitro-enclave-security/SKILL.md

Ready-to-paste message

Use this skill to help me: https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/implementing-aws-nitro-enclave-security/SKILL.md Read the SKILL.md file at that link and follow its instructions for my task.
How it works

You use specific AWS tools to package your code into an 'enclave image' and configure security policies to ensure only that specific image can access encryption keys.

Installation

Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.

In the terminal (Claude Code, Codex, Cursor), in your project folder:

npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill implementing-aws-nitro-enclave-security

Or download just the file:

curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/implementing-aws-nitro-enclave-security/SKILL.md -o SKILL.md
Technical content (original SKILL.md)

Original text by the author, straight from GitHub.

Implementing AWS Nitro Enclave Security

When to Use

  • Processing sensitive data (PII, PHI, financial records, cryptographic secrets) that must be isolated from EC2 instance operators and administrators
  • Building confidential computing pipelines where even root-level access on the parent instance cannot read enclave memory or state
  • Implementing cryptographic attestation workflows that tie KMS decryption rights to a specific, verified enclave image hash
  • Deploying multi-party computation environments where two or more enclaves authenticate each other via attestation before exchanging data
  • Hardening existing workloads that currently decrypt secrets on the parent instance by migrating decryption into an enclave boundary

Do not use when the workload does not handle sensitive data that requires hardware-level isolation, when the instance type does not support Nitro Enclaves (requires Nitro-based instances with at least 4 vCPUs), or when latency constraints make the vsock communication overhead unacceptable.

Prerequisites

  • An AWS account with permissions to launch Nitro-capable EC2 instances (m5.xlarge or larger, C5, R5, M6i families)
  • AWS CLI v2 and the nitro-cli toolset installed on the parent EC2 instance (Amazon Linux 2 or AL2023)
  • Docker installed on the parent instance for building enclave image files (EIF)
  • An AWS KMS symmetric key with key policy permissions for the enclave's IAM role
  • The aws-nitro-enclaves-sdk-c or Python aws-encryption-sdk for enclave-side KMS operations
  • The Nitro Enclaves allocator service configured with sufficient memory and vCPU allocation in /etc/nitro_enclaves/allocator.yaml

Workflow

Step 1: Configure the Nitro Enclaves Environment

Set up the parent EC2 instance to support enclave launches:

  • Install the Nitro Enclaves CLI: On Amazon Linux 2, install the tools and allocator:
    sudo amazon-linux-extras install aws-nitro-enclaves-cli
    sudo yum install aws-nitro-enclaves-cli-devel -y
    sudo systemctl enable --now nitro-enclaves-allocator.service
    sudo systemctl enable --now docker
    sudo usermod -aG ne ec2-user
    sudo usermod -aG docker ec2-user
    
  • Configure memory and CPU allocation: Edit /etc/nitro_enclaves/allocator.yaml to reserve resources for the enclave. The enclave requires dedicated memory that is carved from the parent instance:
    ---
    memory_mib: 4096
    cpu_count: 2
    
    Restart the allocator: sudo systemctl restart nitro-enclaves-allocator.service
  • Verify setup: Run nitro-cli describe-enclaves to confirm the CLI can communicate with the Nitro hypervisor. An empty JSON array [] indicates no enclaves are running and the setup is correct.

Step 2: Build the Enclave Image File (EIF)

Package the sensitive workload into a signed enclave image:

  • Create the application Dockerfile: The enclave runs a minimal Linux environment. The application communicates exclusively through vsock:

    FROM amazonlinux:2
    
    RUN yum install -y python3 python3-pip && \
        pip3 install boto3 cbor2 cryptography requests
    
    COPY enclave_app.py /app/enclave_app.py
    
    WORKDIR /app
    CMD ["python3", "enclave_app.py"]
    
  • Build the EIF with nitro-cli: Convert the Docker image into an enclave image file, capturing the PCR measurements:

    docker build -t enclave-app:latest .
    nitro-cli build-enclave \
      --docker-uri enclave-app:latest \
      --output-file enclave-app.eif
    

    The output contains three critical PCR values:

    • PCR0: SHA-384 hash of the enclave image file (the full image digest)
    • PCR1: SHA-384 hash of the Linux kernel and bootstrap process
    • PCR2: SHA-384 hash of the application code Record these values; they are used in KMS key policies for attestation-based access control.
  • Build a signed EIF (recommended for production): Generate a signing certificate and use it to produce PCR8:

    openssl ecparam -name secp384r1 -genkey -noout -out enclave_key.pem
    openssl req -new -key enclave_key.pem -sha384 \
      -nodes -subj "/CN=Enclave Signer" -out enclave_csr.pem
    openssl x509 -req -days 365 -in enclave_csr.pem \
      -signkey enclave_key.pem -sha384 -out enclave_cert.pem
    
    nitro-cli build-enclave \
      --docker-uri enclave-app:latest \
      --output-file enclave-app.eif \
      --private-key enclave_key.pem \
      --signing-certificate enclave_cert.pem
    

…

FAQ

What are 'Nitro Enclaves'?

They are confidential computing environments that isolate data and code within an AWS virtual machine, protecting them even from system administrators.

What is 'attestation'?

It's a verification process that proves your code is running exactly as expected in a secure and trusted environment before allowing access to sensitive data.

Do I need special hardware?

Yes, you need to use AWS virtual machines that support Nitro technology and have at least 4 vCPUs.

Details

Original description by the author

Build AWS Nitro Enclave confidential computing environments using nitro-cli to create enclave images, configure attestation-aware KMS policies with PCR condition keys, validate attestation documents against the Nitro PKI root, and set up vsock/kmstool-enclave-cli pipelines for processing PII, keys, and health records. Use for Nitro Enclave setup, attestation validation, or scoping KMS to an enclav

repo: mukul975/Anthropic-Cybersecurity-Skills

Popularity

GitHub stars
35k
Ranking position
#5837
License
Apache-2.0
Updated
8/31/2026

Is this skill useful?

0

Sign in to vote.

Comments

  • …

More skills from this repository

Similar skills