Condividi tramite


Autenticazione multifattoriale avanzata per un cluster conforme AKS per PCI DSS 4.0.1

Questo articolo descrive le considerazioni avanzate sull'autenticazione a più fattori (MFA) per un cluster del servizio Azure Kubernetes configurato in base allo Standard di sicurezza dei dati del settore delle carte di pagamento (PCI DSS 4.0.1).

Questo articolo fa parte di una serie. Leggere l'introduzione.

PCI DSS 4.0.1 espande significativamente i requisiti di MFA per tutti gli accessi all'ambiente dei dati dei titolari di carte (CDE) e all'accesso amministrativo cloud. Questa architettura e l'implementazione sono incentrate sull'infrastruttura e non sul carico di lavoro. Questo articolo fornisce considerazioni generali e procedure consigliate per prendere decisioni di progettazione. Seguire i requisiti dello standard ufficiale PCI-DSS 4.0.1 e usare questo articolo come informazione aggiuntiva, se applicabile.

Importante

Le linee guida e l'implementazione associata si basano sull'architettura di base del servizio Azure Kubernetes, basata su una topologia di rete hub-spoke. La rete virtuale hub contiene il firewall per controllare il traffico in uscita, il traffico del gateway dalle reti locali e una terza rete per la manutenzione. La rete virtuale spoke contiene il cluster del servizio Azure Kubernetes che fornisce l'ambiente CDE (Card-Holder Environment) e ospita il carico di lavoro PCI DSS.

Logo di GitHubImplementazione di riferimento presto disponibile: il cluster di riferimento del servizio Azure Kubernetes per carichi di lavoro regolamentati secondo PCI DSS 4.0.1 è attualmente in fase di aggiornamento e sarà presto disponibile. Questa implementazione illustra un'infrastruttura regolamentata che illustra l'uso di vari controlli di rete e sicurezza all'interno dell'ambiente cde. Sono inclusi entrambi i controlli di rete nativi di Azure e i controlli nativi di Kubernetes. Includerà anche un'applicazione per illustrare le interazioni tra l'ambiente e un carico di lavoro di esempio. Il punto focale del presente articolo è l'infrastruttura. L'esempio non sarà indicativo di un carico di lavoro effettivo PCI-DSS 4.0.1.

Limitare l'accesso ai dati dei titolari di carte in base alle necessità aziendali di conoscenza.

Annotazioni

Questo articolo è stato aggiornato per PCI DSS 4.0.1. Le modifiche principali includono requisiti di autenticazione a più fattori espansi per tutti gli accessi all'ambiente cde, l'autenticazione avanzata per l'accesso amministrativo cloud e controlli più avanzati per l'accesso con privilegi. Assicurarsi di esaminare la documentazione ufficiale di PCI DSS 4.0.1 per i dettagli completi e i requisiti futuri.

Requisito 8: Identificare e autenticare l'accesso ai componenti di sistema

Supporto per le funzionalità del servizio Azure Kubernetes

AKS offre diverse funzionalità che ti aiutano a soddisfare i requisiti MFA di PCI DSS 4.0.1:

  • Integrazione di Microsoft Entra ID (Azure AD): consente la gestione centralizzata delle identità e l'imposizione dell'autenticazione a più fattori per l'accesso ai cluster AKS tramite Azure AD RBAC.
  • Criteri di accesso condizionale: consente di richiedere l'autenticazione a più fattori per tutti i ruoli con privilegi e i percorsi di accesso alle risorse del servizio Azure Kubernetes, tra cui API, interfaccia della riga di comando e accesso al portale.
  • Criteri di Azure: può essere usato per controllare e far rispettare i requisiti di MFA per gli amministratori AKS e garantire la conformità.
  • Accesso JIT (Just-In-Time): supportato tramite Microsoft Entra Privileged Identity Management (PIM) per l'accesso con privilegi limitati a tempo.
  • Identità del carico di lavoro: abilita l'autenticazione sicura per le applicazioni in esecuzione nel servizio Azure Kubernetes senza archiviare le credenziali.

