Utilizzare AWS SSM per creare connessioni agentless

Questa guida fornisce un esempio di creazione di connessioni agentless in Cyberwatch tramite l’utilizzo di Amazon Web Services Session Manager (AWS SSM).

Prerequisiti

Questa documentazione presuppone:

  • un account con accesso ad AWS e autorizzazioni IAM sufficienti per creare gruppi, ruoli, policy ecc.
  • una conoscenza di base dei servizi offerti da AWS (IAM, EC2, SSM…)

Configurazione lato AWS

La configurazione in AWS richiede la creazione degli elementi seguenti:

  • una policy contenente le autorizzazioni minime che consentono l’utilizzo della console SSM
  • un ruolo IAM, a cui verrà associata la policy precedente

Creare la policy AWS

AWS fornisce diversi modelli di policy predefiniti, come la policy AmazonSSMManagedInstanceCore.

Tuttavia, questa policy non consente il funzionamento di Session Manager dall’interfaccia AWS.

Un’alternativa consiste nel creare una policy personalizzata, molto simile alla policy predefinita di AWS, il cui JSON è il seguente:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:*"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssmmessages:CreateControlChannel",
                "ssmmessages:CreateDataChannel",
                "ssmmessages:OpenControlChannel",
                "ssmmessages:OpenDataChannel"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2messages:AcknowledgeMessage",
                "ec2messages:DeleteMessage",
                "ec2messages:FailMessage",
                "ec2messages:GetEndpoint",
                "ec2messages:GetMessages",
                "ec2messages:SendReply"
            ],
            "Resource": "*"
        }
    ]
}

Per creare una policy di questo tipo in AWS:

  1. Accedere al menu Gestione degli accessi > Policy
  2. Cliccare sul pulsante Crea policy
  3. Nell’editor delle policy, selezionare la modalità JSON
  4. Nell’editor, incollare il codice JSON riportato sopra
  5. Assegnare un nome alla policy, ad esempio SSM_Cyberwatch_policy, quindi completarne la creazione

Nel resto di questa documentazione, la policy verrà indicata con il suo nome.

Autorizzazione facoltativa: ulteriori informazioni sul server

Durante l’utilizzo di un connettore AWS Session Manager, Cyberwatch recupera gli indirizzi del server per associarli all’asset. Senza autorizzazioni EC2 aggiuntive, viene recuperato un solo indirizzo IP privato (proveniente da SSM). È possibile aggiungere facoltativamente l’autorizzazione ec2:DescribeInstances al ruolo IAM affinché Cyberwatch recuperi anche l’IP pubblico e il nome di dominio.

Esempio di codice da aggiungere alla policy:

{
    "Effect": "Allow",
    "Action": "ec2:DescribeInstances",
    "Resource": "*"
}

Creare il ruolo IAM

Seguire i passaggi seguenti per creare un ruolo IAM in AWS:

  1. Accedere al menu Gestione degli accessi > Ruoli
  2. Cliccare sul pulsante Crea ruolo
  3. Selezionare Servizio AWS come tipo di entità attendibile ed EC2 come caso d’uso
  4. Aggiungere come autorizzazione la policy SSM_Cyberwatch_policy creata in precedenza
  5. Assegnare un nome al ruolo, ad esempio SSM_Cyberwatch_role, quindi completarne la creazione

Nel resto di questa documentazione, il ruolo verrà indicato con il suo nome.

Assegnare la policy all’utente IAM

All’utente le cui chiavi API verranno utilizzate per creare le connessioni agentless con SSM deve essere assegnata la policy SSM_Cyberwatch_policy creata in precedenza.

A tal fine, seguire i passaggi seguenti nella console AWS:

  1. Accedere al menu Gestione degli accessi > Policy
  2. Selezionare la policy SSM_Cyberwatch_policy, quindi cliccare su Azioni > Collega
  3. Selezionare l’utente desiderato come entità IAM

Assegnare il ruolo IAM a un’istanza EC2

Dall’interfaccia di gestione delle istanze EC2, selezionare un’istanza che verrà monitorata da Cyberwatch tramite SSM.

Dalla scheda Sicurezza dell’istanza, modificare il ruolo IAM per associarle il ruolo SSM_Cyberwatch_role creato in precedenza.

La sezione precedente utilizza come esempio un’istanza EC2 esistente, ma questi elementi sono applicabili anche durante la creazione di una nuova istanza.

Azioni da eseguire in Cyberwatch

In Cyberwatch, la soluzione ideale è utilizzare preventivamente una discovery AWS, che consentirà di elencare le istanze da scansionare.

Utilizzare una discovery Amazon EC2

Consultare la pagina delle discovery Amazon EC2 per avviare preventivamente una scansione di discovery.

Avviare la scansione di discovery utilizzando le chiavi API dell’utente che verrà utilizzato per le scansioni SSM da Cyberwatch.

Salvare gli asset individuati con AWS Session Manager

Gli asset individuati possono essere salvati come connessioni agentless nel modo seguente:

  1. Dal menu Discovery, cliccare sul link Mostra gli asset individuati della discovery corrispondente
  2. Selezionare gli asset da aggiungere
  3. Cliccare su Azioni in blocco > Scansiona con connessioni agentless
  4. Selezionare AWS Session Manager come tipo di connessione e selezionare il set di credenziali Amazon Web Services utilizzato per la discovery. Verrà così creata una connessione agentless di tipo AWS Session Manager per ogni asset individuato selezionato

Questo tipo di connessione agentless deve essere autorizzato nel menu Amministrazione > Gestione dei connettori selezionando la casella AWS Session Manager.

Precisazioni:

  • Gli asset da scansionare devono essere compatibili con l’utilizzo di SSM e configurati in modo che SSM sia autorizzato, come specificato nella documentazione ufficiale
  • L’account AWS deve disporre di privilegi sufficienti per l’utilizzo di SSM sulle risorse desiderate (consultare la documentazione ufficiale)
  • I campi Indirizzo e Regione della connessione agentless verranno precompilati con l’ID e la regione dell’asset
  • È inoltre possibile aggiungere l’asset direttamente senza utilizzare una discovery, tramite il pulsante Connessione agentless > Aggiungi e selezionando il tipo AWS Session Manager
  • Sono supportati solo gli asset Windows e Linux