blockmine 1.24.0 → 1.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (346) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/README.en.md +427 -0
  3. package/README.md +40 -0
  4. package/backend/cli.js +1 -1
  5. package/backend/src/ai/plugin-assistant-system-prompt.md +664 -5
  6. package/backend/src/api/routes/bots.js +13 -0
  7. package/backend/src/api/routes/servers.js +14 -2
  8. package/backend/src/core/BotProcess.js +98 -2
  9. package/backend/src/core/PluginLoader.js +83 -3
  10. package/backend/src/core/PluginManager.js +75 -5
  11. package/backend/src/core/services/BotLifecycleService.js +186 -2
  12. package/backend/src/server.js +11 -1
  13. package/frontend/dist/assets/browser-ponyfill-DN7pwmHT.js +2 -0
  14. package/frontend/dist/assets/index-LSy71uwm.js +11261 -0
  15. package/frontend/dist/assets/index-SfhKxI4-.css +32 -0
  16. package/frontend/dist/flags/en.svg +32 -0
  17. package/frontend/dist/flags/ru.svg +5 -0
  18. package/frontend/dist/index.html +2 -2
  19. package/frontend/dist/locales/en/admin.json +100 -0
  20. package/frontend/dist/locales/en/api-keys.json +58 -0
  21. package/frontend/dist/locales/en/bots.json +110 -0
  22. package/frontend/dist/locales/en/common.json +47 -0
  23. package/frontend/dist/locales/en/configuration.json +22 -0
  24. package/frontend/dist/locales/en/console.json +10 -0
  25. package/frontend/dist/locales/en/dashboard.json +85 -0
  26. package/frontend/dist/locales/en/dialogs.json +70 -0
  27. package/frontend/dist/locales/en/event-graphs.json +50 -0
  28. package/frontend/dist/locales/en/graph-store.json +70 -0
  29. package/frontend/dist/locales/en/login.json +34 -0
  30. package/frontend/dist/locales/en/management.json +114 -0
  31. package/frontend/dist/locales/en/minecraft-viewer.json +27 -0
  32. package/frontend/dist/locales/en/nodes.json +1077 -0
  33. package/frontend/dist/locales/en/permissions.json +50 -0
  34. package/frontend/dist/locales/en/plugin-detail.json +49 -0
  35. package/frontend/dist/locales/en/plugins.json +110 -0
  36. package/frontend/dist/locales/en/proxies.json +81 -0
  37. package/frontend/dist/locales/en/servers.json +39 -0
  38. package/frontend/dist/locales/en/setup.json +17 -0
  39. package/frontend/dist/locales/en/sidebar.json +27 -0
  40. package/frontend/dist/locales/en/tasks.json +62 -0
  41. package/frontend/dist/locales/en/visual-editor.json +219 -0
  42. package/frontend/dist/locales/en/websocket.json +86 -0
  43. package/frontend/dist/locales/ru/admin.json +100 -0
  44. package/frontend/dist/locales/ru/api-keys.json +58 -0
  45. package/frontend/dist/locales/ru/bots.json +110 -0
  46. package/frontend/dist/locales/ru/common.json +49 -0
  47. package/frontend/dist/locales/ru/configuration.json +22 -0
  48. package/frontend/dist/locales/ru/console.json +10 -0
  49. package/frontend/dist/locales/ru/dashboard.json +85 -0
  50. package/frontend/dist/locales/ru/dialogs.json +70 -0
  51. package/frontend/dist/locales/ru/event-graphs.json +50 -0
  52. package/frontend/dist/locales/ru/graph-store.json +70 -0
  53. package/frontend/dist/locales/ru/login.json +34 -0
  54. package/frontend/dist/locales/ru/management.json +114 -0
  55. package/frontend/dist/locales/ru/minecraft-viewer.json +27 -0
  56. package/frontend/dist/locales/ru/nodes.json +1077 -0
  57. package/frontend/dist/locales/ru/permissions.json +50 -0
  58. package/frontend/dist/locales/ru/plugin-detail.json +49 -0
  59. package/frontend/dist/locales/ru/plugins.json +110 -0
  60. package/frontend/dist/locales/ru/proxies.json +81 -0
  61. package/frontend/dist/locales/ru/servers.json +39 -0
  62. package/frontend/dist/locales/ru/setup.json +17 -0
  63. package/frontend/dist/locales/ru/sidebar.json +27 -0
  64. package/frontend/dist/locales/ru/tasks.json +62 -0
  65. package/frontend/dist/locales/ru/visual-editor.json +221 -0
  66. package/frontend/dist/locales/ru/websocket.json +86 -0
  67. package/frontend/dist/monacoeditorwork/css.worker.bundle.js +7 -7
  68. package/frontend/dist/monacoeditorwork/html.worker.bundle.js +7 -7
  69. package/frontend/dist/monacoeditorwork/json.worker.bundle.js +7 -7
  70. package/frontend/dist/monacoeditorwork/ts.worker.bundle.js +3 -3
  71. package/frontend/package.json +4 -0
  72. package/package.json +1 -1
  73. package/screen/3dviewer.png +0 -0
  74. package/screen/console.png +0 -0
  75. package/screen/dashboard.png +0 -0
  76. package/screen/graph_collabe.png +0 -0
  77. package/screen/graph_live_debug.png +0 -0
  78. package/screen/language_selector.png +0 -0
  79. package/screen/management_command.png +0 -0
  80. package/screen/node_debug_trace.png +0 -0
  81. package/screen/plugin_/320/276/320/261/320/267/320/276/321/200.png +0 -0
  82. package/screen/websocket.png +0 -0
  83. package/screen//320/275/320/260/321/201/321/202/321/200/320/276/320/271/320/272/320/270_/320/276/321/202/320/264/320/265/320/273/321/214/320/275/321/213/321/205_/320/272/320/276/320/274/320/260/320/275/320/264_/320/272/320/260/320/266/320/264/321/203_/320/272/320/276/320/274/320/260/320/275/320/273/320/264/321/203_/320/274/320/276/320/266/320/275/320/276_/320/275/320/260/321/201/321/202/321/200/320/260/320/270/320/262/320/260/321/202/321/214.png +0 -0
  84. package/screen//320/277/320/273/320/260/320/275/320/270/321/200/320/276/320/262/321/211/320/270/320/272_/320/274/320/276/320/266/320/275/320/276_/320/267/320/260/320/264/320/260/320/262/320/260/321/202/321/214_/320/264/320/265/320/271/321/201/321/202/320/262/320/270/321/217_/320/277/320/276_/320/262/321/200/320/265/320/274/320/265/320/275/320/270.png +0 -0
  85. package/.claude/agents/README.md +0 -469
  86. package/.claude/agents/auth-route-debugger.md +0 -118
  87. package/.claude/agents/auth-route-tester.md +0 -93
  88. package/.claude/agents/auto-error-resolver.md +0 -97
  89. package/.claude/agents/build-optimizer.md +0 -236
  90. package/.claude/agents/code-architect.md +0 -34
  91. package/.claude/agents/code-architecture-reviewer.md +0 -83
  92. package/.claude/agents/code-explorer.md +0 -51
  93. package/.claude/agents/code-refactor-master.md +0 -94
  94. package/.claude/agents/code-reviewer.md +0 -46
  95. package/.claude/agents/cost-optimizer.md +0 -134
  96. package/.claude/agents/deployment-orchestrator.md +0 -113
  97. package/.claude/agents/documentation-architect.md +0 -82
  98. package/.claude/agents/frontend-error-fixer.md +0 -77
  99. package/.claude/agents/iac-code-generator.md +0 -71
  100. package/.claude/agents/incident-responder.md +0 -346
  101. package/.claude/agents/infrastructure-architect.md +0 -31
  102. package/.claude/agents/kubernetes-specialist.md +0 -56
  103. package/.claude/agents/migration-planner.md +0 -181
  104. package/.claude/agents/network-architect.md +0 -196
  105. package/.claude/agents/plan-reviewer.md +0 -52
  106. package/.claude/agents/refactor-planner.md +0 -63
  107. package/.claude/agents/security-scanner.md +0 -102
  108. package/.claude/agents/web-research-specialist.md +0 -78
  109. package/.claude/commands/cost-analysis.md +0 -315
  110. package/.claude/commands/dev-docs-update.md +0 -55
  111. package/.claude/commands/dev-docs.md +0 -51
  112. package/.claude/commands/feature-dev.md +0 -125
  113. package/.claude/commands/incident-debug.md +0 -247
  114. package/.claude/commands/infra-plan.md +0 -81
  115. package/.claude/commands/migration-plan.md +0 -478
  116. package/.claude/commands/route-research-for-testing.md +0 -37
  117. package/.claude/commands/security-review.md +0 -66
  118. package/.claude/hooks/CONFIG.md +0 -448
  119. package/.claude/hooks/README.md +0 -163
  120. package/.claude/hooks/SKILL_ACTIVATION_COMPLETE.md +0 -226
  121. package/.claude/hooks/WINDOWS_HOOKS_README.md +0 -151
  122. package/.claude/hooks/add-skill-activation-banners.ts +0 -132
  123. package/.claude/hooks/comprehensive-skill-test.ts +0 -1315
  124. package/.claude/hooks/error-handling-reminder.sh +0 -12
  125. package/.claude/hooks/error-handling-reminder.ts +0 -222
  126. package/.claude/hooks/k8s-manifest-validator.sh +0 -56
  127. package/.claude/hooks/package-lock.json +0 -556
  128. package/.claude/hooks/package.json +0 -16
  129. package/.claude/hooks/post-tool-use-tracker.ps1 +0 -174
  130. package/.claude/hooks/post-tool-use-tracker.sh +0 -183
  131. package/.claude/hooks/security-policy-check.sh +0 -247
  132. package/.claude/hooks/skill-activation-prompt.ps1 +0 -10
  133. package/.claude/hooks/skill-activation-prompt.sh +0 -10
  134. package/.claude/hooks/skill-activation-prompt.ts +0 -141
  135. package/.claude/hooks/stop-build-check-enhanced.sh +0 -130
  136. package/.claude/hooks/terraform-validator.sh +0 -53
  137. package/.claude/hooks/test-input.json +0 -7
  138. package/.claude/hooks/test-skill-activation.ts +0 -427
  139. package/.claude/hooks/trigger-build-resolver.sh +0 -79
  140. package/.claude/hooks/tsc-check.sh +0 -173
  141. package/.claude/hooks/tsconfig.json +0 -19
  142. package/.claude/settings.json +0 -59
  143. package/.claude/settings.local.json +0 -67
  144. package/.claude/skills/README.md +0 -507
  145. package/.claude/skills/api-engineering/SKILL.md +0 -63
  146. package/.claude/skills/api-engineering/resources/api-versioning.md +0 -88
  147. package/.claude/skills/api-engineering/resources/graphql-patterns.md +0 -106
  148. package/.claude/skills/api-engineering/resources/rate-limiting.md +0 -118
  149. package/.claude/skills/api-engineering/resources/rest-api-design.md +0 -105
  150. package/.claude/skills/backend-dev-guidelines/SKILL.md +0 -306
  151. package/.claude/skills/backend-dev-guidelines/resources/architecture-overview.md +0 -451
  152. package/.claude/skills/backend-dev-guidelines/resources/async-and-errors.md +0 -307
  153. package/.claude/skills/backend-dev-guidelines/resources/complete-examples.md +0 -638
  154. package/.claude/skills/backend-dev-guidelines/resources/configuration.md +0 -275
  155. package/.claude/skills/backend-dev-guidelines/resources/database-patterns.md +0 -224
  156. package/.claude/skills/backend-dev-guidelines/resources/middleware-guide.md +0 -213
  157. package/.claude/skills/backend-dev-guidelines/resources/routing-and-controllers.md +0 -756
  158. package/.claude/skills/backend-dev-guidelines/resources/sentry-and-monitoring.md +0 -336
  159. package/.claude/skills/backend-dev-guidelines/resources/services-and-repositories.md +0 -789
  160. package/.claude/skills/backend-dev-guidelines/resources/testing-guide.md +0 -235
  161. package/.claude/skills/backend-dev-guidelines/resources/validation-patterns.md +0 -754
  162. package/.claude/skills/budget-and-cost-management/SKILL.md +0 -850
  163. package/.claude/skills/build-engineering/SKILL.md +0 -431
  164. package/.claude/skills/build-engineering/resources/artifact-repositories.md +0 -72
  165. package/.claude/skills/build-engineering/resources/build-caching.md +0 -96
  166. package/.claude/skills/build-engineering/resources/build-pipelines.md +0 -105
  167. package/.claude/skills/build-engineering/resources/build-security.md +0 -95
  168. package/.claude/skills/build-engineering/resources/build-systems.md +0 -389
  169. package/.claude/skills/build-engineering/resources/compilation-optimization.md +0 -201
  170. package/.claude/skills/build-engineering/resources/dependency-management.md +0 -73
  171. package/.claude/skills/build-engineering/resources/monorepo-builds.md +0 -110
  172. package/.claude/skills/build-engineering/resources/performance-optimization.md +0 -113
  173. package/.claude/skills/build-engineering/resources/reproducible-builds.md +0 -82
  174. package/.claude/skills/cloud-engineering/SKILL.md +0 -675
  175. package/.claude/skills/cloud-engineering/resources/aws-patterns.md +0 -742
  176. package/.claude/skills/cloud-engineering/resources/azure-patterns.md +0 -714
  177. package/.claude/skills/cloud-engineering/resources/cleared-cloud-environments.md +0 -987
  178. package/.claude/skills/cloud-engineering/resources/cloud-cost-optimization.md +0 -757
  179. package/.claude/skills/cloud-engineering/resources/cloud-networking.md +0 -1058
  180. package/.claude/skills/cloud-engineering/resources/cloud-security-tools.md +0 -1530
  181. package/.claude/skills/cloud-engineering/resources/cloud-security.md +0 -990
  182. package/.claude/skills/cloud-engineering/resources/gcp-patterns.md +0 -758
  183. package/.claude/skills/cloud-engineering/resources/migration-strategies.md +0 -820
  184. package/.claude/skills/cloud-engineering/resources/multi-cloud-strategies.md +0 -670
  185. package/.claude/skills/cloud-engineering/resources/oci-patterns.md +0 -1198
  186. package/.claude/skills/cloud-engineering/resources/serverless-patterns.md +0 -795
  187. package/.claude/skills/cloud-engineering/resources/well-architected-frameworks.md +0 -966
  188. package/.claude/skills/cybersecurity/SKILL.md +0 -409
  189. package/.claude/skills/cybersecurity/resources/security-architecture.md +0 -266
  190. package/.claude/skills/database-engineering/SKILL.md +0 -61
  191. package/.claude/skills/database-engineering/resources/backup-and-recovery.md +0 -72
  192. package/.claude/skills/database-engineering/resources/database-replication.md +0 -63
  193. package/.claude/skills/database-engineering/resources/postgresql-fundamentals.md +0 -70
  194. package/.claude/skills/database-engineering/resources/query-optimization.md +0 -68
  195. package/.claude/skills/devsecops/SKILL.md +0 -374
  196. package/.claude/skills/devsecops/resources/ci-cd-security.md +0 -204
  197. package/.claude/skills/devsecops/resources/compliance-automation.md +0 -530
  198. package/.claude/skills/devsecops/resources/compliance-frameworks.md +0 -2322
  199. package/.claude/skills/devsecops/resources/container-security.md +0 -915
  200. package/.claude/skills/devsecops/resources/cspm-integration.md +0 -1440
  201. package/.claude/skills/devsecops/resources/policy-enforcement.md +0 -619
  202. package/.claude/skills/devsecops/resources/secrets-management.md +0 -755
  203. package/.claude/skills/devsecops/resources/security-monitoring.md +0 -146
  204. package/.claude/skills/devsecops/resources/security-scanning.md +0 -887
  205. package/.claude/skills/devsecops/resources/security-testing.md +0 -203
  206. package/.claude/skills/devsecops/resources/supply-chain-security.md +0 -518
  207. package/.claude/skills/devsecops/resources/vulnerability-management.md +0 -481
  208. package/.claude/skills/devsecops/resources/zero-trust-architecture.md +0 -177
  209. package/.claude/skills/documentation-as-code/SKILL.md +0 -323
  210. package/.claude/skills/documentation-as-code/resources/api-documentation.md +0 -90
  211. package/.claude/skills/documentation-as-code/resources/changelog-management.md +0 -79
  212. package/.claude/skills/documentation-as-code/resources/diagram-generation.md +0 -44
  213. package/.claude/skills/documentation-as-code/resources/docs-as-code-workflow.md +0 -99
  214. package/.claude/skills/documentation-as-code/resources/documentation-automation.md +0 -68
  215. package/.claude/skills/documentation-as-code/resources/documentation-sites.md +0 -79
  216. package/.claude/skills/documentation-as-code/resources/markdown-best-practices.md +0 -162
  217. package/.claude/skills/documentation-as-code/resources/openapi-specification.md +0 -77
  218. package/.claude/skills/documentation-as-code/resources/readme-engineering.md +0 -60
  219. package/.claude/skills/documentation-as-code/resources/technical-writing-guide.md +0 -202
  220. package/.claude/skills/engineering-management/SKILL.md +0 -356
  221. package/.claude/skills/engineering-management/resources/career-ladders.md +0 -609
  222. package/.claude/skills/engineering-management/resources/hiring-and-assessment.md +0 -555
  223. package/.claude/skills/engineering-management/resources/one-on-one-guides.md +0 -609
  224. package/.claude/skills/engineering-management/resources/resource-planning.md +0 -557
  225. package/.claude/skills/engineering-management/resources/team-organization-patterns.md +0 -491
  226. package/.claude/skills/engineering-management/resources/technical-interviews.md +0 -474
  227. package/.claude/skills/engineering-operations-management/SKILL.md +0 -817
  228. package/.claude/skills/error-tracking/SKILL.md +0 -379
  229. package/.claude/skills/frontend-design/SKILL.md +0 -42
  230. package/.claude/skills/frontend-dev-guidelines/SKILL.md +0 -403
  231. package/.claude/skills/frontend-dev-guidelines/resources/common-patterns.md +0 -331
  232. package/.claude/skills/frontend-dev-guidelines/resources/complete-examples.md +0 -872
  233. package/.claude/skills/frontend-dev-guidelines/resources/component-patterns.md +0 -502
  234. package/.claude/skills/frontend-dev-guidelines/resources/data-fetching.md +0 -767
  235. package/.claude/skills/frontend-dev-guidelines/resources/file-organization.md +0 -502
  236. package/.claude/skills/frontend-dev-guidelines/resources/loading-and-error-states.md +0 -501
  237. package/.claude/skills/frontend-dev-guidelines/resources/performance.md +0 -406
  238. package/.claude/skills/frontend-dev-guidelines/resources/routing-guide.md +0 -364
  239. package/.claude/skills/frontend-dev-guidelines/resources/styling-guide.md +0 -428
  240. package/.claude/skills/frontend-dev-guidelines/resources/typescript-standards.md +0 -418
  241. package/.claude/skills/general-it-engineering/SKILL.md +0 -393
  242. package/.claude/skills/general-it-engineering/resources/asset-management.md +0 -712
  243. package/.claude/skills/general-it-engineering/resources/automation-orchestration.md +0 -817
  244. package/.claude/skills/general-it-engineering/resources/business-continuity.md +0 -786
  245. package/.claude/skills/general-it-engineering/resources/change-management.md +0 -715
  246. package/.claude/skills/general-it-engineering/resources/enterprise-monitoring.md +0 -729
  247. package/.claude/skills/general-it-engineering/resources/help-desk-operations.md +0 -738
  248. package/.claude/skills/general-it-engineering/resources/incident-service-management.md +0 -834
  249. package/.claude/skills/general-it-engineering/resources/it-governance.md +0 -753
  250. package/.claude/skills/general-it-engineering/resources/itil-framework.md +0 -503
  251. package/.claude/skills/general-it-engineering/resources/service-management.md +0 -669
  252. package/.claude/skills/infrastructure-architecture/SKILL.md +0 -328
  253. package/.claude/skills/infrastructure-architecture/resources/architecture-decision-records.md +0 -505
  254. package/.claude/skills/infrastructure-architecture/resources/architecture-patterns.md +0 -528
  255. package/.claude/skills/infrastructure-architecture/resources/capacity-planning.md +0 -453
  256. package/.claude/skills/infrastructure-architecture/resources/cleared-environment-architecture.md +0 -773
  257. package/.claude/skills/infrastructure-architecture/resources/cost-architecture.md +0 -499
  258. package/.claude/skills/infrastructure-architecture/resources/data-architecture.md +0 -501
  259. package/.claude/skills/infrastructure-architecture/resources/disaster-recovery.md +0 -535
  260. package/.claude/skills/infrastructure-architecture/resources/migration-architecture.md +0 -512
  261. package/.claude/skills/infrastructure-architecture/resources/multi-region-design.md +0 -608
  262. package/.claude/skills/infrastructure-architecture/resources/reference-architectures.md +0 -562
  263. package/.claude/skills/infrastructure-architecture/resources/security-architecture.md +0 -538
  264. package/.claude/skills/infrastructure-architecture/resources/system-design-principles.md +0 -489
  265. package/.claude/skills/infrastructure-architecture/resources/workload-classification.md +0 -1000
  266. package/.claude/skills/infrastructure-strategy/SKILL.md +0 -924
  267. package/.claude/skills/network-engineering/SKILL.md +0 -385
  268. package/.claude/skills/network-engineering/resources/dns-management.md +0 -738
  269. package/.claude/skills/network-engineering/resources/load-balancing.md +0 -820
  270. package/.claude/skills/network-engineering/resources/network-architecture.md +0 -546
  271. package/.claude/skills/network-engineering/resources/network-security.md +0 -921
  272. package/.claude/skills/network-engineering/resources/network-troubleshooting.md +0 -749
  273. package/.claude/skills/network-engineering/resources/routing-switching.md +0 -373
  274. package/.claude/skills/network-engineering/resources/sdn-networking.md +0 -695
  275. package/.claude/skills/network-engineering/resources/service-mesh-networking.md +0 -777
  276. package/.claude/skills/network-engineering/resources/tcp-ip-protocols.md +0 -444
  277. package/.claude/skills/network-engineering/resources/vpn-connectivity.md +0 -672
  278. package/.claude/skills/node-development/SKILL.md +0 -317
  279. package/.claude/skills/observability-engineering/SKILL.md +0 -101
  280. package/.claude/skills/observability-engineering/resources/apm-tools.md +0 -97
  281. package/.claude/skills/observability-engineering/resources/correlation-strategies.md +0 -87
  282. package/.claude/skills/observability-engineering/resources/distributed-tracing.md +0 -98
  283. package/.claude/skills/observability-engineering/resources/logs-aggregation.md +0 -118
  284. package/.claude/skills/observability-engineering/resources/observability-cost-optimization.md +0 -141
  285. package/.claude/skills/observability-engineering/resources/opentelemetry.md +0 -110
  286. package/.claude/skills/platform-engineering/SKILL.md +0 -555
  287. package/.claude/skills/platform-engineering/resources/architecture-overview.md +0 -600
  288. package/.claude/skills/platform-engineering/resources/container-orchestration.md +0 -916
  289. package/.claude/skills/platform-engineering/resources/cost-optimization.md +0 -634
  290. package/.claude/skills/platform-engineering/resources/developer-platforms.md +0 -670
  291. package/.claude/skills/platform-engineering/resources/gitops-automation.md +0 -650
  292. package/.claude/skills/platform-engineering/resources/infrastructure-as-code.md +0 -778
  293. package/.claude/skills/platform-engineering/resources/infrastructure-standards.md +0 -708
  294. package/.claude/skills/platform-engineering/resources/multi-tenancy.md +0 -602
  295. package/.claude/skills/platform-engineering/resources/platform-security.md +0 -711
  296. package/.claude/skills/platform-engineering/resources/resource-management.md +0 -592
  297. package/.claude/skills/platform-engineering/resources/service-mesh.md +0 -628
  298. package/.claude/skills/release-engineering/SKILL.md +0 -393
  299. package/.claude/skills/release-engineering/resources/artifact-management.md +0 -108
  300. package/.claude/skills/release-engineering/resources/build-optimization.md +0 -84
  301. package/.claude/skills/release-engineering/resources/ci-cd-pipelines.md +0 -411
  302. package/.claude/skills/release-engineering/resources/deployment-strategies.md +0 -197
  303. package/.claude/skills/release-engineering/resources/pipeline-security.md +0 -62
  304. package/.claude/skills/release-engineering/resources/progressive-delivery.md +0 -83
  305. package/.claude/skills/release-engineering/resources/release-automation.md +0 -68
  306. package/.claude/skills/release-engineering/resources/release-orchestration.md +0 -77
  307. package/.claude/skills/release-engineering/resources/rollback-strategies.md +0 -66
  308. package/.claude/skills/release-engineering/resources/versioning-strategies.md +0 -59
  309. package/.claude/skills/route-tester/SKILL.md +0 -392
  310. package/.claude/skills/skill-developer/ADVANCED.md +0 -197
  311. package/.claude/skills/skill-developer/HOOK_MECHANISMS.md +0 -306
  312. package/.claude/skills/skill-developer/PATTERNS_LIBRARY.md +0 -152
  313. package/.claude/skills/skill-developer/SKILL.md +0 -430
  314. package/.claude/skills/skill-developer/SKILL_RULES_REFERENCE.md +0 -315
  315. package/.claude/skills/skill-developer/TRIGGER_TYPES.md +0 -305
  316. package/.claude/skills/skill-developer/TROUBLESHOOTING.md +0 -514
  317. package/.claude/skills/skill-rules.json +0 -2989
  318. package/.claude/skills/sre/SKILL.md +0 -464
  319. package/.claude/skills/sre/resources/alerting-best-practices.md +0 -282
  320. package/.claude/skills/sre/resources/capacity-planning.md +0 -226
  321. package/.claude/skills/sre/resources/chaos-engineering.md +0 -193
  322. package/.claude/skills/sre/resources/disaster-recovery.md +0 -232
  323. package/.claude/skills/sre/resources/incident-management.md +0 -436
  324. package/.claude/skills/sre/resources/observability-stack.md +0 -240
  325. package/.claude/skills/sre/resources/on-call-runbooks.md +0 -167
  326. package/.claude/skills/sre/resources/performance-optimization.md +0 -108
  327. package/.claude/skills/sre/resources/reliability-patterns.md +0 -183
  328. package/.claude/skills/sre/resources/slo-sli-sla.md +0 -464
  329. package/.claude/skills/sre/resources/toil-reduction.md +0 -145
  330. package/.claude/skills/systems-engineering/SKILL.md +0 -648
  331. package/.claude/skills/systems-engineering/resources/automation-patterns.md +0 -771
  332. package/.claude/skills/systems-engineering/resources/configuration-management.md +0 -998
  333. package/.claude/skills/systems-engineering/resources/linux-administration.md +0 -672
  334. package/.claude/skills/systems-engineering/resources/networking-fundamentals.md +0 -982
  335. package/.claude/skills/systems-engineering/resources/performance-tuning.md +0 -871
  336. package/.claude/skills/systems-engineering/resources/powershell-scripting.md +0 -482
  337. package/.claude/skills/systems-engineering/resources/security-hardening.md +0 -739
  338. package/.claude/skills/systems-engineering/resources/shell-scripting.md +0 -915
  339. package/.claude/skills/systems-engineering/resources/storage-management.md +0 -628
  340. package/.claude/skills/systems-engineering/resources/system-monitoring.md +0 -787
  341. package/.claude/skills/systems-engineering/resources/troubleshooting-guide.md +0 -753
  342. package/.claude/skills/systems-engineering/resources/windows-administration.md +0 -738
  343. package/.claude/skills/technical-leadership/SKILL.md +0 -728
  344. package/backend/docs/SECRETS_DOCUMENTATION.md +0 -327
  345. package/frontend/dist/assets/index-BC-NbKXi.css +0 -32
  346. package/frontend/dist/assets/index-DqJXZMHY.js +0 -11266
