AWS standards
This skill sets CRITERIA for designing, reviewing and operating on AWS: what to use by default, what is
forbidden and what to verify before deciding. Bar: Well-Architected + zero-trust +
FinOps. On conflict, security wins; on a technical tie, the simplest and the managed option wins.
1. Scope and triggers
Applies to any task touching AWS: IaC code (CloudFormation/CDK/Terraform/SAM), aws
commands, architecture design, security review, cost estimation, pipelines that
deploy to AWS. If the task is multi-cloud, combine with the azure-standards and
gcp-standards skills and decide per workload, not by inertia.
Not applicable: see iac-standards (the how of Terraform/OpenTofu and Ansible code: modules,
state, backend, drift — here the what is decided: which service and with what configuration),
kubernetes-standards (manifests, charts and workloads running inside EKS; here only the
control plane, the data plane and their integration with IAM/VPC), cicd-standards (the pipeline and
OIDC federation from the runner), identity-access-management-standards (application IdP: OAuth
2.1/OIDC, SAML, passkeys, SCIM — here IAM/Identity Center as access control to the platform),
cryptography-pki-standards (algorithm choice and key lifecycle; here only KMS as a
service), vulnerability-management-standards (triage workflow and SLA; here only Security Hub /
Inspector as a source of findings), cloud-security-posture-standards (what is cross-cutting to the
three clouds: multi-account baseline, effective permission, attack paths and the choice of
CSPM/CNAPP; here the specific AWS service and its configuration),
appsec-standards (security of the application code),
observability-standards (vendor-neutral OTel and Prometheus; here only CloudWatch and its cost),
sre-practice-standards (SLO, on-call, postmortems), grc-compliance-standards (regulatory framework and
audit evidence), networking-standards (physical, on-prem and hybrid networks; here VPC),
data-platform-standards (modelling, indexes and engine tuning; here RDS/Aurora as a service), finops-standards (method versus service boundary: the pricing model of each AWS service, its configuration and the concrete levers —storage class, instance family, Savings Plans— are ours; the method is theirs: economic unit, tagging policy and its governance, normalisation with FOCUS, shared cost allocation, commitment coverage criteria and showback/chargeback. Rule: if the answer changes when the provider changes, it belongs to finops-standards; if it depends on the AWS catalogue, it belongs here), platform-engineering-standards (the internal abstraction offered on top of these services).
2. Default decisions (reference service per use case)
Verify availability/status on the web before pinning any service: supported region,
that it is not in Maintenance/Sunset at https://aws.amazon.com/products/lifecycle/ and current prices.
| Use case |
Default |
Alternative (when) |
| Event-driven compute / spikes / <15 min |
Lambda (arm64/Graviton) |
ECS Fargate if sustained throughput or >15 min |
| Containers with no K8s requirement |
ECS + Fargate |
EC2 capacity providers only with justification (GPU, sustained cost) |
| Strategic Kubernetes (portability, ecosystem) |
EKS with Auto Mode (Karpenter) |
Fargate profiles for isolated workloads |
| HTTP API |
API Gateway (HTTP API) + Lambda |
ALB + Fargate for always-on services |
| Relational |
Aurora (PostgreSQL) / RDS PostgreSQL |
Aurora Serverless v2 for variable load |
| Key-value / massive scale |
DynamoDB (on-demand by default) |
Provisioned + auto scaling if the pattern is stable and proven |
| Objects |
S3 (SSE by default, Block Public Access) |
— |
| Queue / decoupling |
SQS (+ DLQ always) |
— |
| Pub/sub and events |
EventBridge (domain) / SNS (simple fan-out) |
Kinesis / MSK only for real streaming with ordering and replay |
| Cache |
ElastiCache (Valkey/Redis OSS) |
— |
| Secrets |
Secrets Manager (rotation) / SSM Parameter Store (config) |
— |
| Container registry |
ECR (scan on push, immutable tags) |
— |
| Native IaC |
CDK v2 (TypeScript/Python) over CloudFormation |
Terraform/OpenTofu if the repo/organisation already uses it — do not mix within the same stack |
| Multi-account landing zone |
Organizations + Control Tower; customisation with LZA (CDK) or CfCT |
Never loose accounts with no OU and no SCP/RCP |
| CI/CD |
The repo's own (GitHub Actions/GitLab) with OIDC towards AWS |
CodePipeline/CodeBuild if all-AWS is a requirement |
Deprecated/retired — FORBIDDEN to propose them (closed to new customers since 2024 or in
sunset, source: AWS Product Lifecycle): CodeCommit (→ GitHub/GitLab), Cloud9 (→ local IDE +
CloudShell), S3 Select (→ Athena), CloudSearch (→ OpenSearch), SimpleDB (→ DynamoDB), Forecast
(→ SageMaker), Data Pipeline (→ Glue/Step Functions), Kinesis Data Analytics for SQL (shut down
Jan 2026 → Managed Service for Apache Flink), Inspector Classic (→ Inspector), Pinpoint (EOS
Oct 2026 → SES/End User Messaging), Proton (EOS Oct 2026), OpsWorks. For any "odd"
service, check the lifecycle page before using it.
3. Identity and access — ephemeral credentials ALWAYS
- Static access keys forbidden (IAM users with keys) for humans, CI/CD and workloads.
Humans: IAM Identity Center (SSO federated with the corporate IdP) + MFA. CI/CD: OIDC federation
(e.g.
token.actions.githubusercontent.com) with short-lived roles and sub restricted to
repo/branch. Workloads: instance/task roles (instance profile, ECS task role, IRSA/Pod
Identity on EKS). Single exception: an external system with no OIDC/role support — documented, with
automatic rotation and a usage alert.
- Real least privilege: policies with concrete actions and resources, conditions
(
aws:SourceArn, aws:PrincipalOrgID, tags). Action: "*", Resource: "*" and
the AdministratorAccess/PowerUserAccess managed policies are forbidden outside break-glass.
- Organisation guardrails: SCPs and RCPs (deny non-approved regions, deny disabling
CloudTrail/GuardDuty, deny creating IAM users with keys). Permissions boundaries for roles
created by pipelines.
- Management account: no workloads, no daily use; audited break-glass access. Separate accounts per
environment (prod/non-prod) and per domain; dedicated log-archive and
security-tooling accounts (Control Tower creates them).
- Verify access: Access Analyzer (external + unused access) enabled in every account.
4. Networks — default-deny, minimal exposure
- Own VPC per workload/environment; do not use the default VPC (delete it or leave it unused).
Private subnets by default; public ones only for ALB/NLB/NAT. IPAM with no overlaps (RFC1918).
- Default-deny Security Groups: only the indispensable ingress, referencing other SGs, not broad
CIDRs.
0.0.0.0/0 on ingress is forbidden except for justified 443 at the public edge (and
then behind CloudFront/WAF + Shield). Egress is restricted too on sensitive workloads.
- Traffic to AWS services through VPC endpoints (Gateway for S3/DynamoDB — free; Interface for the
rest) with endpoint policies; avoids unnecessary NAT (cost) and egress to the Internet (security).
- TLS 1.2+ everywhere (modern ALB security policy, HSTS); mTLS between services when the data
demands it (ECS Service Connect / App Mesh successors — verify status on the web). Administrative access
via SSM Session Manager, never open SSH nor a bastion with public 22.
- Minimal exposure: no public IPs on instances/tasks; internal ALB unless the service is
genuinely public. Route 53 with minimal records; DNSSEC where applicable.
5. Data — encryption, proven backups, RTO/RPO
- Encryption at rest on EVERY resource: KMS with customer-managed keys (CMK) for sensitive
data (alias per domain, annual rotation enabled, minimal key policies); SSE-S3/AWS-managed
keys as the minimum floor. S3: account-level Block Public Access, versioning on data
buckets, Object Lock for immutability (ransomware/compliance).
- RTO/RPO defined BEFORE choosing engine and topology; multi-AZ by default in prod; multi-region
only if the RTO/RPO demands it (cost).
- Backups: centralised AWS Backup with a tag-based plan, vault with Vault Lock (immutable) and a
cross-account/cross-region copy for an account-compromise scenario. A backup with no proven
restore does not exist: periodic, documented restore game-day.
- Lifecycle: S3 lifecycle to IA/Glacier according to real access (S3 Storage Lens / Intelligent-Tiering
for unknown patterns); retention and deletion compliant with GDPR (minimisation, right to erasure).
- Expand/contract schema migrations; never destructive changes in the same deploy.
6. Observability and operation
- Organisational CloudTrail (all accounts/regions, logs to the log-archive account, integrity
enabled) — non-negotiable. VPC Flow Logs on prod VPCs.
- Structured logs (JSON) to CloudWatch Logs with explicit retention (never "Never expire" by
default — it is cost and noise); metrics with actionable alarms on symptoms (golden signals),
not on every resource; traces with X-Ray/ADOT (OpenTelemetry preferred for portability).
- SLOs with error budget for business services; alerts → on-call, not to a mailbox.
- Operational security: GuardDuty (all accounts, delegated admin, S3/EKS/RDS protections
depending on use), Security Hub for aggregation/prioritisation — careful: since Dec 2025 "Security Hub"
is the new unified service (OCSF, v2 APIs) and the classic one is called "Security Hub CSPM" (ASFF);
verify on the web which one applies before writing automation, they are not interchangeable.
Inspector (the current one, not Classic) for vulnerabilities in ECR/EC2/Lambda. AWS Config with
conformance packs (CIS AWS Foundations v5) in every account.
- Every change through a pipeline with a reviewed plan/diff; canary/rolling deployments with proven
rollback (CodeDeploy, feature flags). Runbooks and blameless postmortems.
7. FinOps — cost as a quality attribute
- Mandatory and verified tagging: at minimum
owner, env, project/cost-center,
managed-by (IaC). Enforced with tag policies + an SCP/Config rule that flags non-compliant ones.
A resource with no tags = an orphan resource = a deletion candidate.
- Data Exports in FOCUS format (FinOps Foundation standard; verify the supported version on the
web — 1.3 ratified Dec 2025) to S3/Athena; Budgets with alerts per account/project and
Cost Anomaly Detection enabled from day 1.
- Default levers: Graviton/arm64 where the runtime supports it, Savings Plans for the stable
baseline (decision with ≥30 days of data, not from memory), Spot for fault-tolerant workloads,
scale-to-zero/off-hours in non-prod, right-sizing with Compute Optimizer.
- Design cost inside the architecture decision: NAT Gateway, inter-AZ/region transfer,
Interface endpoints, CloudWatch ingest — they are estimated up front, not discovered on the bill.
8. Sustainability, lock-in and PROHIBITIONS
- Conscious lock-in, not accidental: proprietary services (DynamoDB, EventBridge, Step
Functions) only with a clear benefit; app contracts behind own interfaces; portable
standards where they cost nothing (OpenTelemetry, Postgres, S3 API, OCI containers).
- Upgrade policy: runtime/engine versions within standard support ALWAYS (Lambda
runtimes, EKS N-2 at most, RDS with auto minor upgrade in a window); the upgrade is quarterly
planned work, not an emergency. No paid extended support except by explicit decision.
- LIST OF PROHIBITIONS (they block a review):
- Static IAM user access keys anywhere (code, CI, servers'
~/.aws).
0.0.0.0/0 on ingress with no written justification; public SSH/RDP; resources with an unnecessary
public IP; the default VPC in use.
- Resources without mandatory tags; resources created through the console in prod (clickops) — everything
through IaC; unreconciled drift.
- Public S3 or S3 without Block Public Access; unencrypted data; CMK without rotation; secrets in code,
plaintext env vars in templates, or logs.
- Disabling CloudTrail/GuardDuty/Config; wildcard
* in IAM policies; accounts outside the
organisation.
- Proposing deprecated services (list in section 2);
latest as an image tag in prod;
- Logs with no defined retention; a single-AZ database in prod; a backup with no proven restore.
9. Mandatory web verification
Before pinning any concrete AWS fact in code or in an answer, search the web (official AWS
docs first): service status (lifecycle page), regional availability, supported runtime/engine
version, limits and quotas, prices, exact names of APIs/flags (e.g. Security
Hub v2 vs CSPM), and re:Invent/re:Inforce news from the last year. The model's memory is NOT a
valid source for: prices, EOL dates, recent feature names, regional availability.
If it cannot be verified, say so explicitly and mark the decision as provisional.
If the web contradicts this document, the web wins — flag the discrepancy.
1---2name: aws-standards3description: AWS architecture, security and FinOps standards. Use when working with AWS services (Lambda, ECS, EKS, Fargate, S3, RDS, Aurora, DynamoDB, SQS, SNS, EventBridge, VPC, IAM, KMS, GuardDuty, Security Hub, CloudWatch, Organizations, Control Tower), the aws CLI, SAM, or IaC files targeting AWS (CloudFormation templates *.yaml/*.json, CDK cdk.json/*.ts/*.py, Terraform *.tf with provider aws).4---56# AWS standards78This skill sets CRITERIA for designing, reviewing and operating on AWS: what to use by default, what is9forbidden and what to verify before deciding. Bar: Well-Architected + zero-trust +10FinOps. On conflict, security wins; on a technical tie, the simplest and the managed option wins.1112## 1. Scope and triggers1314Applies to any task touching AWS: IaC code (CloudFormation/CDK/Terraform/SAM), `aws`15commands, architecture design, security review, cost estimation, pipelines that16deploy to AWS. If the task is multi-cloud, combine with the `azure-standards` and17`gcp-standards` skills and decide per workload, not by inertia.1819**Not applicable**: see `iac-standards` (the **how** of Terraform/OpenTofu and Ansible code: modules,20state, backend, drift — here the **what** is decided: which service and with what configuration),21`kubernetes-standards` (manifests, charts and workloads running **inside** EKS; here only the22control plane, the data plane and their integration with IAM/VPC), `cicd-standards` (the pipeline and23OIDC federation from the runner), `identity-access-management-standards` (application IdP: OAuth242.1/OIDC, SAML, passkeys, SCIM — here IAM/Identity Center as access control to the **platform**),25`cryptography-pki-standards` (algorithm choice and key lifecycle; here only KMS as a26service), `vulnerability-management-standards` (triage workflow and SLA; here only Security Hub /27Inspector as a source of findings), `cloud-security-posture-standards` (**what is cross-cutting to the28three clouds**: multi-account baseline, effective permission, attack paths and the choice of29CSPM/CNAPP; **here the specific AWS service and its configuration**),30`appsec-standards` (security of the application code),31`observability-standards` (vendor-neutral OTel and Prometheus; here only CloudWatch and its cost),32`sre-practice-standards` (SLO, on-call, postmortems), `grc-compliance-standards` (regulatory framework and33audit evidence), `networking-standards` (physical, on-prem and hybrid networks; here VPC),34`data-platform-standards` (modelling, indexes and engine tuning; here RDS/Aurora as a service), `finops-standards` (**method versus service boundary**: **the pricing model of each AWS service, its configuration and the concrete levers —storage class, instance family, Savings Plans— are ours**; **the method is theirs**: economic unit, tagging policy and its governance, normalisation with FOCUS, shared cost allocation, commitment coverage criteria and showback/chargeback. Rule: *if the answer changes when the provider changes, it belongs to `finops-standards`; if it depends on the AWS catalogue, it belongs here*), `platform-engineering-standards` (the internal abstraction offered on top of these services).3536## 2. Default decisions (reference service per use case)3738> **Verify availability/status on the web before pinning any service**: supported region,39> that it is not in Maintenance/Sunset at https://aws.amazon.com/products/lifecycle/ and current prices.4041| Use case | Default | Alternative (when) |42|---|---|---|43| Event-driven compute / spikes / <15 min | Lambda (arm64/Graviton) | ECS Fargate if sustained throughput or >15 min |44| Containers with no K8s requirement | ECS + Fargate | EC2 capacity providers only with justification (GPU, sustained cost) |45| Strategic Kubernetes (portability, ecosystem) | EKS with Auto Mode (Karpenter) | Fargate profiles for isolated workloads |46| HTTP API | API Gateway (HTTP API) + Lambda | ALB + Fargate for always-on services |47| Relational | Aurora (PostgreSQL) / RDS PostgreSQL | Aurora Serverless v2 for variable load |48| Key-value / massive scale | DynamoDB (on-demand by default) | Provisioned + auto scaling if the pattern is stable and proven |49| Objects | S3 (SSE by default, Block Public Access) | — |50| Queue / decoupling | SQS (+ DLQ always) | — |51| Pub/sub and events | EventBridge (domain) / SNS (simple fan-out) | Kinesis / MSK only for real streaming with ordering and replay |52| Cache | ElastiCache (Valkey/Redis OSS) | — |53| Secrets | Secrets Manager (rotation) / SSM Parameter Store (config) | — |54| Container registry | ECR (scan on push, immutable tags) | — |55| Native IaC | CDK v2 (TypeScript/Python) over CloudFormation | Terraform/OpenTofu if the repo/organisation already uses it — do not mix within the same stack |56| Multi-account landing zone | Organizations + Control Tower; customisation with LZA (CDK) or CfCT | Never loose accounts with no OU and no SCP/RCP |57| CI/CD | The repo's own (GitHub Actions/GitLab) with OIDC towards AWS | CodePipeline/CodeBuild if all-AWS is a requirement |5859**Deprecated/retired — FORBIDDEN to propose them** (closed to new customers since 2024 or in60sunset, source: AWS Product Lifecycle): CodeCommit (→ GitHub/GitLab), Cloud9 (→ local IDE +61CloudShell), S3 Select (→ Athena), CloudSearch (→ OpenSearch), SimpleDB (→ DynamoDB), Forecast62(→ SageMaker), Data Pipeline (→ Glue/Step Functions), Kinesis Data Analytics for SQL (shut down63Jan 2026 → Managed Service for Apache Flink), Inspector Classic (→ Inspector), Pinpoint (EOS64Oct 2026 → SES/End User Messaging), Proton (EOS Oct 2026), OpsWorks. For any "odd"65service, check the lifecycle page before using it.6667## 3. Identity and access — ephemeral credentials ALWAYS6869- **Static access keys forbidden** (IAM users with keys) for humans, CI/CD and workloads.70 Humans: IAM Identity Center (SSO federated with the corporate IdP) + MFA. CI/CD: OIDC federation71 (e.g. `token.actions.githubusercontent.com`) with short-lived roles and `sub` restricted to72 repo/branch. Workloads: instance/task roles (instance profile, ECS task role, IRSA/Pod73 Identity on EKS). Single exception: an external system with no OIDC/role support — documented, with74 automatic rotation and a usage alert.75- Real least privilege: policies with concrete actions and resources, conditions76 (`aws:SourceArn`, `aws:PrincipalOrgID`, tags). `Action: "*"`, `Resource: "*"` and77 the `AdministratorAccess`/`PowerUserAccess` managed policies are forbidden outside break-glass.78- Organisation guardrails: SCPs and RCPs (deny non-approved regions, deny disabling79 CloudTrail/GuardDuty, deny creating IAM users with keys). Permissions boundaries for roles80 created by pipelines.81- Management account: no workloads, no daily use; audited break-glass access. Separate accounts per82 environment (prod/non-prod) and per domain; dedicated log-archive and83 security-tooling accounts (Control Tower creates them).84- Verify access: Access Analyzer (external + unused access) enabled in every account.8586## 4. Networks — default-deny, minimal exposure8788- Own VPC per workload/environment; **do not use the default VPC** (delete it or leave it unused).89 Private subnets by default; public ones only for ALB/NLB/NAT. IPAM with no overlaps (RFC1918).90- Default-deny Security Groups: only the indispensable ingress, referencing other SGs, not broad91 CIDRs. **`0.0.0.0/0` on ingress is forbidden except for justified 443 at the public edge** (and92 then behind CloudFront/WAF + Shield). Egress is restricted too on sensitive workloads.93- Traffic to AWS services through VPC endpoints (Gateway for S3/DynamoDB — free; Interface for the94 rest) with endpoint policies; avoids unnecessary NAT (cost) and egress to the Internet (security).95- TLS 1.2+ everywhere (modern ALB security policy, HSTS); mTLS between services when the data96 demands it (ECS Service Connect / App Mesh successors — verify status on the web). Administrative access97 via SSM Session Manager, **never open SSH nor a bastion with public 22**.98- Minimal exposure: no public IPs on instances/tasks; internal ALB unless the service is99 genuinely public. Route 53 with minimal records; DNSSEC where applicable.100101## 5. Data — encryption, proven backups, RTO/RPO102103- Encryption at rest on EVERY resource: KMS with customer-managed keys (CMK) for sensitive104 data (alias per domain, annual rotation enabled, minimal key policies); SSE-S3/AWS-managed105 keys as the minimum floor. S3: account-level Block Public Access, versioning on data106 buckets, Object Lock for immutability (ransomware/compliance).107- RTO/RPO defined BEFORE choosing engine and topology; multi-AZ by default in prod; multi-region108 only if the RTO/RPO demands it (cost).109- Backups: centralised AWS Backup with a tag-based plan, vault with Vault Lock (immutable) and a110 cross-account/cross-region copy for an account-compromise scenario. **A backup with no proven111 restore does not exist**: periodic, documented restore game-day.112- Lifecycle: S3 lifecycle to IA/Glacier according to real access (S3 Storage Lens / Intelligent-Tiering113 for unknown patterns); retention and deletion compliant with GDPR (minimisation, right to erasure).114- Expand/contract schema migrations; never destructive changes in the same deploy.115116## 6. Observability and operation117118- Organisational CloudTrail (all accounts/regions, logs to the log-archive account, integrity119 enabled) — non-negotiable. VPC Flow Logs on prod VPCs.120- Structured logs (JSON) to CloudWatch Logs with explicit retention (**never "Never expire" by121 default** — it is cost and noise); metrics with actionable alarms on symptoms (golden signals),122 not on every resource; traces with X-Ray/ADOT (OpenTelemetry preferred for portability).123- SLOs with error budget for business services; alerts → on-call, not to a mailbox.124- Operational security: GuardDuty (all accounts, delegated admin, S3/EKS/RDS protections125 depending on use), Security Hub for aggregation/prioritisation — **careful**: since Dec 2025 "Security Hub"126 is the new unified service (OCSF, v2 APIs) and the classic one is called "Security Hub CSPM" (ASFF);127 verify on the web which one applies before writing automation, they are not interchangeable.128 Inspector (the current one, not Classic) for vulnerabilities in ECR/EC2/Lambda. AWS Config with129 conformance packs (CIS AWS Foundations v5) in every account.130- Every change through a pipeline with a reviewed plan/diff; canary/rolling deployments with proven131 rollback (CodeDeploy, feature flags). Runbooks and blameless postmortems.132133## 7. FinOps — cost as a quality attribute134135- **Mandatory and verified tagging**: at minimum `owner`, `env`, `project`/`cost-center`,136 `managed-by` (IaC). Enforced with tag policies + an SCP/Config rule that flags non-compliant ones.137 A resource with no tags = an orphan resource = a deletion candidate.138- Data Exports in **FOCUS** format (FinOps Foundation standard; verify the supported version on the139 web — 1.3 ratified Dec 2025) to S3/Athena; Budgets with alerts per account/project and140 Cost Anomaly Detection enabled from day 1.141- Default levers: Graviton/arm64 where the runtime supports it, Savings Plans for the stable142 baseline (decision with ≥30 days of data, not from memory), Spot for fault-tolerant workloads,143 scale-to-zero/off-hours in non-prod, right-sizing with Compute Optimizer.144- Design cost inside the architecture decision: NAT Gateway, inter-AZ/region transfer,145 Interface endpoints, CloudWatch ingest — they are estimated up front, not discovered on the bill.146147## 8. Sustainability, lock-in and PROHIBITIONS148149- **Conscious lock-in, not accidental**: proprietary services (DynamoDB, EventBridge, Step150 Functions) only with a clear benefit; app contracts behind own interfaces; portable151 standards where they cost nothing (OpenTelemetry, Postgres, S3 API, OCI containers).152- Upgrade policy: runtime/engine versions within standard support ALWAYS (Lambda153 runtimes, EKS N-2 at most, RDS with auto minor upgrade in a window); the upgrade is quarterly154 planned work, not an emergency. No paid extended support except by explicit decision.155- **LIST OF PROHIBITIONS** (they block a review):156 - Static IAM user access keys anywhere (code, CI, servers' `~/.aws`).157 - `0.0.0.0/0` on ingress with no written justification; public SSH/RDP; resources with an unnecessary158 public IP; the default VPC in use.159 - Resources without mandatory tags; resources created through the console in prod (**clickops**) — everything160 through IaC; unreconciled drift.161 - Public S3 or S3 without Block Public Access; unencrypted data; CMK without rotation; secrets in code,162 plaintext env vars in templates, or logs.163 - Disabling CloudTrail/GuardDuty/Config; wildcard `*` in IAM policies; accounts outside the164 organisation.165 - Proposing deprecated services (list in section 2); `latest` as an image tag in prod;166 - Logs with no defined retention; a single-AZ database in prod; a backup with no proven restore.167168## 9. Mandatory web verification169170Before pinning any concrete AWS fact in code or in an answer, **search the web** (official AWS171docs first): service status (lifecycle page), regional availability, supported runtime/engine172version, limits and quotas, prices, exact names of APIs/flags (e.g. Security173Hub v2 vs CSPM), and re:Invent/re:Inforce news from the last year. The model's memory is NOT a174valid source for: prices, EOL dates, recent feature names, regional availability.175If it cannot be verified, say so explicitly and mark the decision as provisional.176177If the web contradicts this document, **the web wins** — flag the discrepancy.