Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Configurazione dell'ingestione di syslog
Questa sezione illustra i passaggi per configurare l'ingestione di syslog in Logs. CloudWatch Creerai un endpoint VPC per il servizio syslog, un gruppo di log per ricevere i messaggi, una politica delle risorse per autorizzare il servizio syslog e una configurazione syslog che indirizza il traffico dall'endpoint VPC al tuo gruppo di log.
Puoi eseguire tutti questi passaggi utilizzando la Console di gestione, o gli SDK. AWS AWS CLI AWS Le seguenti istruzioni forniscono sia la console che gli AWS CLI esempi.
Prerequisiti
L'identità IAM (utente o ruolo) che usi per configurare l'ingestione di syslog deve disporre delle autorizzazioni per creare endpoint VPC, gruppi di log, policy di risorse e configurazioni syslog. La seguente policy di esempio mostra le autorizzazioni minime richieste:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:PutResourcePolicy",
"logs:DeleteResourcePolicy",
"logs:PutSyslogConfiguration",
"logs:ListSyslogConfigurations",
"logs:DeleteSyslogConfiguration"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"ec2:CreateVpc",
"ec2:ModifyVpcAttribute",
"ec2:CreateSubnet",
"ec2:CreateSecurityGroup",
"ec2:AuthorizeSecurityGroupIngress",
"ec2:CreateVpcEndpoint",
"ec2:ModifyVpcEndpoint",
"ec2:DescribeVpcEndpoints"
],
"Resource": "*"
}
]
}
Se disponi già di un VPC, di una sottorete e di un gruppo di sicurezza, sono necessari solo i e i ec2:CreateVpcEndpoint ec2:DescribeVpcEndpoints permessi per le azioni EC2. ec2:ModifyVpcEndpoint
Fase 1: Creare o identificare un VPC
È necessario un VPC raggiungibile dalla rete locale (tramite VPN o Direct Connect) dove risiedono i dispositivi che generano syslog. Se hai già un VPC collegato al tuo data center, salta questo passaggio e usa gli ID VPC e subnet esistenti.
- Console
-
Per creare un VPC (console)
Apri la console Amazon VPC all'indirizzo https://console.aws.amazon.com/vpc/.
Nel pannello di navigazione, scegli I tuoi VPC, quindi scegli Crea VPC.
Per Risorse da creare scegli Solo VPC.
Per il blocco CIDR IPv4, inserisci 10.0.0.0/16 (o un CIDR che non sia in conflitto con la rete locale).
Seleziona Crea VPC.
Seleziona il VPC appena creato, scegli Azioni, Modifica impostazioni VPC. Abilita sia la risoluzione DNS che i nomi host DNS, quindi scegli Salva.
-
Crea una sottorete per l'endpoint VPC:
Nel pannello di navigazione, scegli Sottoreti, quindi scegli Crea sottorete.
Per VPC ID, seleziona il VPC che hai creato.
Per Zona di disponibilità, scegli una zona di disponibilità.
Per il blocco CIDR della sottorete IPv4, immettere. 10.0.1.0/24
Scegliere Create subnet (Crea sottorete).
- AWS CLI
-
REGION=us-east-1
# Create VPC
VPC_ID=$(aws ec2 create-vpc \
--cidr-block 10.0.0.0/16 \
--region $REGION \
--query 'Vpc.VpcId' --output text)
aws ec2 modify-vpc-attribute --vpc-id $VPC_ID --enable-dns-support --region $REGION
aws ec2 modify-vpc-attribute --vpc-id $VPC_ID --enable-dns-hostnames --region $REGION
# Create a subnet for the VPC endpoint
SUBNET_ID=$(aws ec2 create-subnet \
--vpc-id $VPC_ID \
--cidr-block 10.0.1.0/24 \
--availability-zone ${REGION}a \
--region $REGION \
--query 'Subnet.SubnetId' --output text)
echo "VPC: $VPC_ID, Subnet: $SUBNET_ID"
L'endpoint VPC crea un'interfaccia di rete elastica (ENI) con un IP privato nella sottorete. I dispositivi locali raggiungono questo IP tramite la connessione VPN o Direct Connect. Assicurati che il routing di rete consenta il traffico dai tuoi dispositivi alla sottorete CIDR.
Fase 2: creazione di un gruppo di sicurezza
Crea un gruppo di sicurezza per l'endpoint VPC che consenta il traffico syslog in entrata dal tuo VPC. Questo controlla quali risorse possono inviare syslog all'endpoint.
- Console
-
Per creare un gruppo di sicurezza (console)
Apri la console Amazon VPC all'indirizzo https://console.aws.amazon.com/vpc/.
Nel riquadro di navigazione, scegli Gruppi di sicurezza, quindi scegli Crea gruppo di sicurezza.
In Security group name (Nome gruppo di sicurezza) immettere syslog-vpce-sg.
Per Descrizione, inserisci Allow syslog traffic to VPC endpoint.
Per VPC, seleziona il VPC che hai creato o identificato nel passaggio 1.
-
Nella sezione Regole in entrata, scegli Aggiungi regola e aggiungi le seguenti regole:
Regola 1: Tipo = TCP personalizzato, Intervallo di porte =6514, Source = 10.0.0.0/16 (il tuo VPC CIDR)
Regola 2: Tipo = TCP personalizzato, Intervallo di porte =, Origine = 1514 10.0.0.0/16
Regola 3: Tipo = UDP personalizzato, Intervallo di porte =514, Fonte = 10.0.0.0/16
Scegliere Create Security Group (Crea gruppo di sicurezza).
- AWS CLI
-
VPCE_SG_ID=$(aws ec2 create-security-group \
--group-name syslog-vpce-sg \
--description "Allow syslog traffic to VPC endpoint" \
--vpc-id $VPC_ID \
--region $REGION \
--query 'GroupId' --output text)
# Allow TCP+TLS (port 6514), TCP plaintext (port 1514), and UDP (port 514)
aws ec2 authorize-security-group-ingress --group-id $VPCE_SG_ID \
--protocol tcp --port 6514 --cidr 10.0.0.0/16 --region $REGION
aws ec2 authorize-security-group-ingress --group-id $VPCE_SG_ID \
--protocol tcp --port 1514 --cidr 10.0.0.0/16 --region $REGION
aws ec2 authorize-security-group-ingress --group-id $VPCE_SG_ID \
--protocol udp --port 514 --cidr 10.0.0.0/16 --region $REGION
Se prevedi di utilizzare un solo protocollo (ad esempio, TCP+TLS sulla porta 6514), devi solo aprire quella porta nel gruppo di sicurezza.
Fase 3: creazione dell'endpoint VPC
Crea un endpoint VPC di interfaccia che punti al servizio syslog. AWS PrivateLink Ciò fornisce al VPC un punto di accesso privato al servizio CloudWatch Logs syslog.
È possibile specificare più ID di sottorete in diverse zone di disponibilità durante la creazione dell'endpoint. L'endpoint crea un ENI in ogni sottorete, fornendo una maggiore disponibilità senza la necessità di endpoint VPC separati per zona di disponibilità. È sufficiente un singolo endpoint VPC con sottoreti in più zone di disponibilità.
- Console
-
Per creare l'endpoint VPC (console)
Apri la console Amazon VPC all'indirizzo https://console.aws.amazon.com/vpc/.
Nel riquadro di navigazione, scegli Endpoints, quindi scegli Crea endpoint.
Per il tag Nome, inserisci un nome per l'endpoint (ad esempio,). syslog-vpce
Per Service category (Categoria servizio), scegli AWS services.
Nel campo di ricerca Servizi, inserisci syslog-logs e seleziona il serviziocom.amazonaws.Region.syslog-logs.
Per VPC, seleziona il VPC che hai creato o identificato nel passaggio 1.
Nella sezione Subnet, seleziona una o più zone di disponibilità e scegli le sottoreti in cui desideri creare le interfacce di rete degli endpoint.
Per i gruppi di sicurezza, selezionate il gruppo di sicurezza creato nel passaggio 2 (). syslog-vpce-sg
(Facoltativo) Se desideri limitare il traffico consentito attraverso l'endpoint, configura una policy per gli endpoint VPC. Per ulteriori informazioni, consulta Policy degli endpoint VPC per syslog.
Seleziona Crea endpoint.
Dopo che lo stato dell'endpoint è passato a Disponibile, seleziona l'endpoint e annota il valore dei nomi DNS. Questo è l'indirizzo a cui verranno inviati i dispositivi syslog.
- AWS CLI
-
VPCE_ID=$(aws ec2 create-vpc-endpoint \
--vpc-id $VPC_ID \
--service-name com.amazonaws.${REGION}.syslog-logs \
--vpc-endpoint-type Interface \
--subnet-ids $SUBNET_ID \
--security-group-ids $VPCE_SG_ID \
--region $REGION \
--query 'VpcEndpoint.VpcEndpointId' --output text)
echo "VPC Endpoint: $VPCE_ID"
Attendi che l'endpoint diventi disponibile (circa 60 secondi), quindi recupera il nome DNS:
VPCE_DNS=$(aws ec2 describe-vpc-endpoints --vpc-endpoint-ids $VPCE_ID \
--region $REGION --query 'VpcEndpoints[0].DnsEntries[0].DnsName' --output text)
echo "Endpoint DNS: $VPCE_DNS"
Salva il VPCE_DNS valore: configurerai i tuoi dispositivi syslog per l'invio a questo indirizzo.
Fase 4: Creare un gruppo di log
Crea il gruppo di log CloudWatch Logs in cui verranno recapitati i tuoi messaggi syslog. È possibile utilizzare qualsiasi nome di gruppo di log. Si consiglia di utilizzare un /syslog/ prefisso per motivi di chiarezza organizzativa.
- Console
-
Per creare un gruppo di log (console)
Apri la console CloudWatch Logs all'indirizzo https://console.aws.amazon.com/cloudwatch/.
Nel riquadro di navigazione, in Gestione dei registri, scegli Gruppi di log.
Scegliere Crea gruppo di log.
Per il nome del gruppo di log, inserisci/syslog/my-devices.
(Facoltativo) Configurate le impostazioni di conservazione e la crittografia in base alle esigenze.
Scegli Create (Crea).
- AWS CLI
-
aws logs create-log-group \
--log-group-name /syslog/my-devices \
--region $REGION
Non è necessario creare un flusso di log. Il servizio syslog crea automaticamente un flusso di log denominato VPCE_ID_Syslog_Region (ad esempiovpce-0abc123def456_Syslog_us-east-1) quando viene recapitato il primo messaggio.
Fase 5: Aggiungere una politica delle risorse
Il servizio CloudWatch Logs syslog scrive nel gruppo di log utilizzando Service Principal. syslog.logs.amazonaws.com È necessario concedergli l'autorizzazione tramite una politica delle risorse sul gruppo di log. La aws:SourceArn condizione garantisce che solo il traffico proveniente dal tuo endpoint VPC specifico possa scrivere su questo gruppo di log.
ACCOUNT_ID=$(aws sts get-caller-identity --query 'Account' --output text)
aws logs put-resource-policy \
--policy-name syslog-ingestion \
--policy-document '{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "syslog.logs.amazonaws.com"
},
"Action": [
"logs:PutLogEvents",
"logs:CreateLogStream"
],
"Resource": "arn:aws:logs:'$REGION':'$ACCOUNT_ID':log-group:/syslog/my-devices:*",
"Condition": {
"StringEquals": {
"aws:SourceAccount": "'$ACCOUNT_ID'"
},
"ArnEquals": {
"aws:SourceArn": "arn:aws:ec2:'$REGION':'$ACCOUNT_ID':vpc-endpoint/'$VPCE_ID'"
}
}
}
]
}' \
--region $REGION
Le condizioni contenute nella politica delle risorse forniscono le seguenti protezioni:
aws:SourceAccount— Previene gli attacchi confusi dei vice agenti. Viene accettato solo il traffico del tuo account.
aws:SourceArn— Ambita l'accesso a un endpoint VPC specifico. Se disponi di più endpoint VPC, aggiungili ciascuno come ARN separato nella condizione.
Per consentire a più endpoint VPC di scrivere sullo stesso gruppo di log, usa l'operatore ArnLike condition con un wildcard:
"ArnLike": {
"aws:SourceArn": "arn:aws:ec2:us-east-1:123456789012:vpc-endpoint/*"
}
Fase 6: Creare la configurazione syslog
Questo passaggio indica al servizio CloudWatch Logs syslog che il traffico in arrivo dall'endpoint VPC deve essere indirizzato al gruppo di log. Senza questa configurazione, il traffico proveniente dall'endpoint viene rifiutato.
- Console
-
Per creare la configurazione syslog (console)
Apri la console CloudWatch Logs all'indirizzo. https://console.aws.amazon.com/cloudwatch/
Nel riquadro di navigazione, in Gestione dei registri, scegli Gruppi di log.
Scegli il gruppo di log che hai creato nel passaggio 4 (ad esempio,/syslog/my-devices).
Nei dettagli del gruppo di log, individua la sezione Syslog Ingestion.
Scegli Configura.
Dal menu a discesa VPC endpoint, seleziona l'endpoint VPC che hai creato nel passaggio 3.
Scegli Create (Crea).
- AWS CLI
-
aws logs put-syslog-configuration \
--log-group-identifier /syslog/my-devices \
--vpc-endpoint-id $VPCE_ID \
--region $REGION
Verifica la configurazione:
aws logs list-syslog-configurations \
--log-group-identifier /syslog/my-devices \
--region $REGION
La tua pipeline di ingestione di syslog è ora attiva. Tutti i messaggi syslog inviati all'endpoint VPC verranno recapitati al gruppo di log. /syslog/my-devices
Fase 7: Verifica della consegna e dell'estrazione sul campo
Invia un messaggio di prova da qualsiasi host o dispositivo EC2 in grado di raggiungere l'endpoint VPC, quindi CloudWatch utilizza Log Analytics per verificare che il messaggio sia stato recapitato e che i campi strutturati siano stati estratti correttamente. I messaggi vengono in genere visualizzati entro 10-20 secondi.
Invia un messaggio di prova (testo semplice TCP):
echo "<134>1 $(date -u +%Y-%m-%dT%H:%M:%SZ) myhost myapp 1234 - - Hello from syslog" | \
nc $VPCE_DNS 1514
Verifica la consegna e i campi estratti:
- Console
-
Per verificare la consegna utilizzando Log Analytics (console)
Apri la console CloudWatch Logs all'indirizzo https://console.aws.amazon.com/cloudwatch/.
Nel riquadro di navigazione, in Logs, scegli Log Analytics.
Nel selettore del gruppo di log, scegli il tuo gruppo di log (ad esempio,/syslog/my-devices).
-
Immettete la seguente interrogazione e scegliete Esegui interrogazione:
fields @timestamp, facility, severity, hostname, appName, procId, message
| sort @timestamp desc
| limit 10
Verifica che venga visualizzato il messaggio di prova e che i campi estratti siano compilati correttamente. Per il messaggio di prova riportato sopra, dovresti vedere facility severity = local0info, hostname = myhostmyapp, appName = e procId =. 1234
- AWS CLI
-
Avvia una query di Log Analytics per verificare la consegna e l'estrazione dei campi:
QUERY_ID=$(aws logs start-query \
--log-group-name /syslog/my-devices \
--start-time $(date -d '5 minutes ago' +%s 2>/dev/null || echo $(date -v-5M +%s)) \
--end-time $(date +%s) \
--query-string 'fields @timestamp, facility, severity, hostname, appName, procId, message | sort @timestamp desc | limit 10' \
--region $REGION \
--query 'queryId' --output text)
# Wait a few seconds for the query to complete, then retrieve results
aws logs get-query-results \
--query-id $QUERY_ID \
--region $REGION
Verifica che venga visualizzato il messaggio di prova e che i campi estratti siano compilati correttamente. Per il messaggio di prova riportato sopra, dovresti vedere facility severity = local0info, hostname = myhostmyapp, appName = e procId =. 1234