针对 PCI DSS 4.0.1 的 AKS 管控群集的安全意识培训

本文介绍根据支付卡行业数据安全标准(PCI DSS 4.0.1)配置的 Azure Kubernetes 服务(AKS)群集的安全意识培训注意事项。

本文是一系列文章的其中一篇。 阅读 简介

PCI DSS 4.0.1 要求对所有有权访问持卡人数据环境(CDE)的人员提供全面的安全意识和培训。 此体系结构和实现侧重于基础结构,而不是工作负荷。 本文提供了一般注意事项和最佳做法,可帮助你做出设计决策。 请遵循官方 PCI-DSS 4.0.1 标准中的要求,并在适用的情况下使用本文作为其他信息。

重要

该指南和随附的实现基于中心辐射型网络拓扑的 AKS 基线体系结构为基础。 中心虚拟网络包含用于控制出口流量的防火墙、来自本地网络的网关流量,以及用于维护的第三个网络。 辐射虚拟网络包含 AKS 群集,该群集提供卡持有者环境(CDE),并托管 PCI DSS 工作负荷。

即将推出 GitHub 徽标 参考实现:适用于 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 要求和特权管理。

实现步骤:

  1. 制定特定于角色的培训课程:

    # 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
    
  2. 创建特定于 AKS 的训练模块:

    • AKS 群集安全配置:专用群集、网络策略和安全上下文。
    • 容器映像安全性:漏洞扫描、映像签名和安全基础映像。
    • 机密管理:Azure Key Vault 集成、机密轮换和安全机密注入。
    • 监视和日志记录:安全事件检测、日志分析和事件调查。
    • 合规性自动化:Azure Policy 实现、持续合规性监视。
  3. 实现训练交付机制:

    # 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 特性和安全功能的培训。
  • 有效性评估:通过测试和事件响应性能评估培训有效性。

实现步骤:

  1. 创建年度培训评审计划:

    # 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
    
  2. 实现训练有效性指标:

    // 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
    
  3. 建立反馈机制:

    • 培训后调查:收集有关培训内容和交付的反馈。
    • 事件相关性:分析安全事件是否与训练差距相关。
    • 技能评估:定期测试以确保知识保留。
    • 持续改进:根据反馈和不断变化的要求更新培训。

要求 12.6.3

人员承认他们已阅读并理解安全策略和程序。

你的责任

实施正式确认流程,确保人员了解其安全责任:

文档和确认要求:

  • 安全策略确认:正式书面确认安全策略。
  • 特定于角色的过程:确认与其角色相关的特定过程。
  • 培训完成证书:培训完成的正式认证。
  • 定期重新确认:定期续订策略确认。

实现步骤:

  1. 创建数字确认系统:

    {
      "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"
      }
    }
    
  2. 实现合规性跟踪:

    # 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 审核日志、容器日志和安全警报。
  • 威胁指标:识别容器化环境中泄露的迹象。

事件报告过程:

  • 立即响应:与谁联系以及如何升级安全事件。
  • 文档要求:要收集和保存证据的信息。
  • 通信协议:事件期间的内部和外部通信。
  • 事后活动:吸取的教训和流程改进。

实现步骤:

  1. 开发事件响应训练方案:

    # 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"
    
  2. 创建事件报告模板:

    # 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 文档