Requisito 8.4

L'autenticazione a più fattori (MFA) viene implementata per tutti gli accessi nell'ambiente cde.

Responsabilità dell'utente

Requisito Responsabilità
Requisito 8.4.1 L'autenticazione a più fattori viene implementata per tutti gli accessi non console nell'ambiente cde per il personale con accesso amministrativo.
Requisito 8.4.2 L'autenticazione a più fattori viene implementata per tutti gli accessi nell'ambiente cde.
Requisito 8.4.3 L'autenticazione a più fattori viene implementata per tutti gli accessi remoti provenienti dall'esterno della rete dell'entità che possono accedere o avere un impatto sul CDE.

Requisito 8.4.1

L'autenticazione a più fattori viene implementata per tutti gli accessi non console nell'ambiente cde per il personale con accesso amministrativo.

Responsabilità dell'utente

Implementare l'autenticazione a più fattori (MFA) per tutti gli accessi amministrativi ai cluster di Azure Kubernetes Service (AKS):

  • Abilitare l'integrazione di Microsoft Entra ID: Configurare i cluster AKS per l'uso di Azure AD per l'autenticazione e l'autorizzazione. Per istruzioni dettagliate, vedere Usare Azure AD in AKS.
  • Configurare i criteri di accesso condizionale: creare criteri che richiedono l'autenticazione a più fattori per tutti i ruoli amministrativi che accedono alle risorse del servizio Azure Kubernetes. Vedere Criteri di accesso condizionale comuni.
  • Implementare il controllo degli accessi in base al ruolo di Azure: usare il controllo degli accessi in base al ruolo di Azure per gestire l'accesso alle risorse del servizio Azure Kubernetes con ruoli predefiniti, ad esempio "Amministratore del cluster del servizio Azure Kubernetes" e "Amministratore del cluster RBAC del servizio Azure Kubernetes". Per altre informazioni, vedere Usare il controllo degli accessi in base al ruolo di Azure per l'autorizzazione Kubernetes.
  • Monitorare l'accesso amministrativo: usare Azure Monitor e i log di Azure AD per monitorare tutti gli accessi amministrativi ai cluster AKS.

Passaggi di implementazione:

  1. Abilitare l'integrazione di Azure AD per il cluster AKS:

    az aks update --resource-group myResourceGroup --name myAKSCluster --enable-aad --aad-admin-group-object-ids <admin-group-object-id>
    
  2. Creare una politica di accesso condizionale che richieda l'autenticazione a più fattori per gli amministratori di AKS.

    • Passare ad Azure AD>Sicurezza>Accesso condizionale.
    • Creare una nuova policy per gli utenti con ruoli amministrativi di AKS.
    • Impostare le condizioni per le app cloud (servizio Azure Kubernetes).
    • Richiedere l'autenticazione a più fattori come controllo di accesso.
  3. Assegnare ruoli RBAC di Azure appropriati a utenti e gruppi per l'accesso ad AKS.

Requisito 8.4.2

L'autenticazione a più fattori viene implementata per tutti gli accessi nell'ambiente cde.

Responsabilità dell'utente

Estendere i requisiti di autenticazione a più fattori a tutti gli utenti che accedono all'ambiente CDE, non solo agli amministratori:

  • Configurare criteri di accesso condizionale completi: creare criteri che richiedono l'autenticazione a più fattori per tutti gli utenti che accedono alle risorse del servizio Azure Kubernetes, inclusi gli sviluppatori e il personale operativo.
  • Implementare l'identità del carico di lavoro: usare l'identità del carico di lavoro per le applicazioni in esecuzione nel servizio Azure Kubernetes per eliminare la necessità di credenziali archiviate mantenendo l'autenticazione sicura.
  • Usare i gruppi di Azure AD: organizzare gli utenti in gruppi di Azure AD appropriati e applicare i requisiti di autenticazione a più fattori a livello di gruppo.
  • Modelli di accesso ai documenti: gestire la documentazione di tutti i modelli di accesso e assicurarsi che l'autenticazione a più fattori venga applicata per ogni modello.

