Raccogli i log AWS Redshift
Parser Version: 1.0
Questo documento spiega come importare i log di AWS Redshift in Google Security Operations utilizzando Amazon S3.
Amazon Redshift è un servizio di data warehouse su cloud completamente gestito su scala petabyte di Amazon Web Services. Consente query e analisi rapide su grandi set di dati utilizzando strumenti basati su SQL e applicazioni di business intelligence. Amazon Redshift registra l'attività del database, inclusi i tentativi di autenticazione, le connessioni, le disconnessioni, le modifiche alla definizione degli utenti e le query eseguite sul database. Questa integrazione utilizza la funzionalità di audit logging nativa di Amazon Redshift per inviare i file di log a un bucket S3, che Google SecOps acquisisce utilizzando un feed Amazon S3 V2.
Prima di iniziare
Assicurati di soddisfare i seguenti prerequisiti:
- Un'istanza Google SecOps
- Accesso privilegiato alla Console di gestione AWS con autorizzazioni per gestire:
- Amazon Redshift (cluster, gruppi di parametri)
- Amazon S3 (bucket, policy del bucket)
- AWS IAM (utenti, criteri)
Configura un bucket S3 per l'audit logging di Amazon Redshift
Amazon Redshift carica i file di log di controllo in un bucket S3. Devi configurare la policy del bucket S3 per consentire al servizio Amazon Redshift di scrivere file di log.
Crea e configura il bucket S3
- Crea un bucket Amazon S3 seguendo questa guida dell'utente: Creazione di un bucket.
Salva il nome e la regione del bucket per riferimento futuro (ad esempio,
redshift-audit-logs-to-secops).Seleziona il bucket creato nella console Amazon S3 all'indirizzo https://console.aws.amazon.com/s3.
Seleziona la scheda Autorizzazioni.
Nella sezione Policy del bucket, fai clic su Modifica.
Aggiungi la seguente policy del bucket (sostituisci
redshift-audit-logs-to-secopscon il nome del tuo bucket):{ "Version": "2012-10-17", "Statement": [ { "Sid": "Put bucket policy needed for audit logging", "Effect": "Allow", "Principal": { "Service": "redshift.amazonaws.com" }, "Action": [ "s3:PutObject", "s3:GetBucketAcl" ], "Resource": [ "arn:aws:s3:::redshift-audit-logs-to-secops", "arn:aws:s3:::redshift-audit-logs-to-secops/*" ] } ] }Fai clic su Salva modifiche.
Attiva il parametro del log delle attività utente
Il log di connessione e il log utente vengono acquisiti automaticamente quando la registrazione dei log di controllo è attivata. Per acquisire anche il log delle attività utente (che registra ogni query prima che venga eseguita sul database), devi attivare il parametro del database enable_user_activity_logging.
- Accedi alla console Amazon Redshift all'indirizzo https://console.aws.amazon.com/redshiftv2/.
- Nel menu di navigazione, vai a Configurazioni > Workload Manager.
- Seleziona il gruppo di parametri associato al tuo cluster.
- Seleziona la scheda Parametri.
- Fai clic su Modifica parametri.
- Imposta il valore parametro enable_user_activity_logging su true.
Fai clic su Salva.
Abilitare l'audit logging di Amazon Redshift su S3
- Accedi alla console Amazon Redshift all'indirizzo https://console.aws.amazon.com/redshiftv2/.
- Nel menu di navigazione, seleziona Cluster, poi seleziona il cluster che vuoi configurare.
- Seleziona la scheda Proprietà.
- Nel riquadro Configurazioni database, fai clic su Modifica, poi seleziona Modifica logging di controllo.
- Nella pagina Modifica logging di controllo, seleziona Attiva.
- Per Destinazione log, seleziona Bucket S3.
- Per Bucket S3, seleziona il bucket che hai configurato (ad esempio,
redshift-audit-logs-to-secops). - (Facoltativo) Inserisci un prefisso della chiave S3 per organizzare i file di log all'interno del bucket (ad esempio,
audit-logs/). - Seleziona i log da esportare:
- Log di connessione: tentativi di autenticazione, connessioni e disconnessioni
- Log utente: modifiche alle definizioni degli utenti del database
- Log delle attività utente: ogni query prima dell'esecuzione sul database
- Fai clic su Salva modifiche.
Per saperne di più, consulta Registrazione audit log del database nella Guida alla gestione di Amazon Redshift.
Configura un utente IAM per Google SecOps
Google SecOps ha bisogno di un utente IAM con accesso in lettura al bucket S3 per importare i log di controllo esportati.
- Crea un utente seguendo questa guida utente: Creazione di un utente IAM.
- Seleziona l'utente creato.
- Seleziona la scheda Credenziali di sicurezza.
- Fai clic su Crea chiave di accesso nella sezione Chiavi di accesso.
- Seleziona Servizio di terze parti come Caso d'uso.
- Fai clic su Avanti.
- (Facoltativo) Aggiungi il tag di descrizione.
- Fai clic su Crea chiave di accesso.
- Fai clic su Download .csv file (Scarica file .csv) per salvare la chiave di accesso e la chiave di accesso segreta per riferimento futuro.
- Fai clic su Fine.
- Seleziona la scheda Autorizzazioni.
- Fai clic su Aggiungi autorizzazioni nella sezione Criteri per le autorizzazioni.
- Seleziona Aggiungi autorizzazioni.
- Seleziona Allega direttamente le norme.
- Cerca la policy AmazonS3FullAccess.
- Seleziona la policy.
- Fai clic su Avanti.
- Fai clic su Aggiungi autorizzazioni.
Configura un feed in Google SecOps per importare i log di AWS Redshift
- Vai a Impostazioni SIEM > Feed.
- Fai clic su Aggiungi nuovo feed.
- Nella pagina successiva, fai clic su Configura un singolo feed.
- Inserisci un nome univoco per il nome feed.
- Seleziona Amazon S3 V2 come Tipo di origine.
- Seleziona AWS Redshift come Tipo di log.
- Fai clic su Avanti e poi su Invia.
Specifica i valori per i seguenti campi:
- URI S3:
s3://redshift-audit-logs-to-secops/audit-logs/ - Opzione di eliminazione dell'origine: seleziona l'opzione di eliminazione in base alle tue preferenze
- Età massima del file: includi i file modificati nell'ultimo numero di giorni (il valore predefinito è 180 giorni)
- ID chiave di accesso: chiave di accesso utente con accesso al bucket S3
- Chiave di accesso segreta: chiave segreta dell'utente con accesso al bucket S3
- Spazio dei nomi dell'asset: lo spazio dei nomi dell'asset
- Etichette di importazione: l'etichetta da applicare agli eventi di questo feed
- URI S3:
Fai clic su Avanti e poi su Invia.
Tabella di mappatura UDM
| Campo log | Mappatura UDM | Logica |
|---|---|---|
func_label |
additional.fields |
Unita |
lpclagg_label |
additional.fields |
Unita |
lpcltype_label |
additional.fields |
Unita |
msg |
metadata.description |
Mappato direttamente |
has_principal |
metadata.event_type |
Mappato: true → STATUS_UPDATE |
has_target_resource |
metadata.event_type |
Mappato: true → USER_RESOURCE_ACCESS |
has_user |
metadata.event_type |
Mappato: true → USER_UNCATEGORIZED |
column1 |
metadata.product_event_type |
Mappato direttamente |
requestID |
metadata.product_log_id |
Mappato direttamente |
column20 |
network.application_protocol_version |
Mappato direttamente |
column9 |
network.session_duration.seconds |
Rinominate/mappate |
column21 |
network.session_id |
Mappato direttamente |
xid |
network.session_id |
Mappato direttamente |
column11 |
network.tls.cipher |
Mappato direttamente |
column10 |
network.tls.version |
Mappato direttamente |
column16 |
principal.application |
Mappato direttamente |
column3 |
principal.asset.ip |
Unita |
log_event.src_ip |
principal.asset.ip |
Unita |
column3 |
principal.hostname |
Mappato direttamente |
column3 |
principal.ip |
Unita |
log_event.src_ip |
principal.ip |
Unita |
region |
principal.location.name |
Mappato direttamente |
column17 |
principal.platform_version |
Mappato direttamente |
column4 |
principal.port |
Mappato direttamente |
column5 |
principal.process.pid |
Mappato direttamente |
pid |
principal.process.pid |
Mappato direttamente |
accountID |
principal.user.userid |
Mappato direttamente |
user_id |
principal.user.userid |
Mappato direttamente |
authmethod_label |
security_result.detection_fields |
Unita |
compression_label |
security_result.detection_fields |
Unita |
driver_version_label |
security_result.detection_fields |
Unita |
iamauthguid_label |
security_result.detection_fields |
Unita |
mtu_label |
security_result.detection_fields |
Unita |
plugin_name_label |
security_result.detection_fields |
Unita |
ssl_compression_label |
security_result.detection_fields |
Unita |
ssl_expansion_label |
security_result.detection_fields |
Unita |
level |
security_result.severity |
Mappato: (?i)Info → INFORMATIONAL, (?i)Error → ERROR, (?i)Warning → MEDIUM |
file |
target.file.full_path |
Mappato direttamente |
expected_bucket_label |
target.resource.attribute.labels |
Unita |
expected_s3_prefix_label |
target.resource.attribute.labels |
Unita |
sql_query_label |
target.resource.attribute.labels |
Unita |
time_zone_label |
target.resource.attribute.labels |
Unita |
ClusterIdentifier |
target.resource.name |
Mappato direttamente |
column6 |
target.resource.name |
Mappato direttamente |
db |
target.resource.name |
Mappato direttamente |
column7 |
target.user.user_display_name |
Mappato direttamente |
user |
target.user.user_display_name |
Mappato direttamente |
| N/D | metadata.event_type |
Costante: USER_RESOURCE_ACCESS |
| N/D | security_result.severity |
Costante: INFORMATIONAL |
| N/D | target.resource.type |
Costante: DATABASE |
Log delle modifiche
Visualizza il log delle modifiche per questo parser
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.