Coletar registros do AWS Redshift
Versão do analisador:1.0
Neste documento, explicamos como ingerir registros do AWS Redshift no Google Security Operations usando o Amazon S3.
O Amazon Redshift é um serviço de data warehouse em nuvem totalmente gerenciado e em escala de petabytes da Amazon Web Services. Ele permite consultas e análises rápidas em grandes conjuntos de dados usando ferramentas baseadas em SQL e aplicativos de Business Intelligence. O Amazon Redshift registra a atividade do banco de dados, incluindo tentativas de autenticação, conexões, desconexões, mudanças na definição do usuário e consultas executadas no banco de dados. Essa integração usa o recurso de registro de auditoria nativo do Amazon Redshift para enviar arquivos de registro a um bucket do S3, que o Google SecOps ingere usando um feed do Amazon S3 V2.
Antes de começar
Verifique se você tem os pré-requisitos a seguir:
- Uma instância do Google SecOps
- Acesso privilegiado ao AWS Management Console com permissões para gerenciar:
- Amazon Redshift (clusters, grupos de parâmetros)
- Amazon S3 (buckets, políticas de bucket)
- AWS IAM (usuários, políticas)
Configurar um bucket do S3 para geração de registros de auditoria do Amazon Redshift
O Amazon Redshift faz upload de arquivos de registro de auditoria para um bucket do S3. É necessário configurar a política do bucket do S3 para permitir que o serviço do Amazon Redshift grave arquivos de registro.
Criar e configurar o bucket do S3
- Crie um bucket do Amazon S3 seguindo este guia do usuário: Como criar um bucket.
Salve o Nome e a Região do bucket para referência futura (por exemplo,
redshift-audit-logs-to-secops).Selecione o bucket criado no console do Amazon S3 em https://console.aws.amazon.com/s3.
Selecione a guia Permissões.
Na seção Política do bucket, clique em Editar.
Adicione a seguinte política de bucket (substitua
redshift-audit-logs-to-secopspelo nome do seu 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/*" ] } ] }Clique em Salvar alterações.
Ativar o parâmetro de registro de atividade do usuário
O registro de conexão e o registro do usuário são capturados automaticamente quando o registro de auditoria está ativado. Para capturar também o registro de atividades do usuário (que grava cada consulta antes de ser executada no banco de dados), ative o parâmetro enable_user_activity_logging do banco de dados.
- Faça login no console do Amazon Redshift em https://console.aws.amazon.com/redshiftv2/.
- No menu de navegação, acesse Configurações > Workload Manager.
- Selecione o grupo de parâmetros associado ao cluster.
- Selecione a guia Parâmetros.
- Clique em Editar parâmetros.
- Defina o valor do parâmetro enable_user_activity_logging como true.
Clique em Salvar.
Ativar o registro de auditoria do Amazon Redshift no S3
- Faça login no console do Amazon Redshift em https://console.aws.amazon.com/redshiftv2/.
- No menu de navegação, selecione Clusters e escolha o cluster que você quer configurar.
- Selecione a guia Propriedades.
- No painel Configurações do banco de dados, clique em Editar e selecione Editar registro de auditoria.
- Na página Editar geração de registros de auditoria, selecione Ativar.
- Em Destino do registro, selecione Bucket do S3.
- Em Bucket do S3, selecione o bucket configurado (por exemplo,
redshift-audit-logs-to-secops). - Opcional: insira um prefixo de chave do S3 para organizar os arquivos de registro no bucket (por exemplo,
audit-logs/). - Selecione os registros a serem exportados:
- Registro de conexão: tentativas de autenticação, conexões e desconexões
- Registro do usuário: mudanças nas definições do usuário do banco de dados
- Registro de atividades do usuário: cada consulta antes de ser executada no banco de dados
- Clique em Salvar alterações.
Para mais informações, consulte Geração de registros de auditoria do banco de dados no Guia de gerenciamento do Amazon Redshift.
Configurar um usuário do IAM para o Google SecOps
O Google SecOps precisa de um usuário do IAM com acesso de leitura ao bucket do S3 para ingerir os registros de auditoria exportados.
- Crie um usuário seguindo este guia: Criar um usuário do IAM.
- Selecione o Usuário criado.
- Selecione a guia Credenciais de segurança.
- Clique em Criar chave de acesso na seção Chaves de acesso.
- Selecione Serviço de terceiros como Caso de uso.
- Clique em Próxima.
- Opcional: adicione uma tag de descrição.
- Clique em Criar chave de acesso.
- Clique em Fazer o download do arquivo .csv para salvar a chave de acesso e a chave de acesso secreta para referência futura.
- Clique em Concluído.
- Selecione a guia Permissões.
- Clique em Adicionar permissões na seção Políticas de permissões.
- Selecione Adicionar permissões.
- Selecione Anexar políticas diretamente.
- Pesquise a política AmazonS3FullAccess.
- Selecione a política.
- Clique em Próxima.
- Clique em Adicionar permissões
Configurar um feed no Google SecOps para ingerir registros do AWS Redshift
- Acesse Configurações do SIEM > Feeds.
- Clique em Adicionar novo feed.
- Na página seguinte, clique em Configurar um único feed.
- Insira um Nome do feed exclusivo.
- Selecione Amazon S3 V2 como o Tipo de origem.
- Selecione AWS Redshift como o Tipo de registro.
- Clique em Próxima e depois em Enviar.
Especifique valores para os seguintes campos:
- URI do S3:
s3://redshift-audit-logs-to-secops/audit-logs/ - Opção de exclusão da fonte: selecione a opção de exclusão de acordo com sua preferência.
- Idade máxima do arquivo: inclua arquivos modificados no último número de dias (o padrão é 180 dias).
- ID da chave de acesso: chave de acesso do usuário com acesso ao bucket do S3.
- Chave de acesso secreta: chave secreta do usuário com acesso ao bucket do S3.
- Namespace do recurso: o namespace do recurso
- Rótulos de ingestão: o rótulo a ser aplicado aos eventos desse feed.
- URI do S3:
Clique em Próxima e depois em Enviar.
Tabela de mapeamento de UDM
| Campo de registro | Mapeamento de UDM | Lógica |
|---|---|---|
func_label |
additional.fields |
Mesclado |
lpclagg_label |
additional.fields |
Mesclado |
lpcltype_label |
additional.fields |
Mesclado |
msg |
metadata.description |
Mapeado diretamente |
has_principal |
metadata.event_type |
Mapeado: true → STATUS_UPDATE |
has_target_resource |
metadata.event_type |
Mapeado: true → USER_RESOURCE_ACCESS |
has_user |
metadata.event_type |
Mapeado: true → USER_UNCATEGORIZED |
column1 |
metadata.product_event_type |
Mapeado diretamente |
requestID |
metadata.product_log_id |
Mapeado diretamente |
column20 |
network.application_protocol_version |
Mapeado diretamente |
column9 |
network.session_duration.seconds |
Renomeado/mapeado |
column21 |
network.session_id |
Mapeado diretamente |
xid |
network.session_id |
Mapeado diretamente |
column11 |
network.tls.cipher |
Mapeado diretamente |
column10 |
network.tls.version |
Mapeado diretamente |
column16 |
principal.application |
Mapeado diretamente |
column3 |
principal.asset.ip |
Mesclado |
log_event.src_ip |
principal.asset.ip |
Mesclado |
column3 |
principal.hostname |
Mapeado diretamente |
column3 |
principal.ip |
Mesclado |
log_event.src_ip |
principal.ip |
Mesclado |
region |
principal.location.name |
Mapeado diretamente |
column17 |
principal.platform_version |
Mapeado diretamente |
column4 |
principal.port |
Mapeado diretamente |
column5 |
principal.process.pid |
Mapeado diretamente |
pid |
principal.process.pid |
Mapeado diretamente |
accountID |
principal.user.userid |
Mapeado diretamente |
user_id |
principal.user.userid |
Mapeado diretamente |
authmethod_label |
security_result.detection_fields |
Mesclado |
compression_label |
security_result.detection_fields |
Mesclado |
driver_version_label |
security_result.detection_fields |
Mesclado |
iamauthguid_label |
security_result.detection_fields |
Mesclado |
mtu_label |
security_result.detection_fields |
Mesclado |
plugin_name_label |
security_result.detection_fields |
Mesclado |
ssl_compression_label |
security_result.detection_fields |
Mesclado |
ssl_expansion_label |
security_result.detection_fields |
Mesclado |
level |
security_result.severity |
Mapeado: (?i)Info → INFORMATIONAL, (?i)Error → ERROR, (?i)Warning → MEDIUM |
file |
target.file.full_path |
Mapeado diretamente |
expected_bucket_label |
target.resource.attribute.labels |
Mesclado |
expected_s3_prefix_label |
target.resource.attribute.labels |
Mesclado |
sql_query_label |
target.resource.attribute.labels |
Mesclado |
time_zone_label |
target.resource.attribute.labels |
Mesclado |
ClusterIdentifier |
target.resource.name |
Mapeado diretamente |
column6 |
target.resource.name |
Mapeado diretamente |
db |
target.resource.name |
Mapeado diretamente |
column7 |
target.user.user_display_name |
Mapeado diretamente |
user |
target.user.user_display_name |
Mapeado diretamente |
| N/A | metadata.event_type |
Constante: USER_RESOURCE_ACCESS |
| N/A | security_result.severity |
Constante: INFORMATIONAL |
| N/A | target.resource.type |
Constante: DATABASE |
Registro de alterações
Confira o registro de alterações deste analisador
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.