Passaggi di implementazione:

  1. Creare criteri di accesso condizionale per tutti gli accessi cde:

    # Example PowerShell script to create a Conditional Access policy
    $policy = @{
        displayName = "Require MFA for AKS CDE Access"
        state = "enabled"
        conditions = @{
            applications = @{
                includeApplications = @("6dae42f8-4368-4678-94ff-3960e28e3630") # Azure Kubernetes Service
            }
            users = @{
                includeGroups = @("your-cde-access-group-id")
            }
        }
        grantControls = @{
            operator = "AND"
            builtInControls = @("mfa")
        }
    }
    
  2. Configurare l'identità del carico di lavoro per le applicazioni del servizio Azure Kubernetes:

    # Enable workload identity on AKS cluster
    az aks update -g myResourceGroup -n myAKSCluster --enable-workload-identity
    
    # Create service account with workload identity
    kubectl create serviceaccount myserviceaccount
    kubectl annotate serviceaccount myserviceaccount azure.workload.identity/client-id="your-client-id"
    

Requisito 8.4.3

L'autenticazione a più fattori viene implementata per tutti gli accessi remoti provenienti dall'esterno della rete dell'entità che possono accedere o avere un impatto sul CDE.

Responsabilità dell'utente

Verificare che MFA sia applicata obbligatoriamente per tutti gli accessi remoti alle risorse AKS.

  • Configurare i criteri basati sulla posizione: usare l'accesso condizionale per richiedere l'autenticazione a più fattori per l'accesso da percorsi di rete attendibili all'esterno.
  • Implementare la conformità dei dispositivi: richiedere dispositivi gestiti per l'accesso remoto alle risorse AKS.
  • Usare Collegamento Privato di Azure: configurare gli endpoint privati per l'accesso al server API di AKS al fine di limitare i vettori di accesso remoto.
  • Monitorare l'accesso remoto: implementare la registrazione e il monitoraggio per tutti i tentativi di accesso remoto.

Passaggi di implementazione:

  1. Configurare i criteri di accesso condizionale basati sulla posizione:

    • Definire posizioni denominate in Azure AD per intervalli di rete affidabili.
    • Creare criteri che richiedono l'autenticazione a più fattori per l'accesso da posizioni non attendibili.
    • Applicare policy a tutte le applicazioni cloud relative ad AKS.
  2. Implementare la configurazione del cluster privato per la sicurezza avanzata:

    # Create private AKS cluster
    az aks create \
      --resource-group myResourceGroup \
      --name myPrivateCluster \
      --enable-private-cluster \
      --enable-aad \
      --aad-admin-group-object-ids <admin-group-object-id>
    
  3. Configurare il collegamento privato di Azure per l'accesso remoto sicuro:

    # Enable private endpoint for AKS
    az aks update \
      --resource-group myResourceGroup \
      --name myPrivateCluster \
      --enable-private-cluster \
      --private-dns-zone system
    

Requisito 8.5

I sistemi di autenticazione a più fattori (MFA) sono configurati per prevenire l'uso improprio.

Responsabilità dell'utente

Requisito Responsabilità
Requisito 8.5.1 I sistemi MFA vengono implementati in modo che il processo MFA venga completato prima che venga concesso l'accesso.

Requisito 8.5.1

I sistemi MFA vengono implementati in modo che il processo MFA venga completato prima che venga concesso l'accesso.

Responsabilità dell'utente

Assicurarsi che l'autenticazione a più fattori non possa essere ignorata e venga applicata prima di concedere l'accesso:

  • Configurare i controlli sessione: usare i controlli sessione di Azure AD per assicurarsi che l'autenticazione a più fattori sia necessaria per ogni sessione.
  • Implementare i controlli della frequenza di accesso: configurare i criteri per richiedere la ri-autenticazione a intervalli appropriati.
  • Usare con attenzione le sessioni del browser persistenti: limitare le sessioni del browser persistenti e richiedere l'autenticazione a più fattori per le operazioni sensibili.
  • Monitorare i tentativi di bypass: implementare il monitoraggio per eventuali tentativi di ignorare i requisiti di autenticazione a più fattori.

