This page documents the internal workflow that Kiro follows when you run the corresponding @prompt. You don't need to read this to use the tool — it's here for transparency and for developers who want to understand or extend the workflows.
Blueprint Discovery and Security Review
STEP 1: LIST INSTALLED BLUEPRINTS
Read the root package.json to identify installed blueprints:
- Look for dependencies whose packages contain an
"aws-blockchain-node-runner"field - Built-in blueprints are referenced via
file:blueprints/paths (e.g.,"aws-bnr-blueprint-ethereum": "file:blueprints/ethereum") - External blueprints are installed from NPM or GitHub URLs
Present the results clearly:
Built-in blueprints (maintained by this repository):
- ethereum (aws-bnr-blueprint-ethereum v1.0.0)
- solana (aws-bnr-blueprint-solana v1.0.0)
- dummy (aws-bnr-blueprint-dummy v1.0.0)
External blueprints (installed by user):
- polygon (aws-bnr-blueprint-polygon v1.1.0)
STEP 2: SEARCH COMMUNITY BLUEPRINTS (OPTIONAL)
If the user asks to discover community blueprints:
- Run:
npm search aws-bnr-blueprint - Present results with package name, description, and version
- Show the install command for any blueprint they want to add:
npm install aws-bnr-blueprint-<protocol>
Present this disclaimer: Community blueprints are NOT reviewed or verified by the core repository maintainers. The user assumes full responsibility for any external blueprint they install and deploy. Always perform a security review before deploying an external blueprint.
STEP 3: SECURITY REVIEW FOR EXTERNAL BLUEPRINTS
When an external blueprint is installed, proactively offer to run a security review BEFORE proceeding to deployment.
Step 3a — Identify the package root
Resolve the installed package path: node_modules/<package-name>/
Step 3b — Review package.json declaration
Read the "aws-blockchain-node-runner" field in the blueprint's package.json and check:
-
BLOCKCHAIN_PROTOCOLis a reasonable identifier for the stated protocol -
requiredPortsonly includes ports consistent with the stated protocol. Flag any ports marked"public": truethat are not standard for the protocol. -
customEnvVarsdoes not request credentials, secrets, or external URLs unrelated to the protocol's operation -
supportedDeploymentModescontains only valid values ("single-node", "ha-nodes") -
defaultInstanceTypesreferences reasonable EC2 instance types -
storageconfiguration requests reasonable volume sizes for the protocol
Step 3c — Review user-data scripts
Read ALL files in user-data/ and user-data/common/ (if present), AND all files in configurations/ (the protocol-specific setup scripts that run on the instance). Flag any of the following:
Important: Configuration scripts in
configurations/(e.g.,bsc-geth-v1.7.2-full.sh) are the primary execution scripts that install and start the node software. They must be reviewed with the same scrutiny as user-data scripts.
Data exfiltration risks:
- Outbound
curl,wget, ornccalls to non-standard endpoints (NOT AWS APIs and NOT the blockchain network itself) - Commands that pipe data to external servers
Credential access risks:
- Commands that read from
~/.aws/,/etc/shadow, or other sensitive paths - Instance metadata access beyond standard IMDS calls for region/instance-id
- Access to AWS Secrets Manager and AWS KMS secrets not documented in the blueprint
Unexpected AWS API calls:
awsCLI calls beyond these expected operations:cloudwatch put-metric-data(metrics reporting)s3 cp(asset download)autoscaling complete-lifecycle-action(HA lifecycle)ssm(Systems Manager)
- Any IAM, EC2, or other service API calls that could modify infrastructure
Obfuscated execution:
base64 -d | bashor similar decode-and-execute patternsevalwith dynamically constructed strings- Downloads of scripts that are then executed (
curl ... | bash)
Destructive commands:
rm -rf /or broad deletion patterns outside expected data directoriesddormkfson non-data volumes- Commands that modify system files outside
/opt,/data, or/var/log
Step 3d — Summarize findings
If no concerns found:
Security review complete — no concerns found. The blueprint's port configuration, scripts, and permissions appear consistent with its stated purpose. Would you like to proceed with deployment?
If concerns found:
Security review found the following concerns:
- [file: user-data/node.sh, line ~42] Outbound curl to https://unknown-server.example.com — purpose unclear
- [file: package.json, requiredPorts] Port 4444 marked as public — not standard for this protocol
Please review each concern. Do NOT proceed with deployment until you have reviewed and acknowledged each item. Type "acknowledged" to confirm you have reviewed the concerns and want to proceed anyway, or "cancel" to stop.
Step 3e — Gate before deployment
- Do NOT provide deployment commands for an external blueprint until the user has explicitly acknowledged the security review summary
- Do NOT generate a .env file for an external blueprint until the security review is acknowledged
- Built-in blueprints (ethereum, solana, bnb, base, bitcoin, dummy) do NOT require a security review
GUIDELINES
DO:
- Always distinguish built-in vs external blueprints
- Always show the community disclaimer for external blueprints
- Always offer security review when a new external blueprint is installed
- Always gate deployment behind security review acknowledgment
- Always flag unexpected ports, scripts, and API calls
DO NOT:
- Never skip the security review for external blueprints
- Never proceed to deployment without explicit acknowledgment
- Never present community blueprints as verified or endorsed
- Never ignore red flags in user-data scripts
WHEN THIS APPLIES
| Blueprint Type | Security Review Required? |
|---|---|
| Built-in (ethereum, solana, bnb, base, bitcoin, dummy) | No — maintained by core repository |
| External (NPM registry) | Yes — always before first deployment |
| External (GitHub URL) | Yes — always before first deployment |