Kiro for
Cloud Engineering

A practical starter kit for Cloud Platform & SRE teams to get productive with Kiro — AWS's AI-powered IDE. Encode your org's standards once, accelerate every engineer forever.

CloudFormation MCP Servers Skills Steering Files Guardrails SRE Runbooks
Explore how it works ↓ View on GitHub →

How Kiro works for cloud teams

Kiro is a VS Code-based AI IDE. When you open an infrastructure repo it reads three things from .kiro/ and combines them with the current file context before every AI response.

📁
Your Repo
IaC, pipelines, runbooks
+
🗂️
Steering Files
.kiro/steering/*.md
+
🔌
MCP Tools
Live AWS API calls
+
Skills
/cfn-review, /runbook…
🤖
Kiro Agent
Context-aware output
The key insight: Without steering files, Kiro generates generic AWS examples. With them, it generates templates that already pass your internal review — correct tags, naming, security defaults, IAM patterns — on the first try.

Steering Files — Interactive Simulator

Steering files are markdown documents in .kiro/steering/ that tell Kiro how your org does things. Toggle the steering files below and see how the generated CloudFormation output changes.

🧪 Steering Simulator

Toggle steering files → watch the output update
Active Steering Files
Prompt sent to Kiro:
"Create a CloudFormation template for an S3 bucket that stores application logs."
Generated CloudFormation Output
Loading...

Steering file structure

.kiro/steering/cfn-security.mdmarkdown
---
includeBy:           # Only activate for YAML/CFN files
  - "**/*.yaml"
  - "**/cloudformation/**"
---

# CloudFormation Security Standards

## Encryption: always on by default

All storage resources must be encrypted. No exceptions.

### S3

```yaml
MyBucket:
  Type: AWS::S3::Bucket
  Properties:
    BucketEncryption:
      ServerSideEncryptionConfiguration:
        - ServerSideEncryptionByDefault:
            SSEAlgorithm: aws:kms
    PublicAccessBlockConfiguration:
      BlockPublicAcls: true
      BlockPublicPolicy: true
```

Use includeBy frontmatter to scope steering to specific file patterns. Irrelevant files are not loaded, keeping Kiro's context focused.

Steering fileincludeBy patternWhen active
cfn-structure.md**/*.yamlAny YAML file
pipeline-standards.md**/.github/workflows/**GitHub Actions files only
sre-standards.md**/runbooks/**Runbook directories only
security-guardrails.md(none — always active)Always loaded

Skills — Slash Command Simulator

Skills are reusable AI workflows invoked with a /slash-command. Click any skill below to see what prompt it sends to Kiro and what output format it produces.

/cfn-review View source →

MCP Servers — Live AWS Tooling

MCP (Model Context Protocol) servers give Kiro tools it can call mid-conversation — live AWS API access, documentation lookups, cost data. Configure them in .kiro/settings.json.

.kiro/settings.jsonjson
{
  "mcpServers": {
    "aws-docs": {
      "command": "uvx",
      "args": ["awslabs.aws-documentation-mcp-server@latest"],
      "env": { "FASTMCP_LOG_LEVEL": "ERROR" }
    },
    "cloudformation": {
      "command": "uvx",
      "args": ["awslabs.aws-cloudformation-mcp-server@latest"],
      "env": {
        "AWS_PROFILE": "${env:AWS_PROFILE}",
        "AWS_REGION": "eu-west-1"
      }
    },
    "cost-analysis": {
      "command": "uvx",
      "args": ["awslabs.aws-cost-analysis-mcp-server@latest"],
      "env": { "AWS_PROFILE": "${env:AWS_PROFILE}" }
    }
  }
}
aws-docs
awslabs.aws-documentation-mcp-server
  • "What CFN properties does ECS::Service support?"
  • "Show the VPC Flow Logs format"
  • "Current Lambda size limits?"
cloudformation
awslabs.aws-cloudformation-mcp-server
  • "What's in the platform-network-prod stack?"
  • "Why did this deployment fail?"
  • "Which stacks have drift?"
cost-analysis
awslabs.aws-cost-analysis-mcp-server
  • "Top 5 cost drivers this month?"
  • "Has there been a cost spike?"
  • "How much do NAT Gateways cost?"
iam-identity-center
awslabs.aws-identity-center-mcp-server
  • "Who has access to the prod account?"
  • "List all permission sets"
  • "Access assignments for user@org.com?"
cdk
awslabs.cdk-mcp-server
  • "Best CDK L2 for ECS Fargate + ALB?"
  • "VPC construct props?"
  • "CDK patterns for serverless APIs?"
github
@modelcontextprotocol/server-github
  • "Create a PR for my current branch"
  • "Are CI checks passing?"
  • "List open issues tagged platform-team"
Security note: Use ${env:AWS_PROFILE} references — never paste credentials directly into settings.json. This file is checked into git.

Guardrails — Two Layers

Guardrails work at two levels. Steering guardrails shape what Kiro generates (AI-level). AWS guardrails enforce at runtime regardless of how resources were created.

🤖

Layer 1: Kiro Steering Guardrails

Tell Kiro what patterns to never generate. Lives in security-guardrails.md and iam-guardrails.md.

✓ Shapes AI output before code is written
⚠ Advisory — does not enforce at runtime
🏗️

Layer 2: AWS Infrastructure Guardrails

SCPs, IAM Permission Boundaries, Config Rules — actual enforcement that applies regardless of how resources were created.

✓ Enforces at runtime — cannot be bypassed
⚠ Does not help engineers understand why

Before vs After: IAM Role generation

Prompt: "Create an IAM role for my Lambda function"
❌ Without steering guardrails
LambdaRole:
Type: AWS::IAM::Role
Properties:
# No PermissionsBoundary
AssumeRolePolicyDocument: ...
Policies:
- PolicyDocument:
Statement:
- Effect: Allow
Action: "s3:*"
Resource: "*"
✅ With iam-guardrails.md steering
LambdaRole:
Type: AWS::IAM::Role
Properties:
PermissionsBoundary: !Sub
"arn:aws:iam::${AWS::AccountId}
:policy/OrgPermissionBoundary"
Policies:
- PolicyDocument:
Statement:
- Effect: Allow
Action:
- s3:GetObject
- s3:PutObject
Resource: !Sub
"arn:aws:s3:::${Bucket}/*"
🔑

IAM Guardrails

Permission boundary on every role, scoped policies, no IAM users for workloads.

🌐

Network Guardrails

Private subnets by default, no SSH to internet, security group references over CIDRs.

🚀

Deployment Guardrails

OIDC federation only, staging-before-prod, cfn-lint + checkov required.

🏢

SCP Templates

Org-level: deny disable CloudTrail/GuardDuty, region restriction, prod account controls.

🛡️

Permission Boundary

OrgPermissionBoundary CFN template — prevents privilege escalation and region drift.

🔐

OIDC Deployment Role

GitHub Actions OIDC provider + scoped deployment roles. No long-lived access keys.

Get Started in 5 Minutes

Follow these steps to go from a fresh Kiro install to your first AI-assisted infrastructure deployment with your org's standards baked in.

Step 1

Install Kiro & open your infra repo

Download from kiro.dev. Sign in with AWS Builder ID. Open your infrastructure repository.

terminal
kiro /path/to/your/infra-repo
Step 2

Copy the starter steering files

Clone this repo and copy the .kiro/ directory into your infra repo. Replace placeholder values with your org's actual account IDs, regions, and cost centre codes.

terminal
git clone https://github.com/nirmal84/kiro-for-cloud-engineering
cp -r kiro-for-cloud-engineering/steering/* your-infra-repo/.kiro/steering/
cp -r kiro-for-cloud-engineering/skills/* your-infra-repo/.kiro/skills/
cp kiro-for-cloud-engineering/mcp-servers/settings-template.json \
   your-infra-repo/.kiro/settings.json
Step 3

Customise the placeholder values

Search and replace these across all steering files:

FindReplace with
OrgPermissionBoundaryYour IAM boundary policy name
eu-west-1Your primary AWS region
your-orgYour GitHub org name
CC-[0-9]+Your cost centre code format
log-archive-${AWS::AccountId}Your centralised log bucket name
Step 4

Install MCP server prerequisites

terminal
# Install uv (Python package runner for AWS MCP servers)
curl -LsSf https://astral.sh/uv/install.sh | sh

# Set your AWS profile
export AWS_PROFILE=my-sandbox-profile
aws sso login --profile my-sandbox-profile
Step 5

Open the repo in Kiro and test

Open the project. Kiro auto-loads steering from .kiro/steering/. Try these prompts to verify everything is working:

Kiro chat
# Verify steering is loaded
What steering files are active for this project?

# Test CFN generation with your standards
Create a CloudFormation template for an S3 bucket that stores access logs.

# Test skills
/cfn-review

# Test MCP (needs AWS credentials)
Use the cloudformation MCP tool to list all stacks in eu-west-1
Check these in with your repo. The .kiro/ directory is a team artifact — commit steering files, settings, and skills to git so every engineer gets the same AI context when they open the project.
🚀

Ready to accelerate your cloud work?

All templates, steering files, skills, and guardrails are open source under MIT-0 — use without attribution.

View the full repo on GitHub →