Passaggi di implementazione:

  1. Configurare i controlli sessione nell'accesso condizionale:

    {
      "sessionControls": {
        "signInFrequency": {
          "value": 1,
          "type": "hours",
          "isEnabled": true
        },
        "persistentBrowser": {
          "mode": "never",
          "isEnabled": true
        }
      }
    }
    
  2. Usare Azure AD Identity Protection per rilevare e rispondere a modelli di accesso anomali.

  3. Implementare la valutazione dell'accesso continuo per l'applicazione dei criteri in tempo reale.

Considerazioni aggiuntive sull'autenticazione a più fattori per il servizio Azure Kubernetes

Account del servizio e autenticazione del carico di lavoro

Mentre l'attenzione è sull'autenticazione utente, considera come i workload eseguono l'autenticazione:

  • Usare l'identità del carico di lavoro: implementare l'identità del carico di lavoro di Azure AD per le applicazioni in esecuzione in AKS per eliminare le credenziali archiviate.
  • Evitare le chiavi dell'account del servizio: non utilizzare chiavi di account di servizio a lunga durata per l'autenticazione del carico di lavoro.
  • Implementare la rotazione dei token: assicurarsi che i token del carico di lavoro vengano ruotati regolarmente e automaticamente.

Procedure di accesso di emergenza

Mantenere le procedure di accesso di emergenza garantendo contemporaneamente la conformità con l'autenticazione a più fattori.

  • Account break-glass: configurare gli account di accesso di emergenza con i processi di monitoraggio e approvazione appropriati.
  • Documentare le procedure di emergenza: mantenere una documentazione chiara per gli scenari di accesso di emergenza.
  • Testare le procedure di emergenza: testare regolarmente le procedure di accesso di emergenza per assicurarsi che funzionino quando necessario.

Monitoraggio e conformità

Implementare un monitoraggio completo per la conformità MFA:

  • Usare Azure Monitor: monitorare le percentuali di esito positivo e negativo di MFA per tutti gli accessi AKS.
  • Implementare la segnalazione: configurare avvisi su tentativi di bypass o fallimenti dell'autenticazione a più fattori.
  • Verifiche di accesso regolari: eseguire verifiche regolari dell'accesso degli utenti e conformità MFA.
  • Log di controllo: mantieni log di controllo completi di tutti gli eventi di autenticazione.

Passaggi di implementazione per il monitoraggio:

  1. Configurare le cartelle di lavoro di Monitoraggio di Azure per la creazione di report MFA:

    SigninLogs
    | where TimeGenerated > ago(30d)
    | where AppDisplayName contains "Azure Kubernetes Service"
    | where AuthenticationRequirement == "multiFactorAuthentication"
    | summarize MFAAttempts = count(), MFASuccesses = countif(ResultType == 0), MFAFailures = countif(ResultType != 0) by UserPrincipalName
    | extend MFASuccessRate = (MFASuccesses * 100.0) / MFAAttempts
    
  2. Configurare gli avvisi di Monitoraggio di Azure per la conformità MFA:

    {
      "criteria": {
        "allOf": [
          {
            "query": "SigninLogs | where AppDisplayName contains \"Azure Kubernetes Service\" | where AuthenticationRequirement == \"multiFactorAuthentication\" | where ResultType != 0",
            "timeAggregation": "Count",
            "operator": "GreaterThan",
            "threshold": 5
          }
        ]
      },
      "actions": {
        "actionGroups": ["your-action-group-id"]
      }
    }
    

Passaggi successivi

Implementare controlli completi di protezione antimalware per tutti i sistemi e aggiornare regolarmente software o programmi antivirus.

Per ulteriori informazioni sull'implementazione di MFA negli ambienti AKS, vedere:

Per altre informazioni sui requisiti di PCI DSS 4.0.1, vedere la documentazione ufficiale di PCI DSS 4.0.1.