@@ -1,990 +0,0 @@
1
- # Cloud Security
2
-
3
- Comprehensive guide to cloud security across AWS, Azure, and GCP. Covers IAM, encryption, compliance, identity federation, and zero-trust architecture.
4
-
5
- ## Identity and Access Management
6
-
7
- ### AWS IAM Best Practices
8
-
9
- **Principle of Least Privilege:**
10
- ```hcl
11
- # IAM policy for S3 bucket access
12
- resource "aws_iam_policy" "s3_read" {
13
- name = "s3-app-bucket-read"
14
- description = "Read access to application S3 bucket"
15
-
16
- policy = jsonencode({
17
- Version = "2012-10-17"
18
- Statement = [
19
- {
20
- Effect = "Allow"
21
- Action = [
22
- "s3:GetObject",
23
- "s3:ListBucket"
24
- ]
25
- Resource = [
26
- "${aws_s3_bucket.app.arn}",
27
- "${aws_s3_bucket.app.arn}/*"
28
- ]
29
- }
30
- ]
31
- })
32
- }
33
-
34
- # IAM role for EC2 instances
35
- resource "aws_iam_role" "app" {
36
- name = "app-instance-role"
37
-
38
- assume_role_policy = jsonencode({
39
- Version = "2012-10-17"
40
- Statement = [
41
- {
42
- Effect = "Allow"
43
- Principal = {
44
- Service = "ec2.amazonaws.com"
45
- }
46
- Action = "sts:AssumeRole"
47
- }
48
- ]
49
- })
50
- }
51
-
52
- # Attach policy to role
53
- resource "aws_iam_role_policy_attachment" "app_s3" {
54
- role = aws_iam_role.app.name
55
- policy_arn = aws_iam_policy.s3_read.arn
56
- }
57
-
58
- # Instance profile for EC2
59
- resource "aws_iam_instance_profile" "app" {
60
- name = "app-instance-profile"
61
- role = aws_iam_role.app.name
62
- }
63
- ```
64
-
65
- **Cross-Account Access:**
66
- ```hcl
67
- # Trust policy for cross-account access
68
- resource "aws_iam_role" "cross_account" {
69
- name = "cross-account-role"
70
-
71
- assume_role_policy = jsonencode({
72
- Version = "2012-10-17"
73
- Statement = [
74
- {
75
- Effect = "Allow"
76
- Principal = {
77
- AWS = "arn:aws:iam::123456789012:root"
78
- }
79
- Action = "sts:AssumeRole"
80
- Condition = {
81
- StringEquals = {
82
- "sts:ExternalId" = var.external_id
83
- }
84
- }
85
- }
86
- ]
87
- })
88
- }
89
-
90
- # Policy for the cross-account role
91
- resource "aws_iam_role_policy" "cross_account" {
92
- name = "cross-account-policy"
93
- role = aws_iam_role.cross_account.id
94
-
95
- policy = jsonencode({
96
- Version = "2012-10-17"
97
- Statement = [
98
- {
99
- Effect = "Allow"
100
- Action = [
101
- "s3:GetObject",
102
- "s3:PutObject"
103
- ]
104
- Resource = "${aws_s3_bucket.shared.arn}/*"
105
- }
106
- ]
107
- })
108
- }
109
- ```
110
-
111
- **Service Control Policies (SCPs):**
112
- ```json
113
- {
114
- "Version": "2012-10-17",
115
- "Statement": [
116
- {
117
- "Effect": "Deny",
118
- "Action": [
119
- "ec2:RunInstances"
120
- ],
121
- "Resource": "*",
122
- "Condition": {
123
- "StringNotEquals": {
124
- "ec2:Region": [
125
- "us-east-1",
126
- "us-west-2"
127
- ]
128
- }
129
- }
130
- },
131
- {
132
- "Effect": "Deny",
133
- "Action": [
134
- "s3:PutBucketPublicAccessBlock"
135
- ],
136
- "Resource": "*"
137
- }
138
- ]
139
- }
140
- ```
141
-
142
- ### Azure Active Directory
143
-
144
- **Role-Based Access Control (RBAC):**
145
- ```hcl
146
- # Custom role definition
147
- resource "azurerm_role_definition" "app_deployer" {
148
- name = "Application Deployer"
149
- scope = azurerm_resource_group.main.id
150
-
151
- permissions {
152
- actions = [
153
- "Microsoft.Web/sites/read",
154
- "Microsoft.Web/sites/write",
155
- "Microsoft.Web/sites/restart/action",
156
- "Microsoft.Storage/storageAccounts/read",
157
- "Microsoft.Storage/storageAccounts/listKeys/action"
158
- ]
159
- not_actions = []
160
- }
161
-
162
- assignable_scopes = [
163
- azurerm_resource_group.main.id
164
- ]
165
- }
166
-
167
- # Role assignment
168
- resource "azurerm_role_assignment" "app_deployer" {
169
- scope = azurerm_resource_group.main.id
170
- role_definition_name = azurerm_role_definition.app_deployer.name
171
- principal_id = data.azuread_group.devops.object_id
172
- }
173
-
174
- # Built-in role assignment
175
- resource "azurerm_role_assignment" "reader" {
176
- scope = azurerm_resource_group.main.id
177
- role_definition_name = "Reader"
178
- principal_id = data.azuread_group.developers.object_id
179
- }
180
- ```
181
-
182
- **Managed Identity:**
183
- ```hcl
184
- # User-assigned managed identity
185
- resource "azurerm_user_assigned_identity" "app" {
186
- name = "app-identity"
187
- location = var.location
188
- resource_group_name = azurerm_resource_group.main.name
189
- }
190
-
191
- # Assign identity to VM
192
- resource "azurerm_linux_virtual_machine" "app" {
193
- name = "app-vm"
194
- location = var.location
195
- resource_group_name = azurerm_resource_group.main.name
196
- size = "Standard_D2s_v3"
197
-
198
- identity {
199
- type = "UserAssigned"
200
- identity_ids = [azurerm_user_assigned_identity.app.id]
201
- }
202
-
203
- # ... other configuration
204
- }
205
-
206
- # Grant permissions to managed identity
207
- resource "azurerm_role_assignment" "identity_storage" {
208
- scope = azurerm_storage_account.main.id
209
- role_definition_name = "Storage Blob Data Contributor"
210
- principal_id = azurerm_user_assigned_identity.app.principal_id
211
- }
212
- ```
213
-
214
- ### GCP IAM
215
-
216
- **Service Account with Workload Identity:**
217
- ```hcl
218
- # GCP service account
219
- resource "google_service_account" "app" {
220
- account_id = "app-service-account"
221
- display_name = "Application Service Account"
222
- }
223
-
224
- # IAM binding for service account
225
- resource "google_project_iam_member" "app_storage" {
226
- project = var.project_id
227
- role = "roles/storage.objectViewer"
228
- member = "serviceAccount:${google_service_account.app.email}"
229
- }
230
-
231
- # Workload Identity binding for GKE
232
- resource "google_service_account_iam_binding" "workload_identity" {
233
- service_account_id = google_service_account.app.name
234
- role = "roles/iam.workloadIdentityUser"
235
-
236
- members = [
237
- "serviceAccount:${var.project_id}.svc.id.goog[${var.namespace}/${var.k8s_sa_name}]"
238
- ]
239
- }
240
-
241
- # Custom role
242
- resource "google_project_iam_custom_role" "app_deployer" {
243
- role_id = "appDeployer"
244
- title = "Application Deployer"
245
- description = "Custom role for application deployment"
246
-
247
- permissions = [
248
- "compute.instances.get",
249
- "compute.instances.start",
250
- "compute.instances.stop",
251
- "storage.buckets.get",
252
- "storage.objects.create",
253
- "storage.objects.delete"
254
- ]
255
- }
256
- ```
257
-
258
- ## Encryption
259
-
260
- ### Encryption at Rest
261
-
262
- **AWS KMS:**
263
- ```hcl
264
- # Customer-managed KMS key
265
- resource "aws_kms_key" "app" {
266
- description = "Application encryption key"
267
- deletion_window_in_days = 10
268
- enable_key_rotation = true
269
-
270
- policy = jsonencode({
271
- Version = "2012-10-17"
272
- Statement = [
273
- {
274
- Sid = "Enable IAM User Permissions"
275
- Effect = "Allow"
276
- Principal = {
277
- AWS = "arn:aws:iam::${data.aws_caller_identity.current.account_id}:root"
278
- }
279
- Action = "kms:*"
280
- Resource = "*"
281
- },
282
- {
283
- Sid = "Allow services to use the key"
284
- Effect = "Allow"
285
- Principal = {
286
- Service = [
287
- "s3.amazonaws.com",
288
- "rds.amazonaws.com",
289
- "dynamodb.amazonaws.com"
290
- ]
291
- }
292
- Action = [
293
- "kms:Decrypt",
294
- "kms:GenerateDataKey"
295
- ]
296
- Resource = "*"
297
- }
298
- ]
299
- })
300
-
301
- tags = {
302
- Name = "app-encryption-key"
303
- }
304
- }
305
-
306
- resource "aws_kms_alias" "app" {
307
- name = "alias/app-key"
308
- target_key_id = aws_kms_key.app.key_id
309
- }
310
-
311
- # S3 bucket with KMS encryption
312
- resource "aws_s3_bucket" "app" {
313
- bucket = "app-data-bucket"
314
- }
315
-
316
- resource "aws_s3_bucket_server_side_encryption_configuration" "app" {
317
- bucket = aws_s3_bucket.app.id
318
-
319
- rule {
320
- apply_server_side_encryption_by_default {
321
- sse_algorithm = "aws:kms"
322
- kms_master_key_id = aws_kms_key.app.arn
323
- }
324
- bucket_key_enabled = true
325
- }
326
- }
327
-
328
- # RDS with KMS encryption
329
- resource "aws_db_instance" "app" {
330
- identifier = "app-database"
331
- engine = "postgres"
332
- instance_class = "db.t3.medium"
333
-
334
- storage_encrypted = true
335
- kms_key_id = aws_kms_key.app.arn
336
-
337
- # ... other configuration
338
- }
339
-
340
- # EBS volume encryption
341
- resource "aws_ebs_volume" "app" {
342
- availability_zone = "us-east-1a"
343
- size = 100
344
- encrypted = true
345
- kms_key_id = aws_kms_key.app.arn
346
-
347
- tags = {
348
- Name = "app-data-volume"
349
- }
350
- }
351
- ```
352
-
353
- **Azure Key Vault:**
354
- ```hcl
355
- # Key Vault
356
- resource "azurerm_key_vault" "main" {
357
- name = "app-key-vault"
358
- location = var.location
359
- resource_group_name = azurerm_resource_group.main.name
360
- tenant_id = data.azurerm_client_config.current.tenant_id
361
- sku_name = "premium"
362
- soft_delete_retention_days = 7
363
- purge_protection_enabled = true
364
-
365
- network_acls {
366
- default_action = "Deny"
367
- bypass = "AzureServices"
368
- ip_rules = var.allowed_ips
369
- }
370
- }
371
-
372
- # Key for encryption
373
- resource "azurerm_key_vault_key" "encryption" {
374
- name = "encryption-key"
375
- key_vault_id = azurerm_key_vault.main.id
376
- key_type = "RSA"
377
- key_size = 2048
378
-
379
- key_opts = [
380
- "decrypt",
381
- "encrypt",
382
- "sign",
383
- "unwrapKey",
384
- "verify",
385
- "wrapKey"
386
- ]
387
- }
388
-
389
- # Disk encryption set
390
- resource "azurerm_disk_encryption_set" "main" {
391
- name = "app-disk-encryption"
392
- location = var.location
393
- resource_group_name = azurerm_resource_group.main.name
394
- key_vault_key_id = azurerm_key_vault_key.encryption.id
395
-
396
- identity {
397
- type = "SystemAssigned"
398
- }
399
- }
400
-
401
- # Storage account with customer-managed key
402
- resource "azurerm_storage_account" "app" {
403
- name = "appstorageaccount"
404
- resource_group_name = azurerm_resource_group.main.name
405
- location = var.location
406
- account_tier = "Standard"
407
- account_replication_type = "GRS"
408
-
409
- customer_managed_key {
410
- key_vault_key_id = azurerm_key_vault_key.encryption.id
411
- user_assigned_identity_id = azurerm_user_assigned_identity.storage.id
412
- }
413
-
414
- identity {
415
- type = "UserAssigned"
416
- identity_ids = [azurerm_user_assigned_identity.storage.id]
417
- }
418
- }
419
- ```
420
-
421
- **GCP Cloud KMS:**
422
- ```hcl
423
- # KMS keyring
424
- resource "google_kms_key_ring" "main" {
425
- name = "app-keyring"
426
- location = var.region
427
- }
428
-
429
- # Encryption key
430
- resource "google_kms_crypto_key" "encryption" {
431
- name = "encryption-key"
432
- key_ring = google_kms_key_ring.main.id
433
-
434
- rotation_period = "7776000s" # 90 days
435
-
436
- lifecycle {
437
- prevent_destroy = true
438
- }
439
- }
440
-
441
- # IAM binding for key usage
442
- resource "google_kms_crypto_key_iam_binding" "crypto_key" {
443
- crypto_key_id = google_kms_crypto_key.encryption.id
444
- role = "roles/cloudkms.cryptoKeyEncrypterDecrypter"
445
-
446
- members = [
447
- "serviceAccount:${google_service_account.app.email}"
448
- ]
449
- }
450
-
451
- # Cloud Storage bucket with CMEK
452
- resource "google_storage_bucket" "app" {
453
- name = "app-data-bucket"
454
- location = var.region
455
-
456
- encryption {
457
- default_kms_key_name = google_kms_crypto_key.encryption.id
458
- }
459
- }
460
-
461
- # Compute disk with CMEK
462
- resource "google_compute_disk" "app" {
463
- name = "app-data-disk"
464
- type = "pd-ssd"
465
- zone = var.zone
466
- size = 100
467
-
468
- disk_encryption_key {
469
- kms_key_self_link = google_kms_crypto_key.encryption.id
470
- }
471
- }
472
- ```
473
-
474
- ### Encryption in Transit
475
-
476
- **AWS Certificate Manager (ACM):**
477
- ```hcl
478
- # Request SSL certificate
479
- resource "aws_acm_certificate" "main" {
480
- domain_name = "example.com"
481
- subject_alternative_names = ["*.example.com"]
482
- validation_method = "DNS"
483
-
484
- lifecycle {
485
- create_before_destroy = true
486
- }
487
-
488
- tags = {
489
- Name = "example.com-certificate"
490
- }
491
- }
492
-
493
- # DNS validation
494
- resource "aws_route53_record" "cert_validation" {
495
- for_each = {
496
- for dvo in aws_acm_certificate.main.domain_validation_options : dvo.domain_name => {
497
- name = dvo.resource_record_name
498
- record = dvo.resource_record_value
499
- type = dvo.resource_record_type
500
- }
501
- }
502
-
503
- allow_overwrite = true
504
- name = each.value.name
505
- records = [each.value.record]
506
- ttl = 60
507
- type = each.value.type
508
- zone_id = aws_route53_zone.main.zone_id
509
- }
510
-
511
- # Wait for validation
512
- resource "aws_acm_certificate_validation" "main" {
513
- certificate_arn = aws_acm_certificate.main.arn
514
- validation_record_fqdns = [for record in aws_route53_record.cert_validation : record.fqdn]
515
- }
516
- ```
517
-
518
- ## Secrets Management
519
-
520
- ### AWS Secrets Manager
521
-
522
- ```hcl
523
- # Secret
524
- resource "aws_secretsmanager_secret" "db_password" {
525
- name = "production/database/password"
526
- description = "Database password"
527
- recovery_window_in_days = 7
528
-
529
- tags = {
530
- Environment = "production"
531
- }
532
- }
533
-
534
- # Secret version
535
- resource "aws_secretsmanager_secret_version" "db_password" {
536
- secret_id = aws_secretsmanager_secret.db_password.id
537
- secret_string = jsonencode({
538
- username = "admin"
539
- password = random_password.db.result
540
- engine = "postgres"
541
- host = aws_db_instance.main.address
542
- port = aws_db_instance.main.port
543
- dbname = "appdb"
544
- })
545
- }
546
-
547
- # Rotation Lambda
548
- resource "aws_secretsmanager_secret_rotation" "db_password" {
549
- secret_id = aws_secretsmanager_secret.db_password.id
550
- rotation_lambda_arn = aws_lambda_function.rotate_secret.arn
551
-
552
- rotation_rules {
553
- automatically_after_days = 30
554
- }
555
- }
556
-
557
- # IAM policy for secret access
558
- resource "aws_iam_policy" "read_db_secret" {
559
- name = "read-db-secret"
560
-
561
- policy = jsonencode({
562
- Version = "2012-10-17"
563
- Statement = [
564
- {
565
- Effect = "Allow"
566
- Action = [
567
- "secretsmanager:GetSecretValue",
568
- "secretsmanager:DescribeSecret"
569
- ]
570
- Resource = aws_secretsmanager_secret.db_password.arn
571
- }
572
- ]
573
- })
574
- }
575
- ```
576
-
577
- ### HashiCorp Vault on Kubernetes
578
-
579
- ```yaml
580
- # Vault deployment
581
- apiVersion: apps/v1
582
- kind: StatefulSet
583
- metadata:
584
- name: vault
585
- namespace: vault
586
- spec:
587
- serviceName: vault
588
- replicas: 3
589
- selector:
590
- matchLabels:
591
- app: vault
592
- template:
593
- metadata:
594
- labels:
595
- app: vault
596
- spec:
597
- serviceAccountName: vault
598
- containers:
599
- - name: vault
600
- image: hashicorp/vault:1.15
601
- ports:
602
- - containerPort: 8200
603
- name: api
604
- - containerPort: 8201
605
- name: cluster
606
- env:
607
- - name: VAULT_ADDR
608
- value: "http://127.0.0.1:8200"
609
- - name: VAULT_API_ADDR
610
- value: "http://$(POD_IP):8200"
611
- - name: VAULT_CLUSTER_ADDR
612
- value: "https://$(POD_IP):8201"
613
- volumeMounts:
614
- - name: vault-config
615
- mountPath: /vault/config
616
- - name: vault-data
617
- mountPath: /vault/data
618
- volumes:
619
- - name: vault-config
620
- configMap:
621
- name: vault-config
622
- volumeClaimTemplates:
623
- - metadata:
624
- name: vault-data
625
- spec:
626
- accessModes: ["ReadWriteOnce"]
627
- resources:
628
- requests:
629
- storage: 10Gi
630
-
631
- ---
632
- # Vault configuration
633
- apiVersion: v1
634
- kind: ConfigMap
635
- metadata:
636
- name: vault-config
637
- namespace: vault
638
- data:
639
- vault.hcl: |
640
- ui = true
641
-
642
- listener "tcp" {
643
- address = "0.0.0.0:8200"
644
- tls_disable = 0
645
- tls_cert_file = "/vault/tls/tls.crt"
646
- tls_key_file = "/vault/tls/tls.key"
647
- }
648
-
649
- storage "raft" {
650
- path = "/vault/data"
651
- }
652
-
653
- service_registration "kubernetes" {}
654
- ```
655
-
656
- ## Compliance Frameworks
657
-
658
- ### HIPAA Compliance (AWS)
659
-
660
- ```hcl
661
- # CloudTrail for audit logging
662
- resource "aws_cloudtrail" "main" {
663
- name = "hipaa-audit-trail"
664
- s3_bucket_name = aws_s3_bucket.cloudtrail.id
665
- include_global_service_events = true
666
- is_multi_region_trail = true
667
- enable_log_file_validation = true
668
-
669
- event_selector {
670
- read_write_type = "All"
671
- include_management_events = true
672
-
673
- data_resource {
674
- type = "AWS::S3::Object"
675
- values = ["${aws_s3_bucket.phi.arn}/"]
676
- }
677
- }
678
-
679
- insight_selector {
680
- insight_type = "ApiCallRateInsight"
681
- }
682
- }
683
-
684
- # Config for compliance monitoring
685
- resource "aws_config_configuration_recorder" "main" {
686
- name = "hipaa-config-recorder"
687
- role_arn = aws_iam_role.config.arn
688
-
689
- recording_group {
690
- all_supported = true
691
- include_global_resource_types = true
692
- }
693
- }
694
-
695
- # Config rules for HIPAA
696
- resource "aws_config_config_rule" "encrypted_volumes" {
697
- name = "encrypted-volumes"
698
-
699
- source {
700
- owner = "AWS"
701
- source_identifier = "ENCRYPTED_VOLUMES"
702
- }
703
-
704
- depends_on = [aws_config_configuration_recorder.main]
705
- }
706
-
707
- resource "aws_config_config_rule" "rds_encryption_enabled" {
708
- name = "rds-encryption-enabled"
709
-
710
- source {
711
- owner = "AWS"
712
- source_identifier = "RDS_STORAGE_ENCRYPTED"
713
- }
714
-
715
- depends_on = [aws_config_configuration_recorder.main]
716
- }
717
-
718
- # GuardDuty for threat detection
719
- resource "aws_guardduty_detector" "main" {
720
- enable = true
721
- finding_publishing_frequency = "FIFTEEN_MINUTES"
722
-
723
- datasources {
724
- s3_logs {
725
- enable = true
726
- }
727
- kubernetes {
728
- audit_logs {
729
- enable = true
730
- }
731
- }
732
- }
733
- }
734
- ```
735
-
736
- ### PCI-DSS Compliance
737
-
738
- **Network Segmentation:**
739
- ```hcl
740
- # Cardholder Data Environment (CDE) VPC
741
- resource "aws_vpc" "cde" {
742
- cidr_block = "10.1.0.0/16"
743
- enable_dns_hostnames = true
744
-
745
- tags = {
746
- Name = "cde-vpc"
747
- Compliance = "PCI-DSS"
748
- Environment = "production"
749
- }
750
- }
751
-
752
- # Isolated subnets for CDE
753
- resource "aws_subnet" "cde_private" {
754
- count = 3
755
- vpc_id = aws_vpc.cde.id
756
- cidr_block = "10.1.${count.index}.0/24"
757
- availability_zone = data.aws_availability_zones.available.names[count.index]
758
-
759
- tags = {
760
- Name = "cde-private-${count.index + 1}"
761
- Compliance = "PCI-DSS"
762
- }
763
- }
764
-
765
- # Strict security group for CDE
766
- resource "aws_security_group" "cde" {
767
- name = "cde-sg"
768
- description = "Security group for Cardholder Data Environment"
769
- vpc_id = aws_vpc.cde.id
770
-
771
- # No inbound from internet
772
- # Only specific application subnets allowed
773
-
774
- ingress {
775
- description = "HTTPS from payment gateway"
776
- from_port = 443
777
- to_port = 443
778
- protocol = "tcp"
779
- cidr_blocks = [aws_subnet.payment_gateway.cidr_block]
780
- }
781
-
782
- egress {
783
- description = "HTTPS to payment processor"
784
- from_port = 443
785
- to_port = 443
786
- protocol = "tcp"
787
- cidr_blocks = [var.payment_processor_cidr]
788
- }
789
-
790
- tags = {
791
- Name = "cde-security-group"
792
- Compliance = "PCI-DSS"
793
- }
794
- }
795
-
796
- # WAF for PCI-DSS
797
- resource "aws_wafv2_web_acl" "pci" {
798
- name = "pci-dss-waf"
799
- scope = "REGIONAL"
800
-
801
- default_action {
802
- allow {}
803
- }
804
-
805
- rule {
806
- name = "AWSManagedRulesSQLiRuleSet"
807
- priority = 1
808
-
809
- override_action {
810
- none {}
811
- }
812
-
813
- statement {
814
- managed_rule_group_statement {
815
- vendor_name = "AWS"
816
- name = "AWSManagedRulesSQLiRuleSet"
817
- }
818
- }
819
-
820
- visibility_config {
821
- cloudwatch_metrics_enabled = true
822
- metric_name = "SQLi"
823
- sampled_requests_enabled = true
824
- }
825
- }
826
-
827
- visibility_config {
828
- cloudwatch_metrics_enabled = true
829
- metric_name = "PCICompliance"
830
- sampled_requests_enabled = true
831
- }
832
- }
833
- ```
834
-
835
- ### SOC 2 Compliance
836
-
837
- ```hcl
838
- # Security Hub for centralized security
839
- resource "aws_securityhub_account" "main" {}
840
-
841
- resource "aws_securityhub_standards_subscription" "cis" {
842
- standards_arn = "arn:aws:securityhub:::ruleset/cis-aws-foundations-benchmark/v/1.2.0"
843
- }
844
-
845
- # CloudWatch Logs encryption
846
- resource "aws_cloudwatch_log_group" "application" {
847
- name = "/application/logs"
848
- retention_in_days = 365
849
- kms_key_id = aws_kms_key.logs.arn
850
-
851
- tags = {
852
- Compliance = "SOC2"
853
- }
854
- }
855
-
856
- # S3 bucket with versioning and logging
857
- resource "aws_s3_bucket" "audit_logs" {
858
- bucket = "audit-logs-bucket"
859
-
860
- tags = {
861
- Compliance = "SOC2"
862
- }
863
- }
864
-
865
- resource "aws_s3_bucket_versioning" "audit_logs" {
866
- bucket = aws_s3_bucket.audit_logs.id
867
-
868
- versioning_configuration {
869
- status = "Enabled"
870
- }
871
- }
872
-
873
- resource "aws_s3_bucket_logging" "audit_logs" {
874
- bucket = aws_s3_bucket.audit_logs.id
875
-
876
- target_bucket = aws_s3_bucket.access_logs.id
877
- target_prefix = "audit-logs/"
878
- }
879
-
880
- resource "aws_s3_bucket_lifecycle_configuration" "audit_logs" {
881
- bucket = aws_s3_bucket.audit_logs.id
882
-
883
- rule {
884
- id = "archive-old-logs"
885
- status = "Enabled"
886
-
887
- transition {
888
- days = 90
889
- storage_class = "GLACIER"
890
- }
891
-
892
- expiration {
893
- days = 2555 # 7 years for SOC2
894
- }
895
- }
896
- }
897
- ```
898
-
899
- ## Zero-Trust Architecture
900
-
901
- **Network Micro-Segmentation:**
902
- ```yaml
903
- # Kubernetes Network Policies
904
- apiVersion: networking.k8s.io/v1
905
- kind: NetworkPolicy
906
- metadata:
907
- name: api-network-policy
908
- namespace: production
909
- spec:
910
- podSelector:
911
- matchLabels:
912
- app: api
913
- policyTypes:
914
- - Ingress
915
- - Egress
916
- ingress:
917
- - from:
918
- - namespaceSelector:
919
- matchLabels:
920
- name: ingress-nginx
921
- ports:
922
- - protocol: TCP
923
- port: 8080
924
- egress:
925
- - to:
926
- - podSelector:
927
- matchLabels:
928
- app: database
929
- ports:
930
- - protocol: TCP
931
- port: 5432
932
- - to:
933
- - namespaceSelector: {}
934
- podSelector:
935
- matchLabels:
936
- k8s-app: kube-dns
937
- ports:
938
- - protocol: UDP
939
- port: 53
940
- ```
941
-
942
- ## Best Practices
943
-
944
- 1. **IAM:**
945
- - Use roles instead of users where possible
946
- - Enable MFA for privileged accounts
947
- - Rotate credentials regularly
948
- - Use temporary credentials (STS)
949
- - Implement least privilege
950
-
951
- 2. **Encryption:**
952
- - Encrypt data at rest and in transit
953
- - Use customer-managed keys for sensitive data
954
- - Enable key rotation
955
- - Protect encryption keys with proper IAM policies
956
- - Use TLS 1.2 or higher
957
-
958
- 3. **Secrets:**
959
- - Never hardcode secrets in code
960
- - Use secrets management services
961
- - Rotate secrets regularly
962
- - Audit secret access
963
- - Limit secret scope
964
-
965
- 4. **Compliance:**
966
- - Enable audit logging (CloudTrail, Activity Log)
967
- - Implement compliance monitoring (Config, Policy)
968
- - Regular security assessments
969
- - Document security controls
970
- - Automated compliance checks
971
-
972
- 5. **Network Security:**
973
- - Implement defense in depth
974
- - Use security groups and NACLs
975
- - Enable VPC Flow Logs
976
- - Deploy WAF for web applications
977
- - Regular vulnerability scanning
978
-
979
- ## Anti-Patterns
980
-
981
- - Using root account for daily operations
982
- - Hardcoding credentials in code
983
- - Overly permissive IAM policies
984
- - No encryption at rest
985
- - Weak or no encryption in transit
986
- - Secrets in version control
987
- - No audit logging
988
- - Public S3 buckets with sensitive data
989
- - No MFA for privileged accounts
990
- - Ignoring security advisories