fedramp-20x-mcp 0.4.8__py3-none-any.whl

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 (55) hide show
  1. fedramp_20x_mcp/__init__.py +14 -0
  2. fedramp_20x_mcp/__main__.py +12 -0
  3. fedramp_20x_mcp/data_loader.py +673 -0
  4. fedramp_20x_mcp/prompts/__init__.py +62 -0
  5. fedramp_20x_mcp/prompts/api_design_guide.txt +432 -0
  6. fedramp_20x_mcp/prompts/ato_package_checklist.txt +75 -0
  7. fedramp_20x_mcp/prompts/audit_preparation.txt +592 -0
  8. fedramp_20x_mcp/prompts/authorization_boundary_review.txt +76 -0
  9. fedramp_20x_mcp/prompts/azure_ksi_automation.txt +997 -0
  10. fedramp_20x_mcp/prompts/continuous_monitoring_setup.txt +61 -0
  11. fedramp_20x_mcp/prompts/documentation_generator.txt +499 -0
  12. fedramp_20x_mcp/prompts/gap_analysis.txt +25 -0
  13. fedramp_20x_mcp/prompts/initial_assessment_roadmap.txt +202 -0
  14. fedramp_20x_mcp/prompts/ksi_implementation_priorities.txt +283 -0
  15. fedramp_20x_mcp/prompts/migration_from_rev5.txt +440 -0
  16. fedramp_20x_mcp/prompts/quarterly_review_checklist.txt +231 -0
  17. fedramp_20x_mcp/prompts/significant_change_assessment.txt +50 -0
  18. fedramp_20x_mcp/prompts/vendor_evaluation.txt +349 -0
  19. fedramp_20x_mcp/prompts/vulnerability_remediation_timeline.txt +45 -0
  20. fedramp_20x_mcp/server.py +270 -0
  21. fedramp_20x_mcp/templates/__init__.py +75 -0
  22. fedramp_20x_mcp/templates/bicep/afr.txt +33 -0
  23. fedramp_20x_mcp/templates/bicep/cna.txt +48 -0
  24. fedramp_20x_mcp/templates/bicep/generic.txt +47 -0
  25. fedramp_20x_mcp/templates/bicep/iam.txt +211 -0
  26. fedramp_20x_mcp/templates/bicep/mla.txt +82 -0
  27. fedramp_20x_mcp/templates/bicep/rpl.txt +44 -0
  28. fedramp_20x_mcp/templates/bicep/svc.txt +54 -0
  29. fedramp_20x_mcp/templates/code/generic_csharp.txt +65 -0
  30. fedramp_20x_mcp/templates/code/generic_powershell.txt +65 -0
  31. fedramp_20x_mcp/templates/code/generic_python.txt +63 -0
  32. fedramp_20x_mcp/templates/code/iam_csharp.txt +150 -0
  33. fedramp_20x_mcp/templates/code/iam_powershell.txt +162 -0
  34. fedramp_20x_mcp/templates/code/iam_python.txt +224 -0
  35. fedramp_20x_mcp/templates/code/mla_python.txt +124 -0
  36. fedramp_20x_mcp/templates/terraform/afr.txt +29 -0
  37. fedramp_20x_mcp/templates/terraform/cna.txt +50 -0
  38. fedramp_20x_mcp/templates/terraform/generic.txt +40 -0
  39. fedramp_20x_mcp/templates/terraform/iam.txt +219 -0
  40. fedramp_20x_mcp/templates/terraform/mla.txt +29 -0
  41. fedramp_20x_mcp/templates/terraform/rpl.txt +32 -0
  42. fedramp_20x_mcp/templates/terraform/svc.txt +46 -0
  43. fedramp_20x_mcp/tools/__init__.py +167 -0
  44. fedramp_20x_mcp/tools/definitions.py +154 -0
  45. fedramp_20x_mcp/tools/documentation.py +155 -0
  46. fedramp_20x_mcp/tools/enhancements.py +2256 -0
  47. fedramp_20x_mcp/tools/evidence.py +701 -0
  48. fedramp_20x_mcp/tools/export.py +753 -0
  49. fedramp_20x_mcp/tools/ksi.py +90 -0
  50. fedramp_20x_mcp/tools/requirements.py +163 -0
  51. fedramp_20x_mcp-0.4.8.dist-info/METADATA +877 -0
  52. fedramp_20x_mcp-0.4.8.dist-info/RECORD +55 -0
  53. fedramp_20x_mcp-0.4.8.dist-info/WHEEL +4 -0
  54. fedramp_20x_mcp-0.4.8.dist-info/entry_points.txt +2 -0
  55. fedramp_20x_mcp-0.4.8.dist-info/licenses/LICENSE +27 -0
@@ -0,0 +1,2256 @@
1
+ """
2
+ FedRAMP 20x MCP Server - Enhancements Tools
3
+
4
+ This module contains tool implementation functions for enhancements.
5
+ """
6
+ import json
7
+ import logging
8
+ from typing import Any
9
+
10
+ logger = logging.getLogger(__name__)
11
+
12
+ async def compare_with_rev4_impl(requirement_area: str, data_loader) -> str:
13
+ """
14
+ Compare FedRAMP 20x requirements to Rev 4/Rev 5 to understand changes.
15
+
16
+ Args:
17
+ requirement_area: Area to compare (e.g., "continuous monitoring", "vulnerability management",
18
+ "authorization boundary", "evidence collection")
19
+
20
+ Returns:
21
+ Key differences between Rev 4/5 and 20x for the specified area
22
+ """
23
+ comparisons = {
24
+ "continuous monitoring": """# Continuous Monitoring: Rev 4/5 vs 20x
25
+
26
+ **Rev 4/5 Approach:**
27
+ - Annual assessments by 3PAO
28
+ - Monthly ConMon scans
29
+ - Quarterly deliverables to FedRAMP PMO
30
+ - Document-based evidence packages
31
+ - POA&M tracking in Excel/Word
32
+
33
+ **FedRAMP 20x Changes:**
34
+ - **Collaborative Continuous Monitoring (CCM)**: Real-time data sharing via APIs (FRR-CCM)
35
+ - **Quarterly Reviews**: Structured review process (FRR-CCM-QR-01 through QR-11)
36
+ - **Key Security Indicators**: 72 KSIs to track continuously
37
+ - **Authorization Data Sharing**: Machine-readable data instead of documents (FRR-ADS)
38
+ - **Persistent Validation**: Continuous assessment, not annual (FRR-PVA)
39
+
40
+ **Key Requirements:**
41
+ - FRR-CCM-01 through CCM-07: Base continuous monitoring
42
+ - KSI-MLA-01: SIEM requirement
43
+ - KSI-CMT-01: Log and monitor all changes
44
+ - FRR-PVA-01 through PVA-18: Persistent validation standards""",
45
+
46
+ "vulnerability management": """# Vulnerability Management: Rev 4/5 vs 20x
47
+
48
+ **Rev 4/5 Approach:**
49
+ - 30-day remediation for High vulnerabilities
50
+ - POA&M tracking
51
+ - Monthly ConMon scans
52
+ - Risk-based decisions on false positives
53
+
54
+ **FedRAMP 20x Changes:**
55
+ - **Vulnerability Detection & Response Standard (VDR)**: Comprehensive timeframes by severity
56
+ - **Automated Detection**: Emphasis on continuous scanning
57
+ - **Risk-Based Timeframes**: Different deadlines based on impact level and CVSS
58
+ - **Exception Process**: Formal process for remediation extensions (FRR-VDR-EX)
59
+ - **Agency Reporting**: Must report vulnerabilities affecting agencies (FRR-VDR-RP)
60
+
61
+ **Key Timeframes (FRR-VDR-TF):**
62
+ - Critical/High + High Impact: 7-15 days
63
+ - Medium: 30-90 days
64
+ - Low: 180 days
65
+ - Zero-day: Immediate response required
66
+
67
+ **Key Requirements:**
68
+ - FRR-VDR-01 through VDR-11: Detection and response
69
+ - FRR-VDR-TF-HI-01 through HI-09: High impact timeframes
70
+ - KSI-PIY-03: Vulnerability Disclosure Program""",
71
+
72
+ "authorization boundary": """# Authorization Boundary: Rev 4/5 vs 20x
73
+
74
+ **Rev 4/5 Approach:**
75
+ - Static boundary in SSP
76
+ - Annual updates
77
+ - Network diagrams in Visio/Word
78
+ - Manual tracking of components
79
+
80
+ **FedRAMP 20x Changes:**
81
+ - **Minimum Assessment Scope (MAS)**: Clear definition of what must be included (FRR-MAS)
82
+ - **Information Resources**: Broader definition including non-machine resources
83
+ - **Automated Inventory**: Required automated asset discovery (KSI-PIY-01)
84
+ - **Dynamic Boundaries**: Support for elastic/cloud-native architectures
85
+ - **API-Based Documentation**: Machine-readable boundary definitions
86
+
87
+ **Must Include:**
88
+ - All systems processing Federal Customer Data
89
+ - Development/staging if they use production data
90
+ - All third-party services
91
+ - Monitoring and logging systems
92
+ - Backup/DR systems
93
+ - Non-machine resources (policies, procedures)
94
+
95
+ **Key Requirements:**
96
+ - FRR-MAS-01 through MAS-05: Minimum scope
97
+ - FRR-MAS-AY-01 through AY-06: Assessment year specifics
98
+ - KSI-PIY-01: Automated inventory
99
+ - KSI-CNA-02: Minimize attack surface""",
100
+
101
+ "evidence collection": """# Evidence Collection: Rev 4/5 vs 20x
102
+
103
+ **Rev 4/5 Approach:**
104
+ - Document-based evidence packages
105
+ - Manual collection for annual assessments
106
+ - Screenshots and exports
107
+ - Emailed to FedRAMP PMO
108
+
109
+ **FedRAMP 20x Changes:**
110
+ - **Authorization Data Sharing (ADS)**: API-based continuous data sharing (FRR-ADS)
111
+ - **Machine-Readable**: JSON/XML instead of Word/PDF
112
+ - **Automated Collection**: "Automatically if possible" per FRD-ALL-07
113
+ - **Continuous Updates**: Real-time data instead of annual snapshots
114
+ - **Key Security Indicators**: 72 KSIs define what to track
115
+
116
+ **What to Track:**
117
+ - All 72 KSI metrics continuously
118
+ - Vulnerability scan results (API)
119
+ - Configuration baselines (IaC)
120
+ - Access logs (SIEM integration)
121
+ - Change records (automated from CI/CD)
122
+ - Incident response data
123
+ - Training completion records
124
+
125
+ **Key Requirements:**
126
+ - FRR-ADS-01 through ADS-10: Data sharing standards
127
+ - FRR-KSI-01 & KSI-02: KSI tracking requirements
128
+ - KSI-MLA-05: Infrastructure as Code
129
+ - Definition FRD-ALL-07: "Regularly" means automated""",
130
+
131
+ "change management": """# Change Management: Rev 4/5 vs 20x
132
+
133
+ **Rev 4/5 Approach:**
134
+ - Change requests documented
135
+ - CAB approval process
136
+ - Significant changes reported to FedRAMP
137
+ - Manual change logs
138
+
139
+ **FedRAMP 20x Changes:**
140
+ - **Significant Change Notifications (SCN)**: Structured notification process (FRR-SCN)
141
+ - **Automated Change Tracking**: Required logging of all changes (KSI-CMT-01)
142
+ - **CI/CD Integration**: Automated testing and validation (KSI-CMT-03)
143
+ - **Change Types**: Clear categorization (routine/recurring, administrative, transformative, impact)
144
+ - **Immutable Infrastructure**: Emphasis on cloud-native patterns (KSI-CNA-04)
145
+
146
+ **What Triggers Notification:**
147
+ - New services/components
148
+ - Architecture changes
149
+ - New vulnerabilities affecting agencies
150
+ - Cryptographic changes
151
+ - Boundary modifications
152
+
153
+ **Key Requirements:**
154
+ - FRR-SCN-01 through SCN-10: Base notification requirements
155
+ - FRR-SCN-TR-01 through TR-07: Transformative changes
156
+ - KSI-CMT-01 through CMT-05: Change management KSIs
157
+ - KSI-CMT-02: Redeployment procedures""",
158
+
159
+ "incident response": """# Incident Response: Rev 4/5 vs 20x
160
+
161
+ **Rev 4/5 Approach:**
162
+ - Incident response plan in SSP
163
+ - Report to US-CERT within 1 hour
164
+ - Document lessons learned
165
+ - Annual plan testing
166
+
167
+ **FedRAMP 20x Changes:**
168
+ - **Incident Communications Procedures (ICP)**: Structured communication requirements (FRR-ICP)
169
+ - **FedRAMP Security Inbox**: Central reporting mechanism (FRR-FSI, KSI-AFR-08)
170
+ - **Continuous Logging**: All incidents logged automatically (KSI-INR-02)
171
+ - **After Action Reports**: Required for significant incidents (KSI-INR-03)
172
+ - **Agency Coordination**: Must notify affected agencies
173
+
174
+ **Reporting Requirements:**
175
+ - Use FedRAMP Security Inbox for all security reports
176
+ - Report within required timeframes based on severity
177
+ - Include impact to Federal Customer Data
178
+ - Coordinate with affected agencies
179
+
180
+ **Key Requirements:**
181
+ - FRR-ICP-01 through ICP-09: Communication procedures
182
+ - FRR-FSI-01 through FSI-16: Security inbox usage
183
+ - KSI-INR-01 through INR-03: Incident response KSIs
184
+ - KSI-MLA-02: Audit logging"""
185
+ }
186
+
187
+ area_lower = requirement_area.lower()
188
+
189
+ # Try to match the area
190
+ for key, comparison in comparisons.items():
191
+ if key in area_lower or area_lower in key:
192
+ return comparison
193
+
194
+ # No match found, provide overview
195
+ return f"""# Rev 4/5 to 20x Comparison
196
+
197
+ I don't have specific comparison data for "{requirement_area}".
198
+
199
+ **Available comparison areas:**
200
+ - continuous monitoring
201
+ - vulnerability management
202
+ - authorization boundary
203
+ - evidence collection
204
+ - change management
205
+ - incident response
206
+
207
+ **Major Changes Across All Areas:**
208
+ 1. **Document-based → API-based**: Everything shifts to machine-readable data
209
+ 2. **Annual → Continuous**: Assessment and monitoring are now continuous
210
+ 3. **Manual → Automated**: Strong emphasis on automation ("automatically if possible")
211
+ 4. **Static → Dynamic**: Support for cloud-native, elastic architectures
212
+ 5. **72 Key Security Indicators**: New framework defining what to track
213
+ 6. **Collaborative Model**: CSP, agencies, and FedRAMP share data continuously
214
+
215
+ Try searching with one of the available areas, or use search_requirements to find specific requirements."""
216
+
217
+
218
+
219
+ async def get_implementation_examples_impl(requirement_id: str, data_loader) -> str:
220
+ """
221
+ Provide practical implementation examples for a specific requirement.
222
+
223
+ Args:
224
+ requirement_id: The requirement ID (e.g., "FRR-VDR-01", "KSI-IAM-01")
225
+
226
+ Returns:
227
+ Practical implementation guidance and examples
228
+ """
229
+ examples = {
230
+ "KSI-IAM-01": """# Implementation Example: KSI-IAM-01 (Phishing-Resistant MFA)
231
+
232
+ **Requirement:** Implement phishing-resistant multi-factor authentication
233
+
234
+ **Good Implementations:**
235
+
236
+ 1. **FIDO2/WebAuthn Hardware Keys**
237
+ ```
238
+ - YubiKey 5 Series
239
+ - Google Titan Security Keys
240
+ - Configuration: Require security key for all privileged access
241
+ - No SMS or TOTP allowed for admin accounts
242
+ ```
243
+
244
+ 2. **Platform Authenticators**
245
+ ```
246
+ - Windows Hello for Business
247
+ - Touch ID/Face ID on macOS
248
+ - Android/iOS biometric authentication
249
+ ```
250
+
251
+ 3. **Cloud Provider Solutions**
252
+ ```
253
+ Azure: Conditional Access with FIDO2 keys (recommended)
254
+ Microsoft Entra ID: Passwordless authentication
255
+ Okta: FIDO2 WebAuthn support
256
+ ```
257
+
258
+ **Implementation Steps:**
259
+ 1. Purchase FIDO2 security keys for all users
260
+ 2. Configure IdP (Microsoft Entra ID, Okta, Auth0) for FIDO2
261
+ 3. Enroll users with backup keys
262
+ 4. Disable SMS/TOTP for privileged accounts
263
+ 5. Document in security procedures
264
+
265
+ **Anti-Patterns (Not Phishing-Resistant):**
266
+ ❌ SMS one-time codes
267
+ ❌ TOTP apps (Google Authenticator, Authy)
268
+ ❌ Email verification codes
269
+ ❌ Push notifications without device binding
270
+
271
+ **Evidence to Collect:**
272
+ - MFA configuration screenshots
273
+ - List of users with security keys
274
+ - IdP audit logs showing FIDO2 usage""",
275
+
276
+ "KSI-MLA-01": """# Implementation Example: KSI-MLA-01 (SIEM)
277
+
278
+ **Requirement:** Implement Security Information and Event Management
279
+
280
+ **Good Implementations:**
281
+
282
+ 1. **Cloud-Native SIEM**
283
+ ```
284
+ Microsoft Sentinel:
285
+ - Azure-native SIEM/SOAR solution
286
+ - Integrate with Microsoft Entra ID, Defender for Cloud
287
+ - Create dashboards for FedRAMP KSIs
288
+ - Set up analytics rules for security events
289
+
290
+ Splunk Cloud:
291
+ - Forward all logs via Splunk Universal Forwarder
292
+ - Create dashboards for FedRAMP KSIs
293
+ - Set up alerts for security events
294
+ ```
295
+
296
+ 2. **Log Sources to Include**
297
+ ```
298
+ ✓ Application logs (stdout/stderr)
299
+ ✓ Web server access/error logs
300
+ ✓ Database audit logs
301
+ ✓ Cloud provider logs (Azure Activity Log, Azure Resource logs)
302
+ ✓ Container/Kubernetes logs
303
+ ✓ Authentication logs (IdP)
304
+ ✓ Network flow logs
305
+ ✓ Security tool output (vulnerability scanners)
306
+ ```
307
+
308
+ 3. **Architecture Example**
309
+ ```
310
+ Application → Azure Monitor Agent → Log Analytics → Sentinel
311
+ Azure Activity Log → Log Analytics → Sentinel
312
+ Kubernetes (AKS) → Container Insights → Sentinel
313
+ ```
314
+
315
+ **Retention Requirements:**
316
+ - Security logs: 1 year minimum
317
+ - Audit logs: Per NARA requirements (usually 3+ years)
318
+ - Configure automated archival to Azure Blob Storage
319
+
320
+ **Evidence to Collect:**
321
+ - SIEM architecture diagram
322
+ - List of all log sources
323
+ - Retention policy documentation
324
+ - Sample SIEM queries/dashboards""",
325
+
326
+ "FRR-VDR-01": """# Implementation Example: FRR-VDR-01 (Vulnerability Detection)
327
+
328
+ **Requirement:** Implement automated vulnerability detection
329
+
330
+ **Good Implementations:**
331
+
332
+ 1. **Multi-Layer Scanning**
333
+ ```
334
+ Infrastructure: Microsoft Defender for Cloud, Tenable.io, Qualys
335
+ Container Images: Trivy, Microsoft Defender for Containers, Snyk
336
+ Code: GitHub Advanced Security, Snyk Code, SonarQube
337
+ Dependencies: Dependabot, Snyk, WhiteSource
338
+ ```
339
+
340
+ 2. **Continuous Scanning Pipeline**
341
+ ```
342
+ git push → GitHub Actions →
343
+ ├─ Trivy scan (container images)
344
+ ├─ Snyk scan (dependencies)
345
+ ├─ SonarQube (code quality/security)
346
+ └─ Block deployment if Critical/High found
347
+
348
+ Production: Tenable.io scans every 24 hours
349
+ ```
350
+
351
+ 3. **Configuration Example (GitHub Actions)**
352
+ ```yaml
353
+ - name: Run Trivy vulnerability scanner
354
+ uses: aquasecurity/trivy-action@master
355
+ with:
356
+ scan-type: 'image'
357
+ image-ref: ${{ env.IMAGE }}
358
+ severity: 'CRITICAL,HIGH'
359
+ exit-code: '1' # Fail build on findings
360
+ ```
361
+
362
+ **Integration with VDR Timeframes:**
363
+ ```
364
+ Critical/High → Create ticket automatically
365
+ Auto-assign to security team
366
+ Set due date per FRR-VDR-TF requirements
367
+ Send alert to Slack/PagerDuty
368
+ ```
369
+
370
+ **Evidence to Collect:**
371
+ - Vulnerability scan reports
372
+ - CI/CD pipeline configurations
373
+ - Remediation tracking (Jira/GitHub Issues)
374
+ - Scan frequency proof""",
375
+
376
+ "KSI-SVC-06": """# Implementation Example: KSI-SVC-06 (Secret Management)
377
+
378
+ **Requirement:** Implement secure secret management
379
+
380
+ **Good Implementations:**
381
+
382
+ 1. **Vault Solutions**
383
+ ```
384
+ Azure Key Vault:
385
+ - Azure-native secret management solution
386
+ - Integrate with Managed Identity for authentication
387
+ - Automatic rotation support for Azure services
388
+ - Audit all access via Azure Monitor
389
+
390
+ HashiCorp Vault:
391
+ - Store all secrets in Vault
392
+ - Use Kubernetes auth method
393
+ - Rotate secrets automatically
394
+ - Audit all access
395
+ ```
396
+
397
+ 2. **Application Integration**
398
+ ```python
399
+ # Good: Load from Azure Key Vault
400
+ from azure.identity import DefaultAzureCredential
401
+ from azure.keyvault.secrets import SecretClient
402
+
403
+ credential = DefaultAzureCredential()
404
+ client = SecretClient(vault_url="https://myvault.vault.azure.net/", credential=credential)
405
+ db_password = client.get_secret("prod-db-password").value
406
+
407
+ # Bad: Hardcoded
408
+ db_password = "MyPassword123" # ❌ Never do this
409
+ ```
410
+
411
+ 3. **Kubernetes Example (AKS)**
412
+ ```yaml
413
+ # Use Azure Key Vault Provider for Secrets Store CSI Driver
414
+ apiVersion: secrets-store.csi.x-k8s.io/v1
415
+ kind: SecretProviderClass
416
+ metadata:
417
+ name: azure-keyvault-secrets
418
+ spec:
419
+ provider: azure
420
+ parameters:
421
+ keyvaultName: "myvault"
422
+ objects: |
423
+ array:
424
+ - |
425
+ objectName: prod-db-password
426
+ objectType: secret
427
+ tenantId: "<tenant-id>"
428
+ ```
429
+
430
+ **Anti-Patterns:**
431
+ ❌ Secrets in environment variables
432
+ ❌ Secrets in source code
433
+ ❌ Secrets in container images
434
+ ❌ Secrets in ConfigMaps (use Secrets with encryption)
435
+
436
+ **Evidence to Collect:**
437
+ - Secret manager architecture
438
+ - Rotation policies
439
+ - Access audit logs
440
+ - No secrets in git (use git-secrets, truffleHog)""",
441
+
442
+ "FRR-ADS-01": """# Implementation Example: FRR-ADS-01 (Authorization Data Sharing)
443
+
444
+ **Requirement:** Share authorization data via API
445
+
446
+ **Good Implementation:**
447
+
448
+ 1. **REST API Design**
449
+ ```
450
+ GET /api/v1/authorization-boundary
451
+ GET /api/v1/vulnerabilities
452
+ GET /api/v1/ksi-metrics
453
+ GET /api/v1/incidents
454
+ GET /api/v1/change-notifications
455
+
456
+ Authentication: OAuth 2.0 or mTLS
457
+ Format: Machine-readable (JSON/XML required; OSCAL is one optional NIST standard approach)
458
+ ```
459
+
460
+ 2. **OSCAL Format Example**
461
+ ```json
462
+ {
463
+ "system-security-plan": {
464
+ "uuid": "...",
465
+ "metadata": {...},
466
+ "system-characteristics": {
467
+ "system-information": {...},
468
+ "authorization-boundary": {
469
+ "diagrams": [...],
470
+ "components": [...]
471
+ }
472
+ }
473
+ }
474
+ }
475
+ ```
476
+
477
+ 3. **Architecture**
478
+ ```
479
+ FedRAMP Portal ←→ API Gateway ←→ Lambda Functions
480
+ ├─ Read from Databases
481
+ ├─ Query SIEM
482
+ └─ Aggregate KSI data
483
+ ```
484
+
485
+ **Data to Expose:**
486
+ - System boundary (OSCAL SSP format)
487
+ - Current vulnerabilities (OSCAL Assessment Results)
488
+ - KSI metrics (JSON)
489
+ - POA&Ms (OSCAL POA&M format)
490
+ - Recent changes/incidents
491
+
492
+ **Security:**
493
+ - Require mTLS or OAuth 2.0
494
+ - Rate limiting
495
+ - Audit all access
496
+ - Only expose to FedRAMP and authorizing agencies
497
+
498
+ **Evidence to Collect:**
499
+ - API documentation (OpenAPI/Swagger)
500
+ - Authentication configuration
501
+ - Sample API responses
502
+ - Access logs"""
503
+ }
504
+
505
+ if requirement_id in examples:
506
+ return examples[requirement_id]
507
+
508
+ # Try to provide general guidance based on requirement type
509
+ if "IAM" in requirement_id:
510
+ return "For IAM requirements, see KSI-IAM-01 example using get_implementation_examples('KSI-IAM-01')"
511
+ elif "VDR" in requirement_id:
512
+ return "For VDR requirements, see FRR-VDR-01 example using get_implementation_examples('FRR-VDR-01')"
513
+ elif "MLA" in requirement_id:
514
+ return "For monitoring/logging, see KSI-MLA-01 example using get_implementation_examples('KSI-MLA-01')"
515
+ elif "SVC" in requirement_id:
516
+ return "For service requirements, see KSI-SVC-06 example using get_implementation_examples('KSI-SVC-06')"
517
+ elif "ADS" in requirement_id:
518
+ return "For data sharing, see FRR-ADS-01 example using get_implementation_examples('FRR-ADS-01')"
519
+
520
+ return f"""# Implementation Examples Not Available
521
+
522
+ I don't have specific implementation examples for {requirement_id} yet.
523
+
524
+ **Available examples:**
525
+ - KSI-IAM-01: Phishing-resistant MFA
526
+ - KSI-MLA-01: SIEM implementation
527
+ - FRR-VDR-01: Vulnerability scanning
528
+ - KSI-SVC-06: Secret management
529
+ - FRR-ADS-01: Authorization data sharing API
530
+
531
+ **General Implementation Steps:**
532
+ 1. Use get_control('{requirement_id}') to see requirement details
533
+ 2. Search for cloud-native implementations of the requirement
534
+ 3. Consider automation opportunities ("automatically if possible")
535
+ 4. Document your implementation for 3PAO assessment
536
+ 5. Set up continuous evidence collection
537
+
538
+ Use search_requirements to find related requirements."""
539
+
540
+
541
+
542
+ async def check_requirement_dependencies_impl(requirement_id: str, data_loader) -> str:
543
+ """
544
+ Show which requirements are related or dependent on a specific requirement.
545
+
546
+ Args:
547
+ requirement_id: The requirement ID to check dependencies for
548
+
549
+ Returns:
550
+ List of related and dependent requirements
551
+ """
552
+ dependencies = {
553
+ "FRR-VDR": ["KSI-PIY-03 (Vulnerability Disclosure Program)", "KSI-SVC-07 (Patching)",
554
+ "FRR-FSI (Security Inbox)", "FRR-CCM (Continuous Monitoring)"],
555
+ "FRR-ADS": ["FRR-KSI (KSI Tracking)", "FRR-CCM (Continuous Monitoring)",
556
+ "All KSI metrics must be shareable via API"],
557
+ "FRR-CCM": ["FRR-ADS (Data Sharing)", "FRR-PVA (Persistent Validation)",
558
+ "KSI-MLA-01 (SIEM)", "All 72 KSIs"],
559
+ "FRR-MAS": ["KSI-PIY-01 (Automated Inventory)", "FRR-SCN (Change Notifications)",
560
+ "KSI-CNA-02 (Attack Surface)"],
561
+ "KSI-MLA-01": ["KSI-MLA-02 through MLA-08 (Related logging requirements)",
562
+ "FRR-CCM (Continuous Monitoring)", "KSI-INR-02 (Incident Logging)"],
563
+ "KSI-IAM-01": ["KSI-IAM-02 through IAM-07 (Related identity requirements)",
564
+ "KSI-IAM-06 (Suspicious Activity)", "KSI-MLA-02 (Audit Logging)"],
565
+ "FRR-SCN": ["FRR-MAS (Boundary Changes)", "FRR-VDR (New Vulnerabilities)",
566
+ "KSI-CMT (Change Management)", "FRR-FSI (Notification Channel)"],
567
+ "FRR-ICP": ["FRR-FSI (Security Inbox)", "KSI-INR (Incident Response)",
568
+ "FRR-VDR (Vulnerability Reporting)"],
569
+ "FRR-PVA": ["FRR-CCM (Continuous Monitoring)", "KSI-CNA-08 (Persistent Assessment)",
570
+ "All 72 KSIs must be validated continuously"],
571
+ "KSI-CMT-01": ["KSI-CMT-02 through CMT-05", "FRR-SCN (Change Notifications)",
572
+ "KSI-MLA-02 (Audit Logging)", "KSI-CMT-03 (Automated Testing)"]
573
+ }
574
+
575
+ # Check for family match
576
+ for family, deps in dependencies.items():
577
+ if requirement_id.startswith(family):
578
+ result = f"# Dependencies for {requirement_id}\n\n"
579
+ result += f"**Related/Dependent Requirements:**\n\n"
580
+ for dep in deps:
581
+ result += f"- {dep}\n"
582
+ result += f"\n**Implementation Order:**\n"
583
+ result += f"These requirements should typically be implemented together or in sequence.\n"
584
+ result += f"\nUse get_control() to see details for each related requirement."
585
+ return result
586
+
587
+ return f"""# Dependencies for {requirement_id}
588
+
589
+ No specific dependency mappings available for this requirement.
590
+
591
+ **General Dependency Patterns:**
592
+
593
+ **FRR-VDR** (Vulnerability) depends on:
594
+ - Vulnerability scanning tools
595
+ - FedRAMP Security Inbox for reporting
596
+ - Patching processes
597
+
598
+ **FRR-CCM** (Continuous Monitoring) depends on:
599
+ - Authorization Data Sharing API
600
+ - All 72 KSI metrics
601
+ - SIEM implementation
602
+
603
+ **FRR-ADS** (Data Sharing) depends on:
604
+ - All requirements generating data
605
+ - API infrastructure
606
+ - OSCAL format adoption
607
+
608
+ **KSI-* (Key Security Indicators)** depend on:
609
+ - Automated collection tools
610
+ - SIEM/monitoring platform
611
+ - Continuous data pipelines
612
+
613
+ Use search_requirements to find requirements that mention '{requirement_id}'."""
614
+
615
+
616
+
617
+ async def estimate_implementation_effort_impl(requirement_id: str, data_loader) -> str:
618
+ """
619
+ Provide rough effort estimates for implementing a specific requirement.
620
+
621
+ Args:
622
+ requirement_id: The requirement ID to estimate
623
+
624
+ Returns:
625
+ Effort estimation and timeline guidance
626
+ """
627
+ estimates = {
628
+ "KSI-IAM-01": """# Effort Estimate: KSI-IAM-01 (Phishing-Resistant MFA)
629
+
630
+ **Timeline:** 2-4 weeks
631
+
632
+ **Effort Breakdown:**
633
+ - Planning & key procurement: 3-5 days
634
+ - IdP configuration: 2-3 days
635
+ - User enrollment: 1-2 weeks (depends on user count)
636
+ - Documentation: 2-3 days
637
+ - Testing & validation: 3-5 days
638
+
639
+ **Team Required:**
640
+ - Identity/Access Management engineer (lead)
641
+ - Security engineer (validation)
642
+ - IT support (user enrollment)
643
+
644
+ **Costs:**
645
+ - Hardware keys: $20-50 per user
646
+ - IdP licensing: May require higher tier (check current plan)
647
+ - Staff time: ~2-3 person-weeks
648
+
649
+ **Complexity:** Medium
650
+ **Blocker Risk:** Low - well-established technology""",
651
+
652
+ "KSI-MLA-01": """# Effort Estimate: KSI-MLA-01 (SIEM Implementation)
653
+
654
+ **Timeline:** 6-12 weeks
655
+
656
+ **Effort Breakdown:**
657
+ - SIEM selection/procurement: 2-3 weeks
658
+ - Architecture design: 1 week
659
+ - Log source integration: 3-4 weeks
660
+ - Dashboard/alert creation: 2-3 weeks
661
+ - Retention configuration: 1 week
662
+ - Documentation: 1 week
663
+ - Testing: 1-2 weeks
664
+
665
+ **Team Required:**
666
+ - Security engineer (lead)
667
+ - DevOps/SRE (log integration)
668
+ - Cloud architect (design)
669
+ - Application teams (log format standardization)
670
+
671
+ **Costs:**
672
+ - SIEM licensing: $50K-200K+/year (depends on log volume)
673
+ - Implementation services: $30K-100K (if using vendor)
674
+ - Staff time: ~8-12 person-weeks
675
+
676
+ **Complexity:** High
677
+ **Blocker Risk:** Medium - requires coordination across teams""",
678
+
679
+ "FRR-VDR-01": """# Effort Estimate: FRR-VDR-01 (Vulnerability Detection)
680
+
681
+ **Timeline:** 4-8 weeks
682
+
683
+ **Effort Breakdown:**
684
+ - Tool selection: 1-2 weeks
685
+ - Scanner deployment: 1 week
686
+ - CI/CD integration: 2-3 weeks
687
+ - Baseline scan & triage: 2-3 weeks
688
+ - Remediation workflow: 1 week
689
+ - Documentation: 1 week
690
+
691
+ **Team Required:**
692
+ - Security engineer (lead)
693
+ - DevOps engineer (CI/CD integration)
694
+ - Development team (remediation)
695
+
696
+ **Costs:**
697
+ - Scanning tools: $10K-50K/year
698
+ - Staff time: ~6-10 person-weeks
699
+
700
+ **Complexity:** Medium
701
+ **Blocker Risk:** High - initial scan will find many vulnerabilities requiring remediation""",
702
+
703
+ "FRR-ADS-01": """# Effort Estimate: FRR-ADS-01 (Authorization Data Sharing API)
704
+
705
+ **Timeline:** 12-16 weeks
706
+
707
+ **Effort Breakdown:**
708
+ - API design (OSCAL format): 2-3 weeks
709
+ - Backend development: 4-6 weeks
710
+ - Authentication/authorization: 2 weeks
711
+ - Data aggregation from sources: 3-4 weeks
712
+ - Testing: 2 weeks
713
+ - Documentation: 1-2 weeks
714
+ - FedRAMP review: 2-3 weeks
715
+
716
+ **Team Required:**
717
+ - Backend developer (lead)
718
+ - Security engineer (authentication)
719
+ - DevOps (deployment)
720
+ - Compliance PM (requirements)
721
+
722
+ **Costs:**
723
+ - Infrastructure: $500-2000/month
724
+ - Staff time: ~16-20 person-weeks
725
+
726
+ **Complexity:** High
727
+ **Blocker Risk:** High - requires all other data sources to be ready""",
728
+
729
+ "FRR-CCM": """# Effort Estimate: FRR-CCM (Collaborative Continuous Monitoring)
730
+
731
+ **Timeline:** 16-24 weeks (most complex)
732
+
733
+ **Effort Breakdown:**
734
+ - Planning & architecture: 3-4 weeks
735
+ - KSI metric collection: 6-8 weeks
736
+ - Data sharing API: 4-6 weeks
737
+ - Quarterly review process: 2 weeks
738
+ - Integration testing: 3-4 weeks
739
+ - Documentation: 2-3 weeks
740
+
741
+ **Team Required:**
742
+ - Program manager (lead)
743
+ - Security engineers (3-4)
744
+ - DevOps engineers (2-3)
745
+ - Compliance specialist
746
+
747
+ **Costs:**
748
+ - Tooling: $100K-300K/year
749
+ - Staff time: ~40-50 person-weeks
750
+
751
+ **Complexity:** Very High
752
+ **Blocker Risk:** High - depends on many other requirements
753
+
754
+ **Prerequisites:**
755
+ - SIEM (KSI-MLA-01)
756
+ - Vulnerability scanning (FRR-VDR)
757
+ - All 72 KSI collection methods
758
+ - Authorization Data Sharing API (FRR-ADS)"""
759
+ }
760
+
761
+ # Check for family-level estimates
762
+ if "CCM" in requirement_id:
763
+ return estimates.get("FRR-CCM", "See FRR-CCM for family estimate")
764
+
765
+ if requirement_id in estimates:
766
+ return estimates[requirement_id]
767
+
768
+ # Provide general guidance
769
+ return f"""# Effort Estimate: {requirement_id}
770
+
771
+ **General Estimation Factors:**
772
+
773
+ **Complexity Levels:**
774
+ - **Low (1-3 weeks)**: Configuration changes, policy updates, simple tools
775
+ - **Medium (4-8 weeks)**: Tool implementation, integration work, process changes
776
+ - **High (8-16 weeks)**: Custom development, multiple tool integration, org change
777
+ - **Very High (16+ weeks)**: Platform-wide changes, cultural shifts, complex automation
778
+
779
+ **Common Time Sinks:**
780
+ - Procurement/vendor selection: Add 2-4 weeks
781
+ - Cross-team coordination: Add 25-50% to estimates
782
+ - Legacy system integration: Add 50-100% to estimates
783
+ - Cultural/process change: Add 2-4 weeks for each team affected
784
+
785
+ **Available Detailed Estimates:**
786
+ - KSI-IAM-01: MFA (2-4 weeks)
787
+ - KSI-MLA-01: SIEM (6-12 weeks)
788
+ - FRR-VDR-01: Vulnerability scanning (4-8 weeks)
789
+ - FRR-ADS-01: Data sharing API (12-16 weeks)
790
+ - FRR-CCM: Continuous monitoring (16-24 weeks)
791
+
792
+ Use get_control('{requirement_id}') to understand scope, then estimate based on:
793
+ 1. Technical complexity
794
+ 2. Organizational readiness
795
+ 3. Existing tooling
796
+ 4. Team availability"""
797
+
798
+
799
+
800
+ async def get_cloud_native_guidance_impl(technology: str, data_loader) -> str:
801
+ """
802
+ Get cloud-native specific guidance for implementing FedRAMP 20x.
803
+
804
+ Args:
805
+ technology: Cloud-native technology (e.g., "kubernetes", "containers", "serverless", "terraform")
806
+
807
+ Returns:
808
+ Cloud-native implementation guidance
809
+ """
810
+ guidance = {
811
+ "kubernetes": """# FedRAMP 20x for Kubernetes (AKS)
812
+
813
+ **Key Requirements:**
814
+
815
+ **1. Container Scanning (FRR-VDR, KSI-PIY-05)**
816
+ ```yaml
817
+ # Scan images in CI/CD
818
+ - name: Scan container image
819
+ uses: aquasecurity/trivy-action@master
820
+ with:
821
+ severity: 'CRITICAL,HIGH'
822
+ exit-code: '1'
823
+ ```
824
+
825
+ **2. Immutable Infrastructure (KSI-CNA-04)**
826
+ - Use immutable container images
827
+ - Never SSH into pods to make changes
828
+ - Redeploy rather than patch in place
829
+ - Tag images with git commit SHA
830
+
831
+ **3. Network Policies (KSI-CNA-01, CNA-03)**
832
+ ```yaml
833
+ apiVersion: networking.k8s.io/v1
834
+ kind: NetworkPolicy
835
+ metadata:
836
+ name: deny-all-ingress
837
+ spec:
838
+ podSelector: {}
839
+ policyTypes:
840
+ - Ingress
841
+ # Then create specific allow rules
842
+ ```
843
+
844
+ **4. Secret Management (KSI-SVC-06)**
845
+ ```yaml
846
+ # Use Azure Key Vault Provider for Secrets Store CSI Driver
847
+ apiVersion: secrets-store.csi.x-k8s.io/v1
848
+ kind: SecretProviderClass
849
+ metadata:
850
+ name: azure-keyvault-secrets
851
+ spec:
852
+ provider: azure
853
+ parameters:
854
+ usePodIdentity: "true" # Or use Managed Identity
855
+ keyvaultName: "myvault"
856
+ objects: |
857
+ array:
858
+ - |
859
+ objectName: db-password
860
+ objectType: secret
861
+ tenantId: "<tenant-id>"
862
+ ```
863
+
864
+ **5. Logging (KSI-MLA-01, MLA-02)**
865
+ ```bash
866
+ # AKS automatically forwards logs to Azure Monitor/Container Insights
867
+ # Enable Container Insights on your AKS cluster:
868
+ az aks enable-addons -a monitoring -n myAKSCluster -g myResourceGroup
869
+
870
+ # Logs flow: AKS → Log Analytics → Sentinel
871
+ # Query logs in Log Analytics or Sentinel
872
+ ```
873
+
874
+ **6. Monitoring (KSI-MLA-01, KSI-CNA-08)**
875
+ - Use Azure Monitor for metrics and Container Insights
876
+ - Configure Microsoft Defender for Containers for runtime security
877
+ - Use Azure Policy for Kubernetes admission control
878
+
879
+ **7. Authorization Boundary (FRR-MAS)**
880
+ Must include:
881
+ - All namespaces
882
+ - Control plane components
883
+ - Ingress controllers
884
+ - Service mesh (if used)
885
+ - CI/CD pipelines that deploy to cluster
886
+
887
+ **Tools:**
888
+ - Trivy/Snyk: Container scanning
889
+ - Falco: Runtime security
890
+ - OPA/Kyverno: Policy enforcement
891
+ - External Secrets: Secret management
892
+ - Fluent Bit: Log forwarding""",
893
+
894
+ "containers": """# FedRAMP 20x for Containers
895
+
896
+ **Key Requirements:**
897
+
898
+ **1. Image Scanning (FRR-VDR)**
899
+ ```dockerfile
900
+ # Use minimal base images
901
+ FROM cgr.dev/chainguard/python:latest-dev AS builder
902
+ # Better than: FROM python:3.11 (many vulnerabilities)
903
+
904
+ # Scan in CI/CD
905
+ docker run aquasec/trivy image myapp:latest
906
+ ```
907
+
908
+ **2. Image Signing (KSI-SVC-05, SVC-09)**
909
+ ```bash
910
+ # Use Azure Container Registry content trust or Notation
911
+ # Enable content trust in ACR:
912
+ az acr config content-trust update --registry myregistry --status enabled
913
+
914
+ # Or use Notation with Azure Key Vault:
915
+ notation sign myregistry.azurecr.io/myapp:v1.0.0
916
+ notation verify myregistry.azurecr.io/myapp:v1.0.0
917
+ ```
918
+
919
+ **3. Runtime Security (KSI-CNA-05, CNA-08)**
920
+ - Use minimal base images (distroless, Alpine)
921
+ - Run as non-root user
922
+ - Use read-only root filesystem
923
+ - Drop all capabilities
924
+
925
+ ```dockerfile
926
+ FROM mcr.microsoft.com/cbl-mariner/distroless/minimal:2.0
927
+ USER nonroot:nonroot
928
+ COPY --chown=nonroot:nonroot app /app
929
+ ```
930
+
931
+ **4. Secret Management (KSI-SVC-06)**
932
+ ❌ Never bake secrets into images
933
+ ❌ Don't use ENV vars for secrets
934
+ ✓ Mount secrets at runtime from vault
935
+ ✓ Use cloud provider secret services
936
+
937
+ **5. Logging (KSI-MLA-02)**
938
+ ```python
939
+ # Log to stdout/stderr (12-factor)
940
+ import logging
941
+ logging.basicConfig(stream=sys.stdout, level=logging.INFO)
942
+ # Container runtime forwards to SIEM
943
+ ```
944
+
945
+ **6. Patching (KSI-SVC-07)**
946
+ - Rebuild images regularly (weekly minimum)
947
+ - Automate with Renovate/Dependabot
948
+ - Use tag pinning: `image:v1.2.3` not `image:latest`
949
+
950
+ **Best Practices:**
951
+ - Multi-stage builds to minimize size
952
+ - .dockerignore to prevent secret leakage
953
+ - Scan images before push and on schedule
954
+ - Use private registries with RBAC
955
+ - Implement image promotion (dev → staging → prod)""",
956
+
957
+ "serverless": """# FedRAMP 20x for Serverless (Azure Functions, AWS Lambda)
958
+
959
+ **Key Requirements:**
960
+
961
+ **1. Function Scanning (FRR-VDR)**
962
+ ```yaml
963
+ # Scan dependencies in CI/CD
964
+ - name: Scan Python dependencies
965
+ run: |
966
+ pip install safety
967
+ safety check
968
+
969
+ # Scan IaC templates
970
+ - name: Scan Terraform
971
+ uses: aquasecurity/tfsec-action@v1.0.0
972
+ ```
973
+
974
+ **2. Secret Management (KSI-SVC-06)**
975
+ ```python
976
+ # Azure Functions example with Managed Identity
977
+ from azure.identity import DefaultAzureCredential
978
+ from azure.keyvault.secrets import SecretClient
979
+ import azure.functions as func
980
+
981
+ def main(req: func.HttpRequest) -> func.HttpResponse:
982
+ # Use Managed Identity - no credentials needed!
983
+ credential = DefaultAzureCredential()
984
+ client = SecretClient(
985
+ vault_url="https://myvault.vault.azure.net/",
986
+ credential=credential
987
+ )
988
+ db_password = client.get_secret("prod-db-password").value
989
+ # Use password...
990
+ ```
991
+
992
+ **3. Logging (KSI-MLA-01, MLA-02)**
993
+ ```python
994
+ import json
995
+ import logging
996
+ import azure.functions as func
997
+
998
+ def main(req: func.HttpRequest, context: func.Context) -> func.HttpResponse:
999
+ # Structured logging to Application Insights
1000
+ logging.info(json.dumps({
1001
+ 'level': 'INFO',
1002
+ 'message': 'Processing request',
1003
+ 'invocation_id': context.invocation_id,
1004
+ 'user_id': req.params.get('user_id')
1005
+ }))
1006
+
1007
+ # Logs go to Application Insights → Log Analytics → Sentinel
1008
+ ```
1009
+
1010
+ **4. IAM/Authorization (KSI-IAM-05)**
1011
+ ```bicep
1012
+ // Principle of least privilege with Managed Identity
1013
+ resource functionApp 'Microsoft.Web/sites@2022-03-01' = {
1014
+ name: 'myFunctionApp'
1015
+ kind: 'functionapp'
1016
+ identity: {
1017
+ type: 'SystemAssigned'
1018
+ }
1019
+ }
1020
+
1021
+ // Grant only specific permissions needed
1022
+ resource roleAssignment 'Microsoft.Authorization/roleAssignments@2022-04-01' = {
1023
+ scope: storageAccount
1024
+ name: guid(functionApp.id, 'Storage Blob Data Reader')
1025
+ properties: {
1026
+ roleDefinitionId: subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '2a2b9908-6ea1-4ae2-8e65-a410df84e7d1')
1027
+ principalId: functionApp.identity.principalId
1028
+ }
1029
+ }
1030
+ ```
1031
+
1032
+ **5. Monitoring (KSI-CNA-08)**
1033
+ - Enable Application Insights for tracing
1034
+ - Azure Monitor metrics/alerts
1035
+ - Integrate with Sentinel (SIEM)
1036
+
1037
+ **6. Authorization Boundary (FRR-MAS)**
1038
+ Must include:
1039
+ - All Azure Functions
1040
+ - API Management/Application Gateway
1041
+ - Event sources (Service Bus, Event Grid, Blob Storage)
1042
+ - Managed Identities
1043
+ - Secrets in Key Vault
1044
+
1045
+ **7. Change Management (KSI-CMT-03)**
1046
+ ```yaml
1047
+ # Automated testing
1048
+ - name: Run tests
1049
+ run: pytest tests/
1050
+
1051
+ - name: Deploy to staging
1052
+ if: success()
1053
+ run: serverless deploy --stage staging
1054
+
1055
+ - name: Run integration tests
1056
+ run: pytest tests/integration/
1057
+
1058
+ - name: Deploy to prod
1059
+ if: success()
1060
+ run: serverless deploy --stage prod
1061
+ ```
1062
+
1063
+ **Best Practices:**
1064
+ - Use IaC (Bicep, Terraform, ARM templates)
1065
+ - Enable function versioning and deployment slots
1066
+ - Implement gradual rollouts with deployment slots
1067
+ - Set memory/timeout limits appropriately
1068
+ - Use VPC for database access""",
1069
+
1070
+ "terraform": """# FedRAMP 20x for Terraform (IaC)
1071
+
1072
+ **Key Requirements:**
1073
+
1074
+ **1. Infrastructure as Code (KSI-MLA-05)**
1075
+ ```hcl
1076
+ # Everything in Terraform with Azure Provider
1077
+ resource "azurerm_linux_virtual_machine" "web" {
1078
+ name = "web-server"
1079
+ resource_group_name = azurerm_resource_group.main.name
1080
+ location = azurerm_resource_group.main.location
1081
+ size = "Standard_D2s_v3"
1082
+
1083
+ # Network interface
1084
+ network_interface_ids = [azurerm_network_interface.web.id]
1085
+
1086
+ # Encrypted OS disk (required for FedRAMP)
1087
+ os_disk {
1088
+ caching = "ReadWrite"
1089
+ storage_account_type = "Premium_LRS"
1090
+ disk_encryption_set_id = azurerm_disk_encryption_set.main.id
1091
+ }
1092
+
1093
+ # Boot diagnostics (monitoring)
1094
+ boot_diagnostics {
1095
+ storage_account_uri = azurerm_storage_account.diagnostics.primary_blob_endpoint
1096
+ }
1097
+
1098
+ source_image_reference {
1099
+ publisher = "Canonical"
1100
+ offer = "0001-com-ubuntu-server-jammy"
1101
+ sku = "22_04-lts-gen2"
1102
+ version = "latest"
1103
+ }
1104
+
1105
+ tags = {
1106
+ Name = "web-server"
1107
+ Environment = "production"
1108
+ ManagedBy = "terraform"
1109
+ }
1110
+ }
1111
+ ```
1112
+
1113
+ **2. Configuration Scanning (FRR-VDR, KSI-PIY-05)**
1114
+ ```yaml
1115
+ # GitHub Actions
1116
+ - name: tfsec
1117
+ uses: aquasecurity/tfsec-action@v1.0.0
1118
+
1119
+ - name: Checkov
1120
+ uses: bridgecrewio/checkov-action@master
1121
+
1122
+ - name: Terraform validate
1123
+ run: terraform validate
1124
+ ```
1125
+
1126
+ **3. State File Security (KSI-SVC-06)**
1127
+ ```hcl
1128
+ # Remote state with encryption in Azure Storage
1129
+ terraform {
1130
+ backend "azurerm" {
1131
+ resource_group_name = "terraform-state-rg"
1132
+ storage_account_name = "tfstatestorage"
1133
+ container_name = "tfstate"
1134
+ key = "prod.terraform.tfstate"
1135
+
1136
+ # Enable encryption at rest (automatic with Azure Storage)
1137
+ # Use customer-managed keys for additional security
1138
+ use_azuread_auth = true # Use Managed Identity
1139
+ }
1140
+ }
1141
+ ```
1142
+
1143
+ **4. Automated Inventory (KSI-PIY-01)**
1144
+ ```bash
1145
+ # Terraform maintains inventory
1146
+ terraform state list
1147
+ terraform show -json | jq '.values.root_module.resources'
1148
+
1149
+ # Export to CMDB/asset inventory
1150
+ ```
1151
+
1152
+ **5. Change Management (KSI-CMT-01, FRR-SCN)**
1153
+ ```yaml
1154
+ # Pull request workflow
1155
+ - name: Terraform plan
1156
+ run: terraform plan -out=tfplan
1157
+
1158
+ - name: Save plan
1159
+ run: terraform show -json tfplan > plan.json
1160
+
1161
+ - name: Comment PR with changes
1162
+ uses: actions/github-script@v6
1163
+ # Shows what will change before apply
1164
+ ```
1165
+
1166
+ **6. Recommended Secure Configuration (FRR-RSC)**
1167
+ ```hcl
1168
+ # Compliance module
1169
+ module "fedramp_baseline" {
1170
+ source = "./modules/fedramp-baseline"
1171
+
1172
+ # Enforces:
1173
+ # - Encryption at rest
1174
+ # - Encryption in transit
1175
+ # - No public access
1176
+ # - Logging enabled
1177
+ # - Monitoring enabled
1178
+ }
1179
+ ```
1180
+
1181
+ **7. Documentation (FRR-MAS, FRR-ADS)**
1182
+ ```hcl
1183
+ # Self-documenting infrastructure
1184
+ resource "azurerm_linux_virtual_machine" "web" {
1185
+ # Documentation as code
1186
+ tags = {
1187
+ Name = "web-server"
1188
+ Description = "Main web application server"
1189
+ DataClass = "federal-customer-data"
1190
+ Boundary = "included"
1191
+ Owner = "engineering@example.com"
1192
+ }
1193
+ }
1194
+ ```
1195
+
1196
+ **Best Practices:**
1197
+ - Use modules for reusability
1198
+ - Enable Terraform Cloud/Enterprise for audit logs
1199
+ - Implement policy as code (Sentinel/OPA)
1200
+ - Never commit secrets (use data sources)
1201
+ - Use workspaces for environments
1202
+ - Tag all resources consistently
1203
+
1204
+ **Required Tools:**
1205
+ - tfsec: Security scanning
1206
+ - Checkov: Policy checking
1207
+ - Terraform validate: Syntax validation
1208
+ - terraform-docs: Auto-generate docs
1209
+ - Atlantis: PR automation"""
1210
+ }
1211
+
1212
+ tech_lower = technology.lower()
1213
+
1214
+ for key, content in guidance.items():
1215
+ if key in tech_lower or tech_lower in key:
1216
+ return content
1217
+
1218
+ return f"""# Cloud-Native Guidance
1219
+
1220
+ I don't have specific guidance for "{technology}".
1221
+
1222
+ **Available guidance:**
1223
+ - kubernetes
1224
+ - containers (Docker)
1225
+ - serverless (Lambda, Cloud Functions)
1226
+ - terraform (Infrastructure as Code)
1227
+
1228
+ **General Cloud-Native Principles for FedRAMP 20x:**
1229
+
1230
+ 1. **Immutable Infrastructure** (KSI-CNA-04)
1231
+ - Deploy, don't modify in place
1232
+ - Infrastructure as Code
1233
+ - Automated builds
1234
+
1235
+ 2. **Automation** (FRD-ALL-07: "automatically if possible")
1236
+ - CI/CD for all deployments
1237
+ - Automated testing
1238
+ - Automated security scanning
1239
+
1240
+ 3. **Observability** (KSI-MLA-01)
1241
+ - Centralized logging
1242
+ - Distributed tracing
1243
+ - Metrics collection
1244
+
1245
+ 4. **Security by Default**
1246
+ - Least privilege IAM
1247
+ - Network segmentation
1248
+ - Encryption everywhere
1249
+
1250
+ 5. **API-First** (FRR-ADS)
1251
+ - Everything exposed as APIs
1252
+ - Machine-readable configs
1253
+ - Programmatic access
1254
+
1255
+ Use search_requirements with your technology name to find specific requirements."""
1256
+
1257
+
1258
+
1259
+ async def validate_architecture_impl(architecture_description: str, data_loader) -> str:
1260
+ """
1261
+ Review an architecture description against FedRAMP 20x requirements.
1262
+
1263
+ Args:
1264
+ architecture_description: Description of your system architecture
1265
+
1266
+ Returns:
1267
+ Validation results and recommendations
1268
+ """
1269
+ # Analyze the description for key patterns
1270
+ desc_lower = architecture_description.lower()
1271
+
1272
+ findings = []
1273
+ recommendations = []
1274
+
1275
+ # Check for key components
1276
+ if "kubernetes" in desc_lower or "k8s" in desc_lower or "aks" in desc_lower:
1277
+ findings.append("✓ Kubernetes/AKS detected - ensure KSI-CNA-04 (Immutable Infrastructure) compliance")
1278
+ recommendations.append("Implement network policies (KSI-CNA-01) and Azure Policy for AKS")
1279
+
1280
+ if "lambda" in desc_lower or "serverless" in desc_lower or "azure functions" in desc_lower or "function app" in desc_lower:
1281
+ findings.append("✓ Serverless detected - ensure function-level identity/RBAC (KSI-IAM-05)")
1282
+ recommendations.append("Enable Application Insights and forward logs to Sentinel (SIEM)")
1283
+
1284
+ if "database" in desc_lower or "rds" in desc_lower or "postgres" in desc_lower or "azure sql" in desc_lower or "cosmos" in desc_lower:
1285
+ findings.append("✓ Database detected - ensure encryption at rest and in transit (TDE for Azure SQL)")
1286
+ recommendations.append("Verify audit logging enabled (KSI-MLA-02) and backed up (KSI-RPL-03)")
1287
+
1288
+ if "api" in desc_lower or "rest" in desc_lower:
1289
+ findings.append("✓ API detected - consider for Authorization Data Sharing (FRR-ADS)")
1290
+ recommendations.append("Implement OAuth 2.0 or mTLS authentication")
1291
+
1292
+ # Check for security concerns
1293
+ concerns = []
1294
+
1295
+ if "public" in desc_lower and "internet" in desc_lower:
1296
+ concerns.append("⚠ Public internet exposure detected - ensure WAF and DDoS protection")
1297
+ concerns.append("⚠ Review KSI-CNA-01 (Restrict Network Traffic) carefully")
1298
+
1299
+ if "ssh" in desc_lower or "bastion" in desc_lower:
1300
+ concerns.append("⚠ SSH access detected - consider Session Manager instead")
1301
+ concerns.append("⚠ If SSH required, ensure phishing-resistant MFA (KSI-IAM-01)")
1302
+
1303
+ if "password" in desc_lower or "credentials" in desc_lower:
1304
+ concerns.append("⚠ Credential management mentioned - ensure secret manager (KSI-SVC-06)")
1305
+
1306
+ # Check for missing components
1307
+ missing = []
1308
+
1309
+ if "log" not in desc_lower and "siem" not in desc_lower:
1310
+ missing.append("❌ No logging/SIEM mentioned - required by KSI-MLA-01")
1311
+
1312
+ if "monitor" not in desc_lower:
1313
+ missing.append("❌ No monitoring mentioned - required by FRR-CCM")
1314
+
1315
+ if "backup" not in desc_lower:
1316
+ missing.append("❌ No backup mentioned - required by KSI-RPL-03")
1317
+
1318
+ if "vulnerability" not in desc_lower and "scan" not in desc_lower:
1319
+ missing.append("❌ No vulnerability scanning mentioned - required by FRR-VDR")
1320
+
1321
+ # Build result
1322
+ result = f"# Architecture Validation Results\n\n"
1323
+
1324
+ if findings:
1325
+ result += "## Components Identified\n\n"
1326
+ for finding in findings:
1327
+ result += f"{finding}\n"
1328
+ result += "\n"
1329
+
1330
+ if concerns:
1331
+ result += "## Security Concerns\n\n"
1332
+ for concern in concerns:
1333
+ result += f"{concern}\n"
1334
+ result += "\n"
1335
+
1336
+ if missing:
1337
+ result += "## Missing Components\n\n"
1338
+ for item in missing:
1339
+ result += f"{item}\n"
1340
+ result += "\n"
1341
+
1342
+ if recommendations:
1343
+ result += "## Recommendations\n\n"
1344
+ for rec in recommendations:
1345
+ result += f"• {rec}\n"
1346
+ result += "\n"
1347
+
1348
+ result += """## Key Areas to Address
1349
+
1350
+ **1. Authorization Boundary (FRR-MAS)**
1351
+ - Document all components processing Federal Customer Data
1352
+ - Include dev/staging if they use prod data
1353
+ - Include all third-party services
1354
+
1355
+ **2. Continuous Monitoring (FRR-CCM)**
1356
+ - SIEM for centralized logging
1357
+ - Vulnerability scanning (automated)
1358
+ - KSI metric collection
1359
+
1360
+ **3. Data Sharing (FRR-ADS)**
1361
+ - API for sharing authorization data
1362
+ - Machine-readable format required (JSON/XML); OSCAL is one optional NIST standard approach
1363
+ - OAuth 2.0 or mTLS authentication
1364
+
1365
+ **4. Key Security Indicators**
1366
+ - Track all 72 KSIs continuously
1367
+ - Automate collection where possible
1368
+ - Integrate with SIEM/monitoring
1369
+
1370
+ Use search_requirements and get_implementation_examples for specific requirements."""
1371
+
1372
+ return result
1373
+
1374
+
1375
+
1376
+ async def get_ksi_implementation_matrix_impl(ksi_family: str, data_loader) -> str:
1377
+ """
1378
+ Get implementation matrix showing all KSIs in a family with Azure services, effort, and priority.
1379
+
1380
+ Provides engineers with a high-level view of what needs to be implemented for a KSI family,
1381
+ including recommended Azure services, complexity, and suggested implementation order.
1382
+
1383
+ Args:
1384
+ ksi_family: KSI family code (e.g., "IAM", "MLA", "CNA", "AFR", "SVC", "RPL", "TPR", "INR", "PIY", "CMT")
1385
+
1386
+ Returns:
1387
+ Implementation matrix with all KSIs in the family
1388
+ """
1389
+ await data_loader.load_data()
1390
+
1391
+ family_upper = ksi_family.upper()
1392
+
1393
+ # Get all KSIs for this family
1394
+ all_ksis = data_loader.list_all_ksi()
1395
+ family_ksis = [k for k in all_ksis if k.get('id', '').startswith(f'KSI-{family_upper}-')]
1396
+
1397
+ if not family_ksis:
1398
+ available_families = sorted(set(k.get('id', '').split('-')[1] for k in all_ksis if '-' in k.get('id', '')))
1399
+ return f"""No KSIs found for family '{ksi_family}'.
1400
+
1401
+ **Available KSI Families:**
1402
+ {', '.join(available_families)}
1403
+
1404
+ Use get_ksi_implementation_matrix with one of the above family codes."""
1405
+
1406
+ family_name_map = {
1407
+ 'IAM': 'Identity and Access Management',
1408
+ 'MLA': 'Monitoring, Logging, and Auditing',
1409
+ 'AFR': 'Automated Findings and Remediation',
1410
+ 'CNA': 'Cloud-Native Architecture',
1411
+ 'SVC': 'Service Management',
1412
+ 'RPL': 'Recovery and Planning',
1413
+ 'TPR': 'Third-Party Risk',
1414
+ 'INR': 'Incident Response',
1415
+ 'PIY': 'Privacy and Inventory',
1416
+ 'CMT': 'Change Management and Testing'
1417
+ }
1418
+
1419
+ azure_services_map = {
1420
+ 'IAM': ['Microsoft Entra ID', 'Conditional Access', 'Privileged Identity Management', 'Azure RBAC', 'Microsoft Entra ID Protection'],
1421
+ 'MLA': ['Azure Monitor', 'Log Analytics', 'Microsoft Sentinel', 'Application Insights', 'Azure Policy', 'Azure Automation'],
1422
+ 'AFR': ['Microsoft Defender for Cloud', 'Microsoft Defender for Containers', 'Azure Policy', 'Azure Security Center', 'GitHub Advanced Security'],
1423
+ 'CNA': ['Azure Kubernetes Service', 'Azure Container Registry', 'Azure Policy for AKS', 'Azure Firewall', 'Azure Virtual Network'],
1424
+ 'SVC': ['Azure Key Vault', 'Azure Automation', 'Azure Update Management', 'Azure Backup', 'Azure Monitor'],
1425
+ 'RPL': ['Azure Backup', 'Azure Site Recovery', 'Azure Blob Storage', 'Recovery Services Vault', 'Azure Policy'],
1426
+ 'TPR': ['Microsoft Purview', 'Azure Policy', 'Microsoft Defender for Cloud', 'Azure Security Center'],
1427
+ 'INR': ['Microsoft Sentinel', 'Azure Logic Apps', 'Azure Monitor', 'Microsoft Defender XDR', 'Azure Automation'],
1428
+ 'PIY': ['Microsoft Purview', 'Azure Resource Graph', 'Azure Policy', 'Microsoft Defender for Cloud', 'Azure Automation'],
1429
+ 'CMT': ['Azure DevOps', 'GitHub Actions', 'Azure Policy', 'Azure Monitor', 'Azure Automation', 'Azure Resource Manager']
1430
+ }
1431
+
1432
+ complexity_map = {
1433
+ 'KSI-IAM-01': 'Medium', 'KSI-IAM-02': 'Medium', 'KSI-IAM-03': 'Low', 'KSI-IAM-04': 'Low', 'KSI-IAM-05': 'Medium', 'KSI-IAM-06': 'High', 'KSI-IAM-07': 'Medium',
1434
+ 'KSI-MLA-01': 'High', 'KSI-MLA-02': 'High', 'KSI-MLA-03': 'Medium', 'KSI-MLA-04': 'Medium', 'KSI-MLA-05': 'High', 'KSI-MLA-06': 'Low', 'KSI-MLA-07': 'Low', 'KSI-MLA-08': 'Medium',
1435
+ 'KSI-AFR-01': 'Medium', 'KSI-AFR-02': 'High', 'KSI-AFR-03': 'Medium', 'KSI-AFR-04': 'Medium', 'KSI-AFR-05': 'Low',
1436
+ 'KSI-CNA-01': 'Medium', 'KSI-CNA-02': 'Low', 'KSI-CNA-03': 'Medium', 'KSI-CNA-04': 'High', 'KSI-CNA-05': 'Medium', 'KSI-CNA-06': 'High', 'KSI-CNA-07': 'Medium', 'KSI-CNA-08': 'High',
1437
+ 'KSI-SVC-01': 'Medium', 'KSI-SVC-02': 'Medium', 'KSI-SVC-03': 'Medium', 'KSI-SVC-04': 'High', 'KSI-SVC-05': 'High', 'KSI-SVC-06': 'High', 'KSI-SVC-07': 'Medium', 'KSI-SVC-08': 'Low', 'KSI-SVC-09': 'Medium',
1438
+ 'KSI-RPL-01': 'Medium', 'KSI-RPL-02': 'Medium', 'KSI-RPL-03': 'High', 'KSI-RPL-04': 'Medium',
1439
+ 'KSI-TPR-01': 'Low', 'KSI-TPR-02': 'Medium', 'KSI-TPR-03': 'Medium', 'KSI-TPR-04': 'High',
1440
+ 'KSI-INR-01': 'Medium', 'KSI-INR-02': 'Medium', 'KSI-INR-03': 'Low',
1441
+ 'KSI-PIY-01': 'High', 'KSI-PIY-02': 'Medium', 'KSI-PIY-03': 'Low', 'KSI-PIY-04': 'Medium', 'KSI-PIY-05': 'Medium',
1442
+ 'KSI-CMT-01': 'High', 'KSI-CMT-02': 'Medium', 'KSI-CMT-03': 'High', 'KSI-CMT-04': 'Medium', 'KSI-CMT-05': 'Low'
1443
+ }
1444
+
1445
+ priority_map = {
1446
+ 'KSI-IAM-01': 'Critical', 'KSI-MLA-01': 'Critical', 'KSI-MLA-02': 'Critical', 'KSI-AFR-01': 'Critical', 'KSI-SVC-06': 'Critical',
1447
+ 'KSI-IAM-02': 'High', 'KSI-IAM-05': 'High', 'KSI-CNA-04': 'High', 'KSI-CNA-08': 'High', 'KSI-RPL-03': 'High', 'KSI-PIY-01': 'High', 'KSI-CMT-01': 'High', 'KSI-CMT-03': 'High',
1448
+ }
1449
+
1450
+ family_name = family_name_map.get(family_upper, family_upper)
1451
+ azure_services = azure_services_map.get(family_upper, ['Microsoft Entra ID', 'Azure Monitor', 'Azure Policy'])
1452
+
1453
+ result = f"""# {family_upper} Implementation Matrix: {family_name}
1454
+
1455
+ ## Overview
1456
+
1457
+ **KSI Count:** {len(family_ksis)} KSIs in this family
1458
+ **Recommended Azure Services:**
1459
+ """
1460
+
1461
+ for service in azure_services:
1462
+ result += f"- {service}\n"
1463
+
1464
+ result += f"""
1465
+
1466
+ ## Implementation Matrix
1467
+
1468
+ | KSI ID | Name | Complexity | Priority | Estimated Effort |
1469
+ |--------|------|------------|----------|------------------|
1470
+ """
1471
+
1472
+ for ksi in sorted(family_ksis, key=lambda x: x.get('id', '')):
1473
+ ksi_id = ksi.get('id', 'N/A')
1474
+ name = ksi.get('name', 'N/A')
1475
+ complexity = complexity_map.get(ksi_id, 'Medium')
1476
+ priority = priority_map.get(ksi_id, 'Medium')
1477
+
1478
+ effort_map = {
1479
+ 'Low': '1-2 weeks',
1480
+ 'Medium': '3-4 weeks',
1481
+ 'High': '6-8 weeks'
1482
+ }
1483
+ effort = effort_map.get(complexity, '3-4 weeks')
1484
+
1485
+ result += f"| {ksi_id} | {name[:40]}... | {complexity} | {priority} | {effort} |\n"
1486
+
1487
+ result += f"""
1488
+
1489
+ ## Suggested Implementation Order
1490
+
1491
+ ### Phase 1: Foundation (Critical Priority)
1492
+ """
1493
+
1494
+ critical = [k for k in family_ksis if priority_map.get(k.get('id'), 'Medium') == 'Critical']
1495
+ if critical:
1496
+ for ksi in critical:
1497
+ result += f"1. **{ksi.get('id')}**: {ksi.get('name')}\n"
1498
+ else:
1499
+ result += "*No critical priority items in this family*\n"
1500
+
1501
+ result += f"""
1502
+
1503
+ ### Phase 2: Core Capabilities (High Priority)
1504
+ """
1505
+
1506
+ high = [k for k in family_ksis if priority_map.get(k.get('id'), 'Medium') == 'High']
1507
+ if high:
1508
+ for ksi in high:
1509
+ result += f"- {ksi.get('id')}: {ksi.get('name')}\n"
1510
+ else:
1511
+ result += "*High priority items should be addressed after critical items*\n"
1512
+
1513
+ result += f"""
1514
+
1515
+ ### Phase 3: Complete Coverage (Medium/Low Priority)
1516
+ *Implement remaining KSIs for full compliance*
1517
+
1518
+ ## Quick Start Guide
1519
+
1520
+ ### 1. Set Up Azure Infrastructure
1521
+ ```bash
1522
+ # Create resource group for {family_upper} resources
1523
+ az group create --name rg-fedramp-{family_upper.lower()} --location eastus
1524
+
1525
+ # Deploy monitoring/logging infrastructure
1526
+ az deployment group create \\
1527
+ --resource-group rg-fedramp-{family_upper.lower()} \\
1528
+ --template-file infrastructure.bicep
1529
+ ```
1530
+
1531
+ ### 2. Configure Azure Services
1532
+ """
1533
+
1534
+ for i, service in enumerate(azure_services[:3], 1):
1535
+ result += f"{i}. Configure {service}\n"
1536
+
1537
+ result += f"""
1538
+
1539
+ ### 3. Implement Evidence Collection
1540
+ ```python
1541
+ # Use provided code templates
1542
+ # Example: Collect {family_upper} evidence
1543
+ python collect_{family_upper.lower()}_evidence.py
1544
+ ```
1545
+
1546
+ ### 4. Test and Validate
1547
+ - Verify all KSIs can be demonstrated
1548
+ - Ensure evidence collection is automated
1549
+ - Test integration with Authorization Data Sharing API
1550
+
1551
+ ## Key Dependencies
1552
+
1553
+ **Prerequisites:**
1554
+ - Azure subscription with appropriate permissions
1555
+ - Microsoft Entra ID tenant
1556
+ - Log Analytics workspace
1557
+ - Azure Key Vault for secrets
1558
+
1559
+ **Related Requirements:**
1560
+ - FRR-CCM: Continuous monitoring
1561
+ - FRR-ADS: Authorization data sharing
1562
+ - FRR-KSI: KSI tracking requirements
1563
+
1564
+ ## Common Challenges
1565
+
1566
+ ### Challenge 1: Data Collection Frequency
1567
+ **Solution:** Use Azure Functions with timer triggers for automated collection
1568
+
1569
+ ### Challenge 2: Cross-Service Integration
1570
+ **Solution:** Use Managed Identities for service-to-service authentication
1571
+
1572
+ ### Challenge 3: Evidence Retention
1573
+ **Solution:** Azure Blob Storage with immutability policies
1574
+
1575
+ ## Detailed Implementation
1576
+
1577
+ For detailed implementation of specific KSIs:
1578
+ - Use `get_implementation_examples("KSI-{family_upper}-##")` for code examples
1579
+ - Use `get_infrastructure_code_for_ksi("KSI-{family_upper}-##")` for IaC templates
1580
+ - Use `generate_implementation_checklist("KSI-{family_upper}-##")` for step-by-step guide
1581
+ - Use `generate_implementation_questions("KSI-{family_upper}-##")` for planning discussions
1582
+
1583
+ ## Resources
1584
+
1585
+ - **Azure Documentation:** https://learn.microsoft.com/azure/
1586
+ - **FedRAMP 20x Docs:** https://github.com/FedRAMP/docs
1587
+ - **NIST 800-53:** https://csrc.nist.gov/publications/detail/sp/800-53/rev-5/final
1588
+
1589
+ *Generated by FedRAMP 20x MCP Server - KSI Implementation Matrix Tool*
1590
+ """
1591
+
1592
+ return result
1593
+
1594
+
1595
+
1596
+ async def generate_implementation_checklist_impl(ksi_id: str, data_loader) -> str:
1597
+ """
1598
+ Generate actionable implementation checklist for a specific KSI.
1599
+
1600
+ Provides engineers with a step-by-step checklist for implementing a KSI,
1601
+ including Azure service setup, code deployment, testing, and evidence collection.
1602
+
1603
+ Args:
1604
+ ksi_id: The KSI identifier (e.g., "KSI-IAM-01", "KSI-MLA-01")
1605
+
1606
+ Returns:
1607
+ Detailed implementation checklist with Azure-specific steps
1608
+ """
1609
+ await data_loader.load_data()
1610
+
1611
+ ksi = data_loader.get_ksi(ksi_id)
1612
+ if not ksi:
1613
+ return f"KSI '{ksi_id}' not found. Use list_ksi to see all available KSIs."
1614
+
1615
+ ksi_name = ksi.get('name', 'N/A')
1616
+ ksi_description = ksi.get('description', 'N/A')
1617
+ category = ksi.get('category', 'N/A')
1618
+
1619
+ result = f"""# Implementation Checklist: {ksi_id}
1620
+
1621
+ ## {ksi_name}
1622
+
1623
+ **Category:** {category}
1624
+ **Description:** {ksi_description}
1625
+
1626
+ ---
1627
+
1628
+ ## Pre-Implementation Checklist
1629
+
1630
+ ### Prerequisites
1631
+ - [ ] Azure subscription with Owner or Contributor role
1632
+ - [ ] Microsoft Entra ID Global Administrator access (if IAM changes needed)
1633
+ - [ ] Azure CLI installed and authenticated (`az login`)
1634
+ - [ ] Development environment set up (VS Code, Azure extensions)
1635
+ - [ ] Git repository for Infrastructure as Code
1636
+
1637
+ ### Planning
1638
+ - [ ] Read FedRAMP 20x requirement for {ksi_id}
1639
+ - [ ] Identify which systems/services are in scope
1640
+ - [ ] Review related KSIs and requirements
1641
+ - [ ] Determine evidence collection frequency
1642
+ - [ ] Get stakeholder approval for implementation approach
1643
+
1644
+ ### Resource Preparation
1645
+ - [ ] Create resource group: `rg-fedramp-{ksi_id.lower().replace('-', '')}`
1646
+ - [ ] Set up Azure Key Vault for secrets
1647
+ - [ ] Create Log Analytics workspace (if not already exists)
1648
+ - [ ] Set up Azure Blob Storage for evidence
1649
+
1650
+ ---
1651
+
1652
+ ## Implementation Steps
1653
+
1654
+ ### Step 1: Infrastructure Deployment
1655
+
1656
+ **1.1 Create IaC Templates**
1657
+ - [ ] Generate Bicep template: `get_infrastructure_code_for_ksi("{ksi_id}", "bicep")`
1658
+ - [ ] Review and customize template for your environment
1659
+ - [ ] Add to git repository
1660
+ - [ ] Create parameters file with environment-specific values
1661
+
1662
+ **1.2 Deploy Infrastructure**
1663
+ ```bash
1664
+ # Create resource group
1665
+ az group create \\
1666
+ --name rg-fedramp-{ksi_id.lower()} \\
1667
+ --location eastus
1668
+
1669
+ # Deploy Bicep template
1670
+ az deployment group create \\
1671
+ --resource-group rg-fedramp-{ksi_id.lower()} \\
1672
+ --template-file main.bicep \\
1673
+ --parameters @parameters.json
1674
+
1675
+ # Verify deployment
1676
+ az deployment group show \\
1677
+ --resource-group rg-fedramp-{ksi_id.lower()} \\
1678
+ --name main
1679
+ ```
1680
+
1681
+ - [ ] Infrastructure deployed successfully
1682
+ - [ ] All resources visible in Azure Portal
1683
+ - [ ] No deployment errors or warnings
1684
+
1685
+ ### Step 2: Azure Service Configuration
1686
+
1687
+ """
1688
+
1689
+ # Add family-specific configuration steps
1690
+ family = ksi_id.split('-')[1] if '-' in ksi_id else ''
1691
+
1692
+ if family == 'IAM':
1693
+ result += """**2.1 Configure Microsoft Entra ID**
1694
+ - [ ] Enable Conditional Access policies
1695
+ - [ ] Configure MFA settings (phishing-resistant required)
1696
+ - [ ] Set up Privileged Identity Management (PIM) for admin roles
1697
+ - [ ] Configure Azure RBAC for least privilege
1698
+ - [ ] Enable Identity Protection
1699
+
1700
+ **2.2 Set Up Monitoring**
1701
+ - [ ] Enable diagnostic settings for Entra ID
1702
+ - [ ] Forward sign-in logs to Log Analytics
1703
+ - [ ] Forward audit logs to Log Analytics
1704
+ - [ ] Configure alerts for suspicious activity
1705
+
1706
+ """
1707
+ elif family == 'MLA':
1708
+ result += """**2.1 Configure Azure Monitor & Sentinel**
1709
+ - [ ] Deploy Microsoft Sentinel workspace
1710
+ - [ ] Enable all relevant data connectors
1711
+ - [ ] Configure log retention (1 year minimum)
1712
+ - [ ] Set up Log Analytics workspace
1713
+ - [ ] Enable diagnostic settings for all Azure resources
1714
+
1715
+ **2.2 Configure Logging**
1716
+ - [ ] Configure Application Insights for applications
1717
+ - [ ] Set up diagnostic settings for each resource
1718
+ - [ ] Forward logs to Log Analytics
1719
+ - [ ] Configure log retention policies
1720
+ - [ ] Test log ingestion
1721
+
1722
+ """
1723
+ elif family == 'AFR':
1724
+ result += """**2.1 Configure Microsoft Defender**
1725
+ - [ ] Enable Microsoft Defender for Cloud
1726
+ - [ ] Enable Defender for Containers
1727
+ - [ ] Enable Defender for Servers
1728
+ - [ ] Configure vulnerability assessment
1729
+ - [ ] Set up security recommendations
1730
+
1731
+ **2.2 Configure Vulnerability Scanning**
1732
+ - [ ] Enable Microsoft Defender for Container Registries
1733
+ - [ ] Configure GitHub Advanced Security (if using GitHub)
1734
+ - [ ] Set up CI/CD pipeline scanning
1735
+ - [ ] Configure scan frequency
1736
+ - [ ] Set up alerting for findings
1737
+
1738
+ """
1739
+ elif family == 'SVC':
1740
+ result += """**2.1 Configure Azure Key Vault**
1741
+ - [ ] Deploy Azure Key Vault
1742
+ - [ ] Configure access policies or RBAC
1743
+ - [ ] Enable soft delete and purge protection
1744
+ - [ ] Configure diagnostic logging
1745
+ - [ ] Set up secret rotation policies
1746
+
1747
+ **2.2 Configure Automation**
1748
+ - [ ] Create Azure Automation account
1749
+ - [ ] Set up Managed Identity
1750
+ - [ ] Configure runbooks for secret rotation
1751
+ - [ ] Test automation workflows
1752
+ - [ ] Configure schedules
1753
+
1754
+ """
1755
+ else:
1756
+ result += """**2.1 Configure Azure Services**
1757
+ - [ ] Deploy required Azure services
1758
+ - [ ] Configure service-specific settings
1759
+ - [ ] Enable diagnostic logging
1760
+ - [ ] Set up Managed Identities
1761
+ - [ ] Configure networking and security
1762
+
1763
+ **2.2 Set Up Monitoring**
1764
+ - [ ] Enable Azure Monitor
1765
+ - [ ] Configure Log Analytics workspace
1766
+ - [ ] Set up alerting rules
1767
+ - [ ] Configure dashboards
1768
+ - [ ] Test data collection
1769
+
1770
+ """
1771
+
1772
+ result += f"""### Step 3: Code Deployment
1773
+
1774
+ **3.1 Generate Evidence Collection Code**
1775
+ - [ ] Generate code template: `get_evidence_collection_code("{ksi_id}", "python")`
1776
+ - [ ] Review and customize for your environment
1777
+ - [ ] Add to git repository
1778
+ - [ ] Set up CI/CD pipeline
1779
+
1780
+ **3.2 Deploy Collection Function**
1781
+ ```bash
1782
+ # Deploy Azure Function
1783
+ func azure functionapp publish func-{ksi_id.lower()}-collector
1784
+
1785
+ # Verify deployment
1786
+ az functionapp show \\
1787
+ --name func-{ksi_id.lower()}-collector \\
1788
+ --resource-group rg-fedramp-{ksi_id.lower()}
1789
+
1790
+ # Test function
1791
+ curl https://func-{ksi_id.lower()}-collector.azurewebsites.net/api/health
1792
+ ```
1793
+
1794
+ - [ ] Function deployed successfully
1795
+ - [ ] Function app is running
1796
+ - [ ] Managed Identity configured
1797
+ - [ ] Application Insights enabled
1798
+
1799
+ **3.3 Configure Collection Schedule**
1800
+ - [ ] Set up timer trigger (daily/weekly based on requirement)
1801
+ - [ ] Configure retry policies
1802
+ - [ ] Set up error alerting
1803
+ - [ ] Test scheduled execution
1804
+
1805
+ ### Step 4: Testing & Validation
1806
+
1807
+ **4.1 Unit Testing**
1808
+ - [ ] Test evidence collection logic
1809
+ - [ ] Test data formatting
1810
+ - [ ] Test error handling
1811
+ - [ ] Test authentication (Managed Identity)
1812
+ - [ ] All tests passing
1813
+
1814
+ **4.2 Integration Testing**
1815
+ - [ ] Test end-to-end evidence collection
1816
+ - [ ] Verify evidence stored correctly in Blob Storage
1817
+ - [ ] Test evidence retrieval
1818
+ - [ ] Verify evidence format (JSON/OSCAL)
1819
+ - [ ] Test API integration (if applicable)
1820
+
1821
+ **4.3 Compliance Validation**
1822
+ - [ ] Evidence demonstrates compliance with {ksi_id}
1823
+ - [ ] Evidence is complete and accurate
1824
+ - [ ] Evidence collection is automated
1825
+ - [ ] Evidence retention meets requirements (1+ years)
1826
+ - [ ] Evidence is accessible via API (FRR-ADS)
1827
+
1828
+ **4.4 Security Testing**
1829
+ - [ ] No secrets in code or logs
1830
+ - [ ] All secrets stored in Azure Key Vault
1831
+ - [ ] Managed Identity working correctly
1832
+ - [ ] Least privilege access configured
1833
+ - [ ] Network security properly configured
1834
+
1835
+ ### Step 5: Documentation
1836
+
1837
+ **5.1 Technical Documentation**
1838
+ - [ ] Architecture diagram created
1839
+ - [ ] Data flow diagram created
1840
+ - [ ] Infrastructure documented (IaC in git)
1841
+ - [ ] API documentation (if applicable)
1842
+ - [ ] Runbook for troubleshooting
1843
+
1844
+ **5.2 Compliance Documentation**
1845
+ - [ ] Control implementation statement written
1846
+ - [ ] Evidence collection procedure documented
1847
+ - [ ] Add to System Security Plan (SSP)
1848
+ - [ ] Update Authorization Boundary diagram
1849
+ - [ ] Document in Configuration Management Plan
1850
+
1851
+ **5.3 Operational Documentation**
1852
+ - [ ] Daily operations runbook
1853
+ - [ ] Escalation procedures
1854
+ - [ ] Backup and recovery procedures
1855
+ - [ ] Contact information for support
1856
+
1857
+ ### Step 6: Evidence Collection Setup
1858
+
1859
+ **6.1 Configure Evidence Storage**
1860
+ - [ ] Blob Storage container created
1861
+ - [ ] Immutability policy configured
1862
+ - [ ] Lifecycle management configured
1863
+ - [ ] Access policies configured
1864
+ - [ ] Encryption verified
1865
+
1866
+ **6.2 Test Evidence Collection**
1867
+ ```bash
1868
+ # Manually trigger collection
1869
+ az functionapp function invoke \\
1870
+ --name func-{ksi_id.lower()}-collector \\
1871
+ --function-name CollectEvidence \\
1872
+ --resource-group rg-fedramp-{ksi_id.lower()}
1873
+
1874
+ # Verify evidence stored
1875
+ az storage blob list \\
1876
+ --account-name st{ksi_id.lower().replace('-', '')}evidence \\
1877
+ --container-name evidence
1878
+ ```
1879
+
1880
+ - [ ] Evidence collection executed successfully
1881
+ - [ ] Evidence file created in Blob Storage
1882
+ - [ ] Evidence contains expected data
1883
+ - [ ] Evidence format is correct
1884
+
1885
+ **6.3 Set Up Evidence Monitoring**
1886
+ - [ ] Configure alerts for collection failures
1887
+ - [ ] Create dashboard for collection status
1888
+ - [ ] Set up weekly evidence review
1889
+ - [ ] Document evidence access procedures
1890
+
1891
+ ### Step 7: Integration with FRR-ADS
1892
+
1893
+ **7.1 API Setup**
1894
+ - [ ] Expose evidence via Authorization Data Sharing API
1895
+ - [ ] Configure authentication (OAuth 2.0 or mTLS)
1896
+ - [ ] Test API endpoints
1897
+ - [ ] Document API for FedRAMP PMO
1898
+ - [ ] Provide API credentials to authorized users
1899
+
1900
+ **7.2 API Testing**
1901
+ - [ ] Test GET requests for evidence
1902
+ - [ ] Test authentication
1903
+ - [ ] Test rate limiting
1904
+ - [ ] Test error handling
1905
+ - [ ] All API tests passing
1906
+
1907
+ ---
1908
+
1909
+ ## Post-Implementation Checklist
1910
+
1911
+ ### Monitoring & Maintenance
1912
+ - [ ] Set up alerts for collection failures
1913
+ - [ ] Configure weekly evidence reviews
1914
+ - [ ] Schedule quarterly access reviews
1915
+ - [ ] Plan for infrastructure updates
1916
+ - [ ] Document lessons learned
1917
+
1918
+ ### Compliance Validation
1919
+ - [ ] Internal audit completed
1920
+ - [ ] All evidence requirements met
1921
+ - [ ] Documentation complete and approved
1922
+ - [ ] 3PAO review scheduled (if applicable)
1923
+ - [ ] Stakeholders notified of completion
1924
+
1925
+ ### Continuous Improvement
1926
+ - [ ] Monitor collection performance
1927
+ - [ ] Optimize collection efficiency
1928
+ - [ ] Address any gaps identified
1929
+ - [ ] Update documentation as needed
1930
+ - [ ] Plan for future enhancements
1931
+
1932
+ ---
1933
+
1934
+ ## Troubleshooting Common Issues
1935
+
1936
+ ### Issue: Evidence collection failing
1937
+ **Troubleshooting steps:**
1938
+ 1. Check Azure Function logs in Application Insights
1939
+ 2. Verify Managed Identity has correct permissions
1940
+ 3. Test connectivity to data sources
1941
+ 4. Check for API rate limiting
1942
+ 5. Review error messages in logs
1943
+
1944
+ ### Issue: Evidence format incorrect
1945
+ **Troubleshooting steps:**
1946
+ 1. Review evidence specification
1947
+ 2. Check data transformation logic
1948
+ 3. Validate against OSCAL schema (if using OSCAL)
1949
+ 4. Test with sample data
1950
+ 5. Review FedRAMP requirements
1951
+
1952
+ ### Issue: API authentication failing
1953
+ **Troubleshooting steps:**
1954
+ 1. Verify credentials/tokens
1955
+ 2. Check token expiration
1956
+ 3. Review access policies
1957
+ 4. Test authentication independently
1958
+ 5. Check network connectivity
1959
+
1960
+ ---
1961
+
1962
+ ## Success Criteria
1963
+
1964
+ ✅ All checklist items completed
1965
+ ✅ Evidence collected automatically on schedule
1966
+ ✅ Evidence demonstrates compliance with {ksi_id}
1967
+ ✅ Documentation complete and approved
1968
+ ✅ Team trained on operation and troubleshooting
1969
+ ✅ Integration with FRR-ADS API working
1970
+ ✅ Monitoring and alerting configured
1971
+ ✅ Internal audit passed
1972
+
1973
+ ---
1974
+
1975
+ ## Next Steps
1976
+
1977
+ 1. **Mark completion:** Update project tracker with completion status
1978
+ 2. **Schedule review:** Set up quarterly review of implementation
1979
+ 3. **Train team:** Ensure all team members understand operations
1980
+ 4. **Document lessons:** Capture lessons learned for future KSIs
1981
+ 5. **Move to next KSI:** Use `get_ksi_implementation_matrix` to identify next priority
1982
+
1983
+ ---
1984
+
1985
+ ## Related Tools
1986
+
1987
+ - `get_implementation_examples("{ksi_id}")` - Get code examples
1988
+ - `get_infrastructure_code_for_ksi("{ksi_id}")` - Get IaC templates
1989
+ - `get_evidence_collection_code("{ksi_id}")` - Get collection code
1990
+ - `generate_implementation_questions("{ksi_id}")` - Planning questions
1991
+ - `get_cloud_native_guidance("azure")` - Azure-specific guidance
1992
+
1993
+ *Generated by FedRAMP 20x MCP Server - Implementation Checklist Tool*
1994
+ """
1995
+
1996
+ return result
1997
+
1998
+
1999
+
2000
+ async def generate_implementation_questions_impl(requirement_id: str, data_loader) -> str:
2001
+ """
2002
+ Generate strategic interview questions for product managers and engineers.
2003
+
2004
+ Helps teams think through FedRAMP 20x implementation considerations by providing
2005
+ thoughtful questions about architecture, operations, compliance, and trade-offs.
2006
+
2007
+ Works with both requirements (e.g., "FRR-CCM-01") and KSIs (e.g., "KSI-IAM-01").
2008
+
2009
+ Args:
2010
+ requirement_id: The requirement or KSI ID to generate questions for
2011
+
2012
+ Returns:
2013
+ Strategic questions organized by stakeholder role and concern area
2014
+ """
2015
+ await data_loader.load_data()
2016
+
2017
+ # Try to get as requirement first, then as KSI
2018
+ item = data_loader.get_control(requirement_id)
2019
+ if not item:
2020
+ item = data_loader.get_ksi(requirement_id)
2021
+
2022
+ if not item:
2023
+ return f"Requirement or KSI '{requirement_id}' not found. Please check the ID format (e.g., 'FRR-CCM-01' or 'KSI-IAM-01')."
2024
+
2025
+ title = item.get('title', item.get('name', 'N/A'))
2026
+ description = item.get('description', item.get('statement', 'N/A'))
2027
+ family = item.get('family', 'N/A')
2028
+
2029
+ result = f"""# Implementation Questions for {requirement_id}
2030
+
2031
+ ## Requirement Overview
2032
+ **Title:** {title}
2033
+ **Family:** {family}
2034
+ **Description:** {description}
2035
+
2036
+ ---
2037
+
2038
+ ## Strategic Questions for Product Managers
2039
+
2040
+ ### Business & Risk Perspective:
2041
+ 1. **Business Impact**: How will implementing this requirement affect our product roadmap and time-to-market?
2042
+
2043
+ 2. **Customer Value**: Which of our federal customers will benefit most from this compliance capability?
2044
+
2045
+ 3. **Competitive Position**: How does implementing this requirement differentiate us in the FedRAMP marketplace?
2046
+
2047
+ 4. **Resource Allocation**: What trade-offs are we making by prioritizing this requirement over other features?
2048
+
2049
+ 5. **Cost-Benefit**: What's the total cost of ownership (TCO) for implementing and maintaining this control long-term?
2050
+
2051
+ ### Planning & Prioritization:
2052
+ 6. **Dependencies**: What other requirements or KSIs must be implemented before this one?
2053
+
2054
+ 7. **Phasing**: Should this be implemented in phases, or does it require a complete solution from day one?
2055
+
2056
+ 8. **Quick Wins**: Are there interim measures we can implement to partially satisfy this requirement faster?
2057
+
2058
+ 9. **Vendor Support**: Do Azure or Microsoft 365 services already provide capabilities we can leverage?
2059
+
2060
+ 10. **Documentation**: What policy and procedure documentation will we need to create and maintain?
2061
+
2062
+ ---
2063
+
2064
+ ## Technical Questions for Engineers
2065
+
2066
+ ### Architecture & Design:
2067
+ 11. **System Design**: How does this requirement influence our overall system architecture?
2068
+
2069
+ 12. **Azure Services**: Which Azure or Microsoft 365 services can help us meet this requirement natively?
2070
+
2071
+ 13. **Automation**: What aspects of this requirement can be automated vs. require manual processes?
2072
+
2073
+ 14. **Scalability**: Will our implementation scale as our customer base and data volumes grow?
2074
+
2075
+ 15. **Performance**: What performance impacts should we expect from implementing this control?
2076
+
2077
+ ### Implementation Details:
2078
+ 16. **Integration**: How does this integrate with our existing security and compliance infrastructure?
2079
+
2080
+ 17. **Configuration**: What configuration management is needed to maintain consistency across environments?
2081
+
2082
+ 18. **Monitoring**: How will we monitor and alert on compliance status for this requirement?
2083
+
2084
+ 19. **Testing**: How can we test that this control is working effectively? What does "good" look like?
2085
+
2086
+ 20. **Evidence**: What evidence needs to be collected, and how will we automate its collection?
2087
+
2088
+ ### Operations & Maintenance:
2089
+ 21. **Day-to-Day**: What are the ongoing operational tasks required to maintain this control?
2090
+
2091
+ 22. **Troubleshooting**: What failure modes should we anticipate, and how will we diagnose issues?
2092
+
2093
+ 23. **Updates**: How will updates to Azure services or our application affect this control?
2094
+
2095
+ 24. **Disaster Recovery**: How does this requirement fit into our disaster recovery and business continuity plans?
2096
+
2097
+ 25. **Technical Debt**: What technical debt might we accumulate with a quick implementation vs. a more robust solution?
2098
+
2099
+ ---
2100
+
2101
+ ## Cross-Functional Questions
2102
+
2103
+ ### Security & Compliance:
2104
+ 26. **Defense in Depth**: How does this control work with other controls to provide defense in depth?
2105
+
2106
+ 27. **Audit Trail**: What audit trails are required, and how long must we retain them?
2107
+
2108
+ 28. **Access Control**: Who needs access to configure, monitor, or modify this control?
2109
+
2110
+ 29. **Incident Response**: How does this requirement impact our incident response procedures?
2111
+
2112
+ 30. **Continuous Monitoring**: How will we continuously validate compliance with this requirement?
2113
+
2114
+ ### User Experience:
2115
+ 31. **User Impact**: Will implementing this requirement affect user experience or workflows?
2116
+
2117
+ 32. **Training**: What training will users or administrators need for this control?
2118
+
2119
+ 33. **Communication**: How should we communicate changes to customers and stakeholders?
2120
+
2121
+ 34. **Support**: What support burden will this create for our customer success team?
2122
+
2123
+ 35. **Accessibility**: Does this control maintain accessibility and usability standards?
2124
+
2125
+ ---
2126
+
2127
+ ## Azure-Specific Considerations
2128
+
2129
+ ### Azure Implementation:
2130
+ """
2131
+
2132
+ # Add Azure-specific questions based on family/keywords
2133
+ keywords = title.lower() + ' ' + description.lower()
2134
+
2135
+ if any(word in keywords for word in ['identity', 'access', 'authentication', 'authorization']):
2136
+ result += """
2137
+ 36. **Entra ID Configuration**: How should we configure Microsoft Entra ID to support this requirement?
2138
+
2139
+ 37. **RBAC Design**: What Azure RBAC roles and assignments are needed?
2140
+
2141
+ 38. **Conditional Access**: Should we implement Conditional Access policies for this control?
2142
+
2143
+ 39. **Privileged Access**: Do we need Privileged Identity Management (PIM) for just-in-time access?
2144
+ """
2145
+
2146
+ if any(word in keywords for word in ['monitor', 'log', 'audit', 'visibility', 'detect']):
2147
+ result += """
2148
+ 40. **Log Analytics**: What logs need to be sent to Azure Monitor and retained for how long?
2149
+
2150
+ 41. **Sentinel Integration**: Should Microsoft Sentinel be used for threat detection or compliance monitoring?
2151
+
2152
+ 42. **Alerting Strategy**: What alerts should be configured, and who should receive them?
2153
+
2154
+ 43. **Dashboard Design**: What compliance dashboards should we create for visibility?
2155
+ """
2156
+
2157
+ if any(word in keywords for word in ['configuration', 'policy', 'governance', 'compliance']):
2158
+ result += """
2159
+ 44. **Azure Policy**: What Azure Policies should be created to enforce this requirement?
2160
+
2161
+ 45. **Blueprints**: Should we use Azure Blueprints to package this control for repeatable deployment?
2162
+
2163
+ 46. **Management Groups**: How should management group hierarchy support this control?
2164
+
2165
+ 47. **Resource Tags**: What tagging strategy is needed for compliance tracking?
2166
+ """
2167
+
2168
+ if any(word in keywords for word in ['security', 'vulnerability', 'threat', 'protection']):
2169
+ result += """
2170
+ 48. **Defender Configuration**: How should Microsoft Defender for Cloud be configured?
2171
+
2172
+ 49. **Security Baseline**: Does this align with Azure Security Benchmark recommendations?
2173
+
2174
+ 50. **Vulnerability Scanning**: What vulnerability scanning tools should be integrated?
2175
+
2176
+ 51. **Penetration Testing**: How will we conduct penetration testing for this control?
2177
+ """
2178
+
2179
+ if any(word in keywords for word in ['data', 'encryption', 'confidential', 'protection']):
2180
+ result += """
2181
+ 52. **Key Vault**: How should Azure Key Vault be used for secrets and key management?
2182
+
2183
+ 53. **Encryption Strategy**: What data needs encryption at rest and in transit?
2184
+
2185
+ 54. **Data Classification**: How does data classification affect implementation?
2186
+
2187
+ 55. **Data Residency**: Are there data residency requirements that impact Azure region selection?
2188
+ """
2189
+
2190
+ result += """
2191
+
2192
+ ---
2193
+
2194
+ ## Decision Framework
2195
+
2196
+ ### Must Answer Before Implementation:
2197
+ - [ ] Have we clearly defined what "compliance" means for this requirement?
2198
+ - [ ] Do we have executive sponsorship and budget approval?
2199
+ - [ ] Have we identified all affected systems and data flows?
2200
+ - [ ] Do we know who is accountable for this control's success?
2201
+ - [ ] Have we validated our approach with a FedRAMP expert or 3PAO?
2202
+
2203
+ ### Success Criteria:
2204
+ - [ ] Control can be demonstrated to work as designed
2205
+ - [ ] Evidence collection is automated and reliable
2206
+ - [ ] Documentation is complete and approved
2207
+ - [ ] Team is trained on operation and troubleshooting
2208
+ - [ ] Control passes internal testing and review
2209
+
2210
+ ### Red Flags to Watch For:
2211
+ - [ ] No clear owner or accountability for the control
2212
+ - [ ] Significant manual processes that don't scale
2213
+ - [ ] Heavy reliance on undocumented configurations
2214
+ - [ ] No monitoring or alerting for control failures
2215
+ - [ ] Implementation differs significantly from documented design
2216
+
2217
+ ---
2218
+
2219
+ ## Next Steps
2220
+
2221
+ 1. **Research Phase**: Gather information about Azure capabilities and best practices
2222
+ 2. **Design Phase**: Create architecture diagrams and implementation plans
2223
+ 3. **Review Phase**: Get design reviewed by security, compliance, and architecture teams
2224
+ 4. **Prototype Phase**: Build proof-of-concept in non-production environment
2225
+ 5. **Test Phase**: Validate control works as designed and collects proper evidence
2226
+ 6. **Document Phase**: Create all required policies, procedures, and runbooks
2227
+ 7. **Deploy Phase**: Implement in production with proper change management
2228
+ 8. **Validate Phase**: Conduct internal audit to verify compliance
2229
+ 9. **Monitor Phase**: Continuously monitor and report on control effectiveness
2230
+
2231
+ ---
2232
+
2233
+ ## Recommended Resources
2234
+
2235
+ ### Microsoft Documentation:
2236
+ - Azure Security Benchmark: https://learn.microsoft.com/en-us/security/benchmark/azure/
2237
+ - Azure Well-Architected Framework: https://learn.microsoft.com/en-us/azure/well-architected/
2238
+ - FedRAMP on Azure: https://learn.microsoft.com/en-us/azure/compliance/offerings/offering-fedramp
2239
+
2240
+ ### FedRAMP Resources:
2241
+ - FedRAMP.gov: https://www.fedramp.gov/
2242
+ - FedRAMP 20x Documentation: https://github.com/FedRAMP/docs
2243
+ - FedRAMP Marketplace: https://marketplace.fedramp.gov/
2244
+
2245
+ ### Community:
2246
+ - Azure Community: https://techcommunity.microsoft.com/t5/azure/ct-p/Azure
2247
+ - FedRAMP PMO: https://www.fedramp.gov/program-basics/
2248
+
2249
+ ---
2250
+
2251
+ *Use these questions to facilitate team discussions, planning sessions, and design reviews. The goal is to ensure thorough thinking about implementation before committing resources.*
2252
+
2253
+ *Generated by FedRAMP 20x MCP Server - Implementation Questions Tool*
2254
+ """
2255
+
2256
+ return result