Coletar registros do AWS Redshift

Versão do analisador:1.0

Compatível com:

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

  1. Crie um bucket do Amazon S3 seguindo este guia do usuário: Como criar um bucket.
  2. Salve o Nome e a Região do bucket para referência futura (por exemplo, redshift-audit-logs-to-secops).

  3. Selecione o bucket criado no console do Amazon S3 em https://console.aws.amazon.com/s3.

  4. Selecione a guia Permissões.

  5. Na seção Política do bucket, clique em Editar.

  6. Adicione a seguinte política de bucket (substitua redshift-audit-logs-to-secops pelo 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/*"
                ]
            }
        ]
    }
    
  7. 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.

  1. Faça login no console do Amazon Redshift em https://console.aws.amazon.com/redshiftv2/.
  2. No menu de navegação, acesse Configurações > Workload Manager.
  3. Selecione o grupo de parâmetros associado ao cluster.
  4. Selecione a guia Parâmetros.
  5. Clique em Editar parâmetros.
  6. Defina o valor do parâmetro enable_user_activity_logging como true.
  7. Clique em Salvar.

Ativar o registro de auditoria do Amazon Redshift no S3

  1. Faça login no console do Amazon Redshift em https://console.aws.amazon.com/redshiftv2/.
  2. No menu de navegação, selecione Clusters e escolha o cluster que você quer configurar.
  3. Selecione a guia Propriedades.
  4. No painel Configurações do banco de dados, clique em Editar e selecione Editar registro de auditoria.
  5. Na página Editar geração de registros de auditoria, selecione Ativar.
  6. Em Destino do registro, selecione Bucket do S3.
  7. Em Bucket do S3, selecione o bucket configurado (por exemplo, redshift-audit-logs-to-secops).
  8. Opcional: insira um prefixo de chave do S3 para organizar os arquivos de registro no bucket (por exemplo, audit-logs/).
  9. 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
  10. 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.

  1. Crie um usuário seguindo este guia: Criar um usuário do IAM.
  2. Selecione o Usuário criado.
  3. Selecione a guia Credenciais de segurança.
  4. Clique em Criar chave de acesso na seção Chaves de acesso.
  5. Selecione Serviço de terceiros como Caso de uso.
  6. Clique em Próxima.
    • Opcional: adicione uma tag de descrição.
  7. Clique em Criar chave de acesso.
  8. Clique em Fazer o download do arquivo .csv para salvar a chave de acesso e a chave de acesso secreta para referência futura.
  9. Clique em Concluído.
  10. Selecione a guia Permissões.
  11. Clique em Adicionar permissões na seção Políticas de permissões.
  12. Selecione Adicionar permissões.
  13. Selecione Anexar políticas diretamente.
  14. Pesquise a política AmazonS3FullAccess.
  15. Selecione a política.
  16. Clique em Próxima.
  17. Clique em Adicionar permissões

Configurar um feed no Google SecOps para ingerir registros do AWS Redshift

  1. Acesse Configurações do SIEM > Feeds.
  2. Clique em Adicionar novo feed.
  3. Na página seguinte, clique em Configurar um único feed.
  4. Insira um Nome do feed exclusivo.
  5. Selecione Amazon S3 V2 como o Tipo de origem.
  6. Selecione AWS Redshift como o Tipo de registro.
  7. Clique em Próxima e depois em Enviar.
  8. 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.
  9. 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.