Legal
Security Policy
Last updated: February 18, 2026
Version 3.1 — Reflects Agentic tier write-access capabilities and infrastructure security posture
1. Security Overview
CloudWise implements defense-in-depth security across all layers. We follow the principle of least privilege and enforce strict access controls, especially for write-access remediation features.
- Least Privilege: Every IAM role and service has minimum required permissions
- Zero Trust: All service-to-service calls are authenticated and authorized
- Defense in Depth: IAM, allow-lists, approval workflows, and audit trails
- Transparency: Complete audit trail for every action
2. Data Access and Permissions
See every IAM action we request — no signup required
Browse the full list of read-only and (optional) remediation permissions, parsed directly from our public CloudFormation templates.
View all permissions →2.1 Read-Only Access (All Tiers)
CloudWise accesses the following via the CloudWiseCostAccessRole IAM role:
- AWS Cost Explorer API data (costs, usage, forecasts)
- Billing and usage information
- Resource metadata (IDs, types, tags, states) for waste detection
- Account metadata (account ID, regions)
2.2 Write Access (Agentic & Compliance Tiers Only)
For customers who opt in, CloudWise uses the CloudWiseRemediationRole to execute approved actions:
| Service | Allowed Actions | Example |
|---|---|---|
| EC2 | Stop/terminate instances, delete volumes | Stop idle instance |
| RDS | Stop/modify instances, delete snapshots | Downsize over-provisioned DB |
| EBS | Delete unattached volumes | Remove orphaned volume |
| ELB | Delete idle load balancers | Remove unused ALB |
| ElastiCache | Delete/modify clusters | Downsize idle cache |
| Redshift | Pause/resize clusters | Pause unused warehouse |
| NAT Gateway | Delete unused gateways | Remove idle NAT |
| Elastic IP | Release unassociated IPs | Clean up unused EIPs |
All write actions require explicit customer approval before execution.
2.3 What CloudWise Does NOT Access
✅ Regardless of tier, CloudWise never accesses:
- Application data or content stored in AWS services
- S3 object contents, RDS database contents, DynamoDB items
- IAM users, roles, policies, or credentials
- VPC configurations, security groups, or network ACLs
- Secrets Manager, Parameter Store values, or KMS keys
- Network traffic, flow logs, or application logs
2.4 Action Allow-List
All remediation actions are restricted to a hardcoded allow-list. The allow-list covers ~20 services with curated safe operations. Any API call not in the allow-list is blocked at the code level, regardless of IAM permissions.
3. Remediation Security Architecture
3.1 Approval Workflow
Every remediation action follows a strict lifecycle:
- AI Recommendation → Action proposed with risk level and estimated savings
- Pending Review → Customer reviews details (72-hour expiry)
- Customer Approval → Explicit authorization via dashboard, email, Slack, or API
- Execution → Action performed with fresh short-lived credentials
- Result → Success/failure logged to audit trail; notification sent
High-risk actions require MFA confirmation. No action is ever executed without explicit approval.
3.2 Credential Isolation
| Property | Read Credentials | Remediation Credentials |
|---|---|---|
| IAM Role | CloudWiseCostAccessRole | CloudWiseRemediationRole |
| External ID | Unique per-customer value | Unique per-customer value |
| Session Duration | 1 hour | 15 minutes |
| Caching | Yes (performance) | Never cached |
| Session Tags | None | cloudwise-approval-id |
3.3 Execution Safeguards
- Allow-list enforcement: Double-checked at plan time and execution time
- Resource verification: Resource existence and state verified before execution
- Dry-run where possible: AWS dry-run API used before actual execution
- Caller identity verification: STS GetCallerIdentity validated
- Timeout limits: 15-minute maximum execution window
- One-click rollback: You can roll back a completed action for 24 hours. Nothing is rolled back automatically: if an action fails partway, every snapshot or backup it created is listed for you
3.4 Audit Trail
Every remediation action generates an immutable audit record containing action details, approver, timestamps, execution results, and rollback records. Audit records are retained for 7 years.
4. Data Security
- Data in Transit: TLS 1.2+ for all communications (HTTPS only)
- Data at Rest: AES-256 encryption via AWS KMS for DynamoDB and S3
- No Access Keys: CloudWise never stores AWS access keys or secrets
- API Authentication: JWT tokens with expiration for user sessions
5. Infrastructure Security
5.1 Application Services
| Service | Purpose | Security |
|---|---|---|
| DynamoDB | Primary data store | Encryption at rest, IAM auth |
| Lambda | Serverless compute | IAM execution roles, no persistent storage |
| API Gateway | API endpoints | HTTPS only, rate limiting, WAF |
| SQS | Async message queues | Encryption, dead-letter queues |
| SES | Email delivery | DKIM, SPF, DMARC |
| SSM Parameter Store | Config & secrets | SecureString encryption |
5.2 Security Monitoring & Compliance
CloudWise's own AWS account is continuously monitored by multiple security services:
| Service | Purpose | Status |
|---|---|---|
| AWS CloudTrail | Complete API audit logging with KMS encryption and log file validation | ✅ Active (multi-region) |
| Amazon GuardDuty | ML-based threat detection analyzing CloudTrail, VPC Flow Logs, and DNS queries | ✅ Active |
| AWS Security Hub | Continuous compliance checks against AWS Foundational Security Best Practices | ✅ Active |
| AWS Config | Infrastructure drift detection and configuration change tracking | ✅ Active |
| IAM Access Analyzer | Continuous scanning for unintended external access to resources | ✅ Active |
5.3 Account Hardening
- S3 Account Public Access Block: All public access blocked at the account level — no bucket can be made public
- EBS Default Encryption: All new volumes encrypted automatically using AWS KMS
- IAM Password Policy: 14-character minimum, complexity requirements, 90-day rotation
- OIDC CI/CD: GitHub Actions authenticate via OpenID Connect — no static credentials in CI/CD pipelines
6. Slack Integration Security
- Outbound webhooks validated to match
https://hooks.slack.com/ - Inbound interactions verified via HMAC-SHA256 signature validation
- Replay protection: requests older than 5 minutes are rejected
- Slack user mapped to CloudWise user before any action is taken
7. Incident Response
- 24/7 automated monitoring via CloudWatch alarms
- Customer notification within 24 hours for data incidents
- Emergency Stop: All pending approvals can be frozen globally; the
CloudWiseRemediationRolecan be revoked by you at any time
8. Your Security Responsibilities
- Enable MFA on AWS root and IAM accounts
- Regularly review IAM roles and permissions granted to CloudWise
- Monitor AWS CloudTrail for CloudWise API activity
- Configure resource exclusions to protect critical infrastructure
- Maintain independent backups of critical resources
- Remove CloudWise IAM roles if you cancel your subscription
9. Compliance
15331269 CANADA INC. implements controls aligned with:
- SOC 2 Type II principles (Security, Availability, Confidentiality)
- PIPEDA (Personal Information Protection and Electronic Documents Act)
- AWS Well-Architected Framework security pillar
All data processed and stored in AWS us-east-1 (N. Virginia, United States).
10. Contact Us
Security inquiries: security@cloudcostwise.io (within 24 hours)
Critical incidents: security@cloudcostwise.io — subject "URGENT" (within 4 hours)
Privacy: privacy@cloudcostwise.io
General: support@cloudcostwise.io