本文介绍根据支付卡行业数据安全标准(PCI DSS 4.0.1)配置的 Azure Kubernetes 服务(AKS)群集的安全意识培训注意事项。
本文是一系列文章的其中一篇。 阅读 简介。
PCI DSS 4.0.1 要求对所有有权访问持卡人数据环境(CDE)的人员提供全面的安全意识和培训。 此体系结构和实现侧重于基础结构,而不是工作负荷。 本文提供了一般注意事项和最佳做法,可帮助你做出设计决策。 请遵循官方 PCI-DSS 4.0.1 标准中的要求,并在适用的情况下使用本文作为其他信息。
重要
该指南和随附的实现基于中心辐射型网络拓扑的 AKS 基线体系结构为基础。 中心虚拟网络包含用于控制出口流量的防火墙、来自本地网络的网关流量,以及用于维护的第三个网络。 辐射虚拟网络包含 AKS 群集,该群集提供卡持有者环境(CDE),并托管 PCI DSS 工作负荷。
参考实现:适用于 PCI DSS 4.0.1 的受管制工作负载参考实现的 Azure Kubernetes 服务(AKS)基线群集目前正在更新,即将推出。 此实现将演示一个受监管的基础结构,该基础结构演示了 CDE 中各种网络安全控制的使用。 这包括本机到 Azure 的网络控件,以及 Kubernetes 的本机控制。 它还将包括一个应用程序,用于演示环境与示例工作负荷之间的交互。 本文的重点在于基础结构。 该示例不会指示实际 PCI-DSS 4.0.1 工作负荷。
维护信息安全策略
注释
本文已针对 PCI DSS 4.0.1 进行了更新。 重大更改包括安全意识培训的扩展要求、增强对云和容器安全性的要求,以及基于角色的培训计划的要求。 该标准现在强调持续的安全教育和事件响应培训。 确保查看官方 PCI DSS 4.0.1 文档 ,了解完整详细信息和未来日期的要求。
要求 12:使用组织策略和计划支持信息安全
AKS 功能支持
AKS 提供了多种功能来帮助满足 PCI DSS 4.0.1 安全意识培训要求:
- Azure Policy:通过治理策略为所有 AKS 用户和管理员强制实施强制安全意识培训合规性。
- Microsoft Defender for Cloud:提供有助于监视训练要求的安全建议和合规性跟踪功能。
- Microsoft Entra ID (Azure AD):与学习管理系统集成,可用于跟踪用户培训完成和认证状态。
- Azure Monitor:可以跟踪和记录训练完成事件并生成符合性报告。
- Azure RBAC:确保只有经过培训的人员才能访问敏感的 AKS 资源和作。
要求 12.6
向所有人员提供安全意识培训。
你的责任
Requirement | 职责 |
---|---|
要求 12.6.1 | 实施正式的安全意识培训计划,使所有人员都意识到持卡人数据安全的重要性。 |
要求 12.6.2 | 安全意识培训计划每 12 个月至少审查一次,并根据需要进行更新。 |
要求 12.6.3 | 人员承认他们已阅读并理解安全策略和程序。 |
要求 12.6.1
实施正式的安全意识培训计划,使所有人员都意识到持卡人数据安全的重要性。
你的责任
实施全面的安全意识培训计划,该计划涵盖 AKS 安全性和 PCI DSS 合规性的各个方面:
核心培训组件:
- PCI DSS 基础知识:了解标准、合规性要求和业务影响。
- 云安全原则:Azure 安全模型、共同责任和特定于云的威胁。
- 容器安全性:Docker 安全性、Kubernetes 安全性和容器映像漏洞管理。
- 数据保护:持卡人数据处理、加密要求和数据生命周期管理。
- 网络安全:AKS 网络、专用群集和网络策略实现。
- 标识和访问管理:Azure AD 集成、MFA 要求和特权管理。
实现步骤:
制定特定于角色的培训课程:
# Example training matrix for different roles TrainingMatrix: AKS_Platform_Engineer: - PCI_DSS_Fundamentals - Azure_Security_Fundamentals - AKS_Security_Configuration - Container_Security_Best_Practices - Network_Security_Controls - Key_Management_Procedures - Incident_Response_Procedures - Compliance_Monitoring Application_Developer: - PCI_DSS_Fundamentals - Secure_Coding_Practices - Container_Security_Development - Data_Protection_Requirements - Authentication_Authorization - Vulnerability_Management - Code_Review_Security Security_Administrator: - PCI_DSS_Advanced_Requirements - Threat_Detection_Response - Compliance_Auditing - Risk_Assessment_Management - Policy_Enforcement - Forensic_Analysis
创建特定于 AKS 的训练模块:
- AKS 群集安全配置:专用群集、网络策略和安全上下文。
- 容器映像安全性:漏洞扫描、映像签名和安全基础映像。
- 机密管理:Azure Key Vault 集成、机密轮换和安全机密注入。
- 监视和日志记录:安全事件检测、日志分析和事件调查。
- 合规性自动化:Azure Policy 实现、持续合规性监视。
实现训练交付机制:
# Example PowerShell script for tracking training completion # This integrates with Azure AD and a learning management system function Track-TrainingCompletion { param( [string]$UserId, [string]$TrainingModule, [datetime]$CompletionDate, [string]$CertificationScore ) # Log training completion to Azure Monitor $logData = @{ UserId = $UserId TrainingModule = $TrainingModule CompletionDate = $CompletionDate CertificationScore = $CertificationScore ComplianceStatus = if ($CertificationScore -ge 80) { "Compliant" } else { "Non-Compliant" } } # Send to Log Analytics workspace Send-AzMonitorLog -WorkspaceId $WorkspaceId -LogData $logData -LogType "PCITrainingCompliance" # Update user's training status in Azure AD Update-AzADUser -ObjectId $UserId -ExtensionProperty @{ "PCITrainingStatus" = $logData.ComplianceStatus "LastTrainingDate" = $CompletionDate } }
要求 12.6.2
安全意识培训计划每 12 个月至少审查一次,并根据需要进行更新。
你的责任
建立定期审查和更新安全意识培训计划的过程:
年度评审过程:
- 威胁布局评估:查看影响 AKS 和容器化环境的当前威胁。
- 符合性更新:合并 PCI DSS 要求和 Azure 安全功能中的更改。
- 事件分析:回顾过去一年的安全事件并相应地更新培训。
- 技术更新:更新新 AKS 特性和安全功能的培训。
- 有效性评估:通过测试和事件响应性能评估培训有效性。
实现步骤:
创建年度培训评审计划:
# Annual training review calendar TrainingReviewSchedule: Q1: - Review_Previous_Year_Incidents - Update_Threat_Intelligence - Assess_New_Azure_Security_Features Q2: - Review_PCI_DSS_Updates - Update_AKS_Security_Training - Conduct_Training_Effectiveness_Assessment Q3: - Review_Compliance_Audit_Findings - Update_Role_Specific_Training - Refresh_Incident_Response_Procedures Q4: - Plan_Next_Year_Training_Program - Update_Training_Materials - Schedule_Mandatory_Refresher_Training
实现训练有效性指标:
// KQL query to track training effectiveness PCITrainingCompliance | where TimeGenerated > ago(365d) | summarize TotalTrainees = dcount(UserId), CompletedTraining = countif(ComplianceStatus == "Compliant"), AverageScore = avg(toint(CertificationScore)), TrainingModules = dcount(TrainingModule) by bin(TimeGenerated, 30d) | extend CompletionRate = (CompletedTraining * 100.0) / TotalTrainees | project TimeGenerated, CompletionRate, AverageScore, TotalTrainees, TrainingModules | render timechart
建立反馈机制:
- 培训后调查:收集有关培训内容和交付的反馈。
- 事件相关性:分析安全事件是否与训练差距相关。
- 技能评估:定期测试以确保知识保留。
- 持续改进:根据反馈和不断变化的要求更新培训。
要求 12.6.3
人员承认他们已阅读并理解安全策略和程序。
你的责任
实施正式确认流程,确保人员了解其安全责任:
文档和确认要求:
- 安全策略确认:正式书面确认安全策略。
- 特定于角色的过程:确认与其角色相关的特定过程。
- 培训完成证书:培训完成的正式认证。
- 定期重新确认:定期续订策略确认。
实现步骤:
创建数字确认系统:
{ "acknowledgmentRecord": { "userId": "user@company.com", "employeeId": "EMP001", "acknowledgmentDate": "2025-07-08T10:30:00Z", "policies": [ { "policyName": "PCI DSS Security Policy", "version": "v4.0.1", "acknowledged": true, "digitalSignature": "SHA256:abc123..." }, { "policyName": "AKS Security Procedures", "version": "v1.2", "acknowledged": true, "digitalSignature": "SHA256:def456..." } ], "trainingCompleted": [ { "trainingModule": "AKS Security Fundamentals", "completionDate": "2025-07-01T14:00:00Z", "score": 95, "certificateId": "CERT-AKS-001" } ], "nextReviewDate": "2026-07-08T10:30:00Z" } }
实现合规性跟踪:
# Azure CLI script to track policy acknowledgments #!/bin/bash # Create custom table in Log Analytics for tracking acknowledgments az monitor log-analytics workspace table create \ --resource-group $RESOURCE_GROUP \ --workspace-name $WORKSPACE_NAME \ --name PolicyAcknowledgments \ --columns '[ {"name": "TimeGenerated", "type": "datetime"}, {"name": "UserId", "type": "string"}, {"name": "PolicyName", "type": "string"}, {"name": "PolicyVersion", "type": "string"}, {"name": "AcknowledgmentStatus", "type": "string"}, {"name": "DigitalSignature", "type": "string"} ]' # Set up alerts for missing acknowledgments az monitor scheduled-query create \ --name "Missing Policy Acknowledgments" \ --resource-group $RESOURCE_GROUP \ --scopes "/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.OperationalInsights/workspaces/$WORKSPACE_NAME" \ --condition "count > 0" \ --condition-query " let RequiredPolicies = datatable(PolicyName:string) [ 'PCI DSS Security Policy', 'AKS Security Procedures', 'Incident Response Policy' ]; let CurrentUsers = AADUsers | where TimeGenerated > ago(1d) | distinct UserId; CurrentUsers | join kind=leftanti ( PolicyAcknowledgments | where TimeGenerated > ago(365d) | where AcknowledgmentStatus == 'Acknowledged' ) on UserId | count " \ --description "Alert when users have not acknowledged required policies" \ --evaluation-frequency "24h" \ --window-size "24h"
要求 12.6.4
安全意识培训介绍了如何识别和报告安全事件和异常。
你的责任
确保所有人员都根据特定于 AKS 环境的事件识别和报告过程进行培训:
事件识别培训:
- 特定于 AKS 的威胁:容器转义、特权升级和资源耗尽攻击。
- 异常情况检测:异常网络流量、意外的资源使用情况和可疑用户行为。
- 日志分析:解释 AKS 审核日志、容器日志和安全警报。
- 威胁指标:识别容器化环境中泄露的迹象。
事件报告过程:
- 立即响应:与谁联系以及如何升级安全事件。
- 文档要求:要收集和保存证据的信息。
- 通信协议:事件期间的内部和外部通信。
- 事后活动:吸取的教训和流程改进。
实现步骤:
开发事件响应训练方案:
# Example incident response training scenarios IncidentScenarios: ContainerEscape: Description: "Container breaks out of its security context" Indicators: - "Unexpected file system modifications outside container" - "Unusual system call patterns" - "Privilege escalation attempts" Response: - "Isolate affected node" - "Collect forensic evidence" - "Notify security team immediately" PrivilegeEscalation: Description: "User attempts to gain unauthorized privileges" Indicators: - "Failed sudo attempts" - "Unexpected role binding changes" - "Abnormal kubectl commands" Response: - "Revoke user access" - "Review audit logs" - "Investigate user activity" DataExfiltration: Description: "Unauthorized data access or transfer" Indicators: - "Large data transfers" - "Unusual database queries" - "Abnormal network traffic patterns" Response: - "Block suspicious traffic" - "Preserve evidence" - "Activate incident response team"
创建事件报告模板:
# Security Incident Report Template ## Incident Details - **Incident ID**: [Auto-generated] - **Reporter**: [Name and contact information] - **Date/Time Discovered**: [ISO 8601 format] - **Date/Time Incident Occurred**: [ISO 8601 format] - **Incident Type**: [Container Security, Network Security, Data Breach, etc.] - **Severity Level**: [Critical, High, Medium, Low] ## AKS Environment Details - **Cluster Name**: [AKS cluster name] - **Namespace**: [Kubernetes namespace] - **Affected Workloads**: [List of affected pods/services] - **Node Information**: [Affected nodes] ## Incident Description [Detailed description of what happened] ## Immediate Actions Taken [List of immediate response actions] ## Evidence Collected - **Log Files**: [Paths to relevant logs] - **Screenshots**: [Any relevant screenshots] - **Network Captures**: [Any network traffic captures] - **System State**: [Memory dumps, process lists, etc.] ## Impact Assessment - **Systems Affected**: [List of affected systems] - **Data Involved**: [Any cardholder data involved] - **Business Impact**: [Description of business impact] ## Next Steps [Planned follow-up actions]
后续步骤
实施全面的防钓鱼和社会工程控制,以防止人为因素安全威胁。
相关资源
有关在 AKS 环境中实施安全意识培训的详细信息,请参阅:
有关 PCI DSS 4.0.1 要求的详细信息,请查看官方 PCI DSS 4.0.1 文档。