Hashicorp Vault
BagelHole/DevOps-Security-Agent-Skills
Manage secrets and PKI with HashiCorp Vault. An agent skill from BagelHole/DevOps-Security-Agent-Skills.
Agent skill
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…
$ npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill implementing-aws-nitro-enclave-security -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install mukul975/Anthropic-Cybersecurity-Skills implementing-aws-nitro-enclave-security --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/mukul975/Anthropic-Cybersecurity-Skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/implementing-aws-nitro-enclave-security .claude/skills/implementing-aws-nitro-enclave-security && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "implementing-aws-nitro-enclave-security" agent skill from https://github.com/mukul975/Anthropic-Cybersecurity-Skills/tree/main/skills/implementing-aws-nitro-enclave-security into .claude/skills/implementing-aws-nitro-enclave-security/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "implementing-aws-nitro-enclave-security", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/mukul975/Anthropic-Cybersecurity-Skills/tree/main/skills/implementing-aws-nitro-enclave-securityType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill implementing-aws-nitro-enclave-security -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install mukul975/Anthropic-Cybersecurity-Skills implementing-aws-nitro-enclave-security --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mukul975/Anthropic-Cybersecurity-Skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/implementing-aws-nitro-enclave-security .agents/skills/implementing-aws-nitro-enclave-security && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "implementing-aws-nitro-enclave-security" agent skill from https://github.com/mukul975/Anthropic-Cybersecurity-Skills/tree/main/skills/implementing-aws-nitro-enclave-security into .agents/skills/implementing-aws-nitro-enclave-security/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "implementing-aws-nitro-enclave-security", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill implementing-aws-nitro-enclave-security -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install mukul975/Anthropic-Cybersecurity-Skills implementing-aws-nitro-enclave-security --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mukul975/Anthropic-Cybersecurity-Skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/implementing-aws-nitro-enclave-security .cursor/skills/implementing-aws-nitro-enclave-security && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "implementing-aws-nitro-enclave-security" agent skill from https://github.com/mukul975/Anthropic-Cybersecurity-Skills/tree/main/skills/implementing-aws-nitro-enclave-security into .cursor/skills/implementing-aws-nitro-enclave-security/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "implementing-aws-nitro-enclave-security", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/mukul975/Anthropic-Cybersecurity-Skills.git --path skills/implementing-aws-nitro-enclave-security--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill implementing-aws-nitro-enclave-security -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install mukul975/Anthropic-Cybersecurity-Skills implementing-aws-nitro-enclave-security --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mukul975/Anthropic-Cybersecurity-Skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/implementing-aws-nitro-enclave-security .gemini/skills/implementing-aws-nitro-enclave-security && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "implementing-aws-nitro-enclave-security" agent skill from https://github.com/mukul975/Anthropic-Cybersecurity-Skills/tree/main/skills/implementing-aws-nitro-enclave-security into .gemini/skills/implementing-aws-nitro-enclave-security/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "implementing-aws-nitro-enclave-security", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install mukul975/Anthropic-Cybersecurity-Skills implementing-aws-nitro-enclave-securityInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill implementing-aws-nitro-enclave-security -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/mukul975/Anthropic-Cybersecurity-Skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/implementing-aws-nitro-enclave-security .github/skills/implementing-aws-nitro-enclave-security && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "implementing-aws-nitro-enclave-security" agent skill from https://github.com/mukul975/Anthropic-Cybersecurity-Skills/tree/main/skills/implementing-aws-nitro-enclave-security into .github/skills/implementing-aws-nitro-enclave-security/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "implementing-aws-nitro-enclave-security", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill implementing-aws-nitro-enclave-security -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install mukul975/Anthropic-Cybersecurity-Skills implementing-aws-nitro-enclave-security --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mukul975/Anthropic-Cybersecurity-Skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/implementing-aws-nitro-enclave-security .opencode/skills/implementing-aws-nitro-enclave-security && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "implementing-aws-nitro-enclave-security" agent skill from https://github.com/mukul975/Anthropic-Cybersecurity-Skills/tree/main/skills/implementing-aws-nitro-enclave-security into .opencode/skills/implementing-aws-nitro-enclave-security/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "implementing-aws-nitro-enclave-security", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
implementing-aws-nitro-enclave-securityBuild 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…
Implementing AWS Nitro Enclave Security is an agent skill from mukul975/Anthropic-Cybersecurity-Skills. 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 enclave image hash.
Its SKILL.md is about 5.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including scripts and reference files (for example `references/api-reference.md` and `scripts/agent.py`).
It sits in Security, covering Cryptography. It works with Amazon Web Services. The repository describes itself as: 817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATT&CK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF & MITRE F3 (Fight Fraud) · agentskills.io…. The licence is Apache-2.0.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 54a7988. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
opensslyumdockerFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
aws-nitro-enclaves.amazonaws.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Implementing AWS Nitro Enclave Security loads about 5.5k tokens when it runs, and up to ~6.5k if it reads all its reference files. Until then it costs about 113 tokens; SKILL.md has 1,686 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
sudo amazon-linux-extras install aws-nitro-enclaves-clisudo yum install aws-nitro-enclaves-cli-devel -ysudo systemctl enable --now nitro-enclaves-allocator.servicesudo systemctl enable --now dockersudo usermod -aG ne ec2-usersudo usermod -aG docker ec2-userRestart the allocator: `sudo systemctl restart nitro-enclaves-allocator.service`Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from mukul975/Anthropic-Cybersecurity-Skills at commit 54a7988, republished under its Apache-2.0 licence (© mukul975). 1,686 words, ~5,456 tokens.
.claude/skills/implementing-aws-nitro-enclave-security/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.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.
nitro-cli toolset installed on the parent EC2 instance (Amazon Linux 2 or AL2023)aws-nitro-enclaves-sdk-c or Python aws-encryption-sdk for enclave-side KMS operations/etc/nitro_enclaves/allocator.yamlSet up the parent EC2 instance to support enclave launches:
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/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: 2sudo systemctl restart nitro-enclaves-allocator.servicenitro-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.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.eifThe output contains three critical PCR values:
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.pemPCR8 (the signing certificate hash) enables KMS policies that trust any image signed by a specific certificate, allowing image updates without changing the policy.
Create a KMS key policy that restricts decryption to a verified enclave:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowEnclaveDecrypt",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::111122223333:role/EnclaveParentRole"
},
"Action": [
"kms:Decrypt",
"kms:GenerateDataKey"
],
"Resource": "*",
"Condition": {
"StringEqualsIgnoreCase": {
"kms:RecipientAttestation:ImageSha384": "fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210"
}
}
}
]
}{
"Condition": {
"StringEqualsIgnoreCase": {
"kms:RecipientAttestation:PCR8": "ab3456789012345678901234567890123456789012345678901234567890123456789012345678901234567890abcdef"
}
}
}{
"Condition": {
"StringEqualsIgnoreCase": {
"kms:RecipientAttestation:PCR0": "<pcr0-hex>",
"kms:RecipientAttestation:PCR1": "<pcr1-hex>"
}
}
}kms:Decrypt permission, but the KMS key policy condition ensures the actual decryption only succeeds when the request originates from a valid enclave with the correct attestation document attached.Establish the parent-to-enclave communication channel:
3, and the enclave CID is assigned at launch.import socket
import json
import boto3
VSOCK_CID = 3 # Parent CID
VSOCK_PORT = 5000
def start_proxy():
sock = socket.socket(socket.AF_VSOCK, socket.SOCK_STREAM)
sock.bind((VSOCK_CID, VSOCK_PORT))
sock.listen(5)
kms_client = boto3.client('kms', region_name='us-east-1')
while True:
conn, addr = sock.accept()
data = conn.recv(65536)
request = json.loads(data.decode())
if request['action'] == 'decrypt':
response = kms_client.decrypt(
CiphertextBlob=bytes.fromhex(request['ciphertext']),
Recipient={
'KeyEncryptionAlgorithm': 'RSAES_OAEP_SHA_256',
'AttestationDocument': bytes.fromhex(request['attestation_doc'])
}
)
conn.sendall(json.dumps({
'ciphertext_for_recipient': response['CiphertextForRecipient'].hex()
}).encode())
conn.close()/dev/nsm, attaches it to KMS decrypt requests, and receives data encrypted to the enclave's ephemeral public key:import socket
import json
from cryptography.hazmat.primitives.asymmetric import rsa, padding
from cryptography.hazmat.primitives import hashes, serialization
PARENT_CID = 3
VSOCK_PORT = 5000
def get_attestation_document(public_key_der):
"""Request attestation document from NSM device."""
# Uses the aws-nitro-enclaves-nsm-api
# NSM provides: module_id, digest (SHA384), timestamp, PCRs,
# certificate (from Nitro PKI), cabundle, public_key, user_data, nonce
import nsm_util
nsm_fd = nsm_util.nsm_lib_init()
attestation_doc = nsm_util.nsm_get_attestation_doc(
nsm_fd,
public_key=public_key_der,
user_data=None,
nonce=None
)
return attestation_doc
def decrypt_via_parent(ciphertext_hex):
"""Send decrypt request through vsock to parent proxy."""
private_key = rsa.generate_private_key(
public_exponent=65537, key_size=2048
)
public_key_der = private_key.public_key().public_bytes(
serialization.Encoding.DER,
serialization.PublicFormat.SubjectPublicKeyInfo
)
attestation_doc = get_attestation_document(public_key_der)
sock = socket.socket(socket.AF_VSOCK, socket.SOCK_STREAM)
sock.connect((PARENT_CID, VSOCK_PORT))
sock.sendall(json.dumps({
'action': 'decrypt',
'ciphertext': ciphertext_hex,
'attestation_doc': attestation_doc.hex()
}).encode())
response = json.loads(sock.recv(65536).decode())
sock.close()
# KMS encrypted the plaintext to the enclave's public key
# Only the enclave's private key can decrypt it
ciphertext_for_recipient = bytes.fromhex(
response['ciphertext_for_recipient']
)
plaintext = private_key.decrypt(
ciphertext_for_recipient,
padding.OAEP(
mgf=padding.MGF1(algorithm=hashes.SHA256()),
algorithm=hashes.SHA256(),
label=None
)
)
return plaintextVerify attestation documents from enclaves to establish trust:
Attestation document structure: The document is CBOR-encoded and COSE-signed (COSE_Sign1). It contains:
module_id: Identifier for the NSM moduledigest: Hashing algorithm (SHA-384)timestamp: Unix epoch milliseconds when the document was createdpcrs: Map of PCR index to measurement value (PCR0-PCR15)certificate: The NSM's x509 certificate, signed by the Nitro PKIcabundle: Certificate chain from the NSM certificate to the AWS Nitro root CApublic_key: The enclave's ephemeral public key (provided at attestation request time)user_data: Optional application-defined data (up to 512 bytes)nonce: Optional nonce for freshness verificationValidation steps:
https://aws-nitro-enclaves.amazonaws.com/AWS_NitroEnclaves_Root-G1.zip)aws.nitro-enclaves CNAttestation validation code:
import cbor2
from cose import CoseMessage
from cryptography import x509
from cryptography.x509.oid import NameOID
def validate_attestation(attestation_bytes, expected_pcrs, expected_nonce=None):
cose_msg = CoseMessage.decode(attestation_bytes)
payload = cbor2.loads(cose_msg.payload)
# Verify certificate chain
cert = x509.load_der_x509_certificate(payload['certificate'])
cabundle = [x509.load_der_x509_certificate(c) for c in payload['cabundle']]
# Check root CA is AWS Nitro
root = cabundle[-1]
cn = root.subject.get_attributes_for_oid(NameOID.COMMON_NAME)[0].value
assert cn == 'aws.nitro-enclaves', f'Unexpected root CA: {cn}'
# Verify PCR measurements
pcrs = payload['pcrs']
for idx, expected_value in expected_pcrs.items():
actual = pcrs.get(idx, b'').hex()
assert actual == expected_value, f'PCR{idx} mismatch: {actual}'
# Verify nonce freshness
if expected_nonce:
assert payload.get('nonce') == expected_nonce, 'Nonce mismatch'
return payloadRun the enclave and implement operational monitoring:
Launch the enclave:
nitro-cli run-enclave \
--eif-path enclave-app.eif \
--cpu-count 2 \
--memory 4096 \
--enclave-cid 16 \
--debug-modeNote: --debug-mode enables the enclave console for development. Remove it in production as it allows reading enclave output, which breaks the isolation guarantee.
Verify enclave status:
nitro-cli describe-enclavesExpected output includes "State": "RUNNING", the assigned EnclaveCID, memory, CPU count, and enclave flags.
Read enclave console (debug mode only):
nitro-cli console --enclave-id <enclave-id>Terminate the enclave:
nitro-cli terminate-enclave --enclave-id <enclave-id>CloudWatch monitoring: Configure the parent instance to report enclave health metrics. Since the enclave has no network access, health checks must go through the vsock proxy:
# Parent-side health check over vsock
def check_enclave_health(enclave_cid, port=5001):
try:
sock = socket.socket(socket.AF_VSOCK, socket.SOCK_STREAM)
sock.settimeout(5)
sock.connect((enclave_cid, port))
sock.sendall(b'HEALTH_CHECK')
response = sock.recv(1024)
sock.close()
return response == b'OK'
except (socket.timeout, ConnectionRefusedError):
return False| Term | Definition |
|---|---|
| Nitro Enclave | An isolated virtual machine created by the Nitro Hypervisor on a Nitro-based EC2 instance with no persistent storage, no network access, and no interactive access, even from the parent instance's root user |
| Attestation Document | A CBOR-encoded, COSE-signed document generated by the Nitro Security Module containing PCR measurements, a certificate chain to the AWS Nitro root CA, and optional user-provided data |
| PCR (Platform Configuration Register) | SHA-384 hash measurements that uniquely identify an enclave's image (PCR0), kernel/bootstrap (PCR1), application (PCR2), IAM role (PCR4), instance ID (PCR3), and signing certificate (PCR8) |
| Vsock | A virtual socket providing the sole communication channel between a parent EC2 instance and its enclave, using CID (Context Identifier) and port addressing |
| EIF (Enclave Image File) | The packaged enclave image built by nitro-cli from a Docker image, containing the kernel, ramdisk, and application, producing PCR measurements at build time |
| Nitro Security Module (NSM) | A custom Linux device (/dev/nsm) inside the enclave that provides attestation document generation and hardware random number generation |
| COSE_Sign1 | CBOR Object Signing and Encryption single-signer structure used to sign the attestation document with the NSM's private key |
| kms:RecipientAttestation | AWS KMS condition key prefix that enables key policies to enforce that decrypt/generate operations only succeed when a valid attestation document with matching PCR values is presented |
Decrypt and GenerateDataKey operations that include Recipient parameters, enabling auditing of enclave-originated cryptographic operationsContext: A healthcare SaaS company processes patient records containing PHI. Regulations require that the decryption and tokenization of PHI never occurs on an instance accessible to operators. The company deploys a Nitro Enclave that receives encrypted patient records, decrypts them inside the enclave using KMS with attestation, tokenizes the PII fields, and returns only the tokenized records through the vsock.
Approach:
kmstool-enclave-cli binary, and a vsock server that accepts encrypted recordsnitro-cli build-enclave and record PCR0, PCR1, PCR2 from the build outputkms:RecipientAttestation:ImageSha384 condition matching PCR0, allowing only this specific enclave build to decrypt patient recordskms:Decrypt on the key, but the KMS condition ensures decryption only succeeds inside the attested enclave{ssn: "tok_a8f3...", dob: "tok_b2e1...", name: "tok_c9d4..."}Decrypt calls with RecipientAttestation parameters, confirming all decryption occurs within the enclave boundaryPitfalls:
allocator.yaml, causing the enclave to fail at launch with an opaque "resource not available" error## Nitro Enclave Security Assessment
**Enclave Image**: enclave-tokenizer.eif
**Build Date**: 2026-03-19T14:30:00Z
**Instance Type**: m5.2xlarge
**Allocated Resources**: 2 vCPUs, 4096 MiB memory
### PCR Measurements
| PCR | Value | Bound in KMS Policy |
|-----|-------|---------------------|
| PCR0 (Image) | a1b2c3d4e5f6... | Yes |
| PCR1 (Kernel) | f6e5d4c3b2a1... | Yes |
| PCR2 (Application) | 1a2b3c4d5e6f... | No |
| PCR8 (Signing Cert) | 9f8e7d6c5b4a... | Yes (production) |
### KMS Key Policy Verification
- Key ARN: arn:aws:kms:us-east-1:111122223333:key/mrk-abc123
- Attestation condition: kms:RecipientAttestation:ImageSha384 = PCR0
- Signing cert condition: kms:RecipientAttestation:PCR8 = <cert-hash>
- Parent role: arn:aws:iam::111122223333:role/EnclaveParentRole
- Direct decrypt from parent: BLOCKED (attestation required)
- Decrypt from verified enclave: ALLOWED
### Security Posture
- [PASS] Debug mode disabled in production launch command
- [PASS] Vsock is the only communication channel (no network interface)
- [PASS] Attestation document nonce verification implemented
- [PASS] Certificate chain validates to AWS Nitro root CA
- [WARN] PCR0 used in policy; consider PCR8 for deployment flexibility
- [FAIL] Health check endpoint does not verify enclave attestation freshness© mukul975, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 3 other files (scripts, references) in skills/implementing-aws-nitro-enclave-security of mukul975/Anthropic-Cybersecurity-Skills.
Open the folder on GitHubat commit 54a7988
Implementing AWS Nitro Enclave Security next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Implementing AWS Nitro Enclave Security this skillmukul975/Anthropic-Cybersecurity-Skills | 34k | — | ~5.5k | Automated safety check: Notes | Apache-2.0 | |
| Hashicorp VaultBagelHole/DevOps-Security-Agent-Skills | 1.1k | — | ~2k | Automated safety check: Pass | MIT | |
| External SignerNethereum/Nethereum | 2.3k | — | ~2.3k | Automated safety check: Pass | MIT | |
| Credentialsalinaqi/maggy | 707 | — | ~2.4k | Automated safety check: Notes | MIT | |
| Sops EncryptionBagelHole/DevOps-Security-Agent-Skills | 1.1k | — | ~539 | Automated safety check: Pass | MIT | |
| Cloud Auditbriiirussell/cybersecurity-skills | 413 | — | ~1.3k | Automated safety check: Notes | MIT |
BagelHole/DevOps-Security-Agent-Skills
Manage secrets and PKI with HashiCorp Vault. An agent skill from BagelHole/DevOps-Security-Agent-Skills.
Nethereum/Nethereum
Help users own an ERC-4337 smart account whose ECDSA key never lives in the application process — sign UserOperations with AWS KMS, Azure Key Vault, an HSM, a Ledger, or a Trezor instead of an…
alinaqi/maggy
Centralized API key management from Access.txt. An agent skill from alinaqi/maggy.
BagelHole/DevOps-Security-Agent-Skills
Encrypt files and configs with Mozilla SOPS. An agent skill from BagelHole/DevOps-Security-Agent-Skills.
briiirussell/cybersecurity-skills
Audit cloud infrastructure (AWS, GCP, Azure) for misconfigurations, excessive permissions, and security gaps.
aws/tools-for-devops-agent
Performs a comprehensive Amazon ECS operations review across the 6 review pillars (Resiliency & HA, Observability, Security, Operations, Performance, Additional Analysis) using read-only AWS APIs…
mukul975/Anthropic-Cybersecurity-Skills
Weighs infrastructure, TTP, malware code and timing evidence with the Diamond Model and competing hypotheses to reach a confidence-rated attribution.
mukul975/Anthropic-Cybersecurity-Skills
Walks through reverse engineering Go-compiled malware in Ghidra: parsing buildinfo and pclntab, recovering stripped function names and extracting dependencies.
mukul975/Anthropic-Cybersecurity-Skills
Guides forensic analysis of Windows LNK shortcut files and Jump Lists with LECmd, JLECmd and manual parsing to show file access and program execution.
mukul975/Anthropic-Cybersecurity-Skills
Hunts Windows malware persistence with Sysinternals Autoruns, covering run keys, services, scheduled tasks and drivers, with baseline comparison.
mukul975/Anthropic-Cybersecurity-Skills
Guides a Windows forensic examination of the NTFS Master File Table to recover deleted-file evidence, build timelines and spot timestomping.
mukul975/Anthropic-Cybersecurity-Skills
Detects DNS tunneling, ICMP exfiltration and HTTP-based covert channels in packet captures and DNS logs when hunting for hidden command-and-control traffic.
Works with
Categories
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…. Implementing AWS Nitro Enclave Security is an agent skill from mukul975/Anthropic-Cybersecurity-Skills. 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.
Implementing AWS Nitro Enclave Security fits situations like: nitro Enclave setup; attestation validation; scoping KMS to an enclave image hash.
Run `npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill implementing-aws-nitro-enclave-security -a claude-code`. Or copy the skill folder (skills/implementing-aws-nitro-enclave-security in mukul975/Anthropic-Cybersecurity-Skills) into .claude/skills/implementing-aws-nitro-enclave-security in your project. Claude Code loads it when a task matches its description.
Run `npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill implementing-aws-nitro-enclave-security -a codex`. Or copy the skill folder (skills/implementing-aws-nitro-enclave-security in mukul975/Anthropic-Cybersecurity-Skills) into .agents/skills/implementing-aws-nitro-enclave-security in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill implementing-aws-nitro-enclave-security -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/implementing-aws-nitro-enclave-security, .gemini/skills/implementing-aws-nitro-enclave-security, .github/skills/implementing-aws-nitro-enclave-security and .opencode/skills/implementing-aws-nitro-enclave-security in your project.
Going by SKILL.md and its folder, Implementing AWS Nitro Enclave Security needs Python for the scripts in its folder and the command-line tools its instructions call (openssl, yum and docker). Our summary lists: Python 3; Docker.
SKILL.md names 1 domain. In commands or code: aws-nitro-enclaves.amazonaws.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (runs commands with sudo), nothing it rates as a warning. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Implementing AWS Nitro Enclave Security is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.5k tokens (SKILL.md is roughly 22k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Implementing AWS Nitro Enclave Security: Hashicorp Vault (BagelHole/DevOps-Security-Agent-Skills, 1.1k stars), External Signer (Nethereum/Nethereum, 2.3k stars), Credentials (alinaqi/maggy, 707 stars) and Sops Encryption (BagelHole/DevOps-Security-Agent-Skills, 1.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
mukul975 (a GitHub user) maintains it in mukul975/Anthropic-Cybersecurity-Skills, which has 33,993 GitHub stars. The repository holds 644 skills in this directory. The repository was last updated on August 31, 2026.
Source: mukul975/Anthropic-Cybersecurity-Skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.