Coletar registros de auditoria do Slack
Neste documento, explicamos como ingerir registros de auditoria do Slack no Google Security Operations usando as funções do Google Cloud Run ou o Amazon S3 com o AWS Lambda.
Os registros de auditoria do Slack fornecem um registro detalhado de eventos relacionados à segurança em toda a organização do Slack Enterprise Grid. Com a API Audit Logs, é possível monitorar ações do usuário, como logins, downloads de arquivos, instalações de apps e mudanças administrativas para fins de compliance e monitoramento de segurança.
Antes de começar
Verifique se você tem os pré-requisitos a seguir:
- Uma instância do Google SecOps.
Um plano Enterprise Grid do Slack com acesso de proprietário da organização.
Acesso privilegiado a:
- Google Cloud (para a opção 1: Cloud Run functions e Cloud Scheduler) ou
- AWS (para a opção 2: S3, IAM, Lambda, EventBridge).
Coletar credenciais do Slack
Criar o app do Slack
A API Slack Audit Logs requer um token OAuth de usuário com o escopo auditlogs:read. Esse token precisa ser obtido com a instalação de um app no nível da organização do Enterprise Grid, não no nível do espaço de trabalho.
- Faça login no Slack como proprietário da sua organização do Enterprise Grid.
- Acesse a página de apps da API Slack.
- Clique em Criar novo app.
- Selecione Do zero.
- Informe os seguintes detalhes de configuração:
- Nome do app: insira um nome descritivo (por exemplo,
Google SecOps Audit Integration). - Escolha um espaço de trabalho para desenvolver seu app: selecione o espaço de trabalho de desenvolvimento do Slack (qualquer espaço de trabalho na organização).
- Nome do app: insira um nome descritivo (por exemplo,
- Clique em Criar app.
Configurar escopos do OAuth
- Na página de configurações do app, selecione OAuth & Permissions na navegação à esquerda.
- Navegue até a seção Escopos.
- Em Escopos de token de usuário (NÃO em "Escopos de token de bot"), clique em Adicionar um escopo do OAuth.
- Adicione o seguinte escopo:
auditlogs:read: esse escopo permite o acesso à API Audit Logs para a organização do Enterprise Grid.
- Em Escopos de token de bot, clique em Adicionar um escopo do OAuth.
- Adicione o seguinte escopo:
users:read: presente para que o app possa ser instalado no nível da organização.
Instalar o app na organização Enterprise
A API Audit Logs lê eventos de toda a organização Enterprise. Por isso, o app precisa ser instalado no nível da organização, e não em um único espaço de trabalho. O Slack documenta duas maneiras de fazer isso. Ambos produzem o mesmo token OAuth de usuário no nível da organização. Use um deles.
Opção A: instalar nas configurações do app (app no nível da organização)
Esse é o caminho da página Developing apps for Enterprise orgs do Slack. Ele não precisa de um URL de redirecionamento, distribuição pública ou serviço da Web.
- Na página de configurações do app, selecione Apps no nível da organização na navegação à esquerda.
- Clique em Ativar.
No prompt de confirmação, clique em Sim, aceitar.
Faça login como proprietário da organização Enterprise.
Selecione OAuth e permissões no menu de navegação à esquerda.
Clique em Install to Organization.
Revise as permissões solicitadas na tela de confirmação e clique em Permitir.
Opção B: distribuição pública e URL compartilhável
Este é o caminho da página da API Audit Logs do Slack. A ativação da distribuição pública não lista o app no Slack Marketplace, apenas permite a instalação fora do espaço de trabalho de desenvolvimento.
- Na página de configurações do app, selecione OAuth & Permissions na navegação à esquerda.
Na seção URLs de redirecionamento, clique em Adicionar novo URL de redirecionamento, insira um URL, clique em Adicionar e em Salvar URLs.
Selecione Gerenciar distribuição no menu de navegação à esquerda.
Em Compartilhar seu app com outros espaços de trabalho, confirme se as quatro seções da lista de verificação mostram uma marca de seleção verde. Se uma seção mostrar um X vermelho, abra-a e conclua a ação necessária.
Marque a caixa de seleção Analisei e removi todas as informações codificadas.
Clique em Ativar distribuição pública.
Faça login como proprietário da organização Enterprise.
Em Compartilhar o app com seu Workspace, copie o URL compartilhável e abra-o no navegador.
Na tela de instalação, abra o menu suspenso no canto superior direito e selecione a organização empresarial, não um espaço de trabalho individual.
Revise as permissões solicitadas e clique em Permitir.
Recuperar credenciais
- Após a conclusão da instalação, você vai voltar para a página OAuth e permissões.
- Na seção Tokens OAuth, localize o Token OAuth do usuário.
- O token começa com
xoxp-. Clique em Copiar e salve esse token com segurança.
Importante: esse é o
SLACK_ADMIN_TOKENda função do Cloud Run ou do Lambda. Armazene-a com segurança. Ele fornece acesso de leitura a todos os registros de auditoria na sua organização do Enterprise Grid.Anote o ID da organização:
- Abra o Slack em um navegador da Web usando o URL da sua organização (por exemplo,
acmeinc.enterprise.slack.com). - Depois que a página carregar, leia o URL. O formato é
https://app.slack.com/client/EXXXXXXX/CXXXXXXX. - Copie a string que começa com
E. Esse é o ID da sua organização.
- Abra o Slack em um navegador da Web usando o URL da sua organização (por exemplo,
Verifique as permissões
Para verificar se o app tem as permissões necessárias:
- Acesse a página de apps da API Slack.
- Selecione seu app.
- Selecione OAuth e permissões no menu de navegação à esquerda.
- Em Tokens OAuth, verifique se um Token OAuth de usuário é exibido (começa com
xoxp-). - Em Escopos, verifique se
auditlogs:readaparece em Escopos de token do usuário.
Testar o acesso à API
Teste o token antes de prosseguir com a integração:
SLACK_TOKEN="xoxp-your-token-here" curl -H "Authorization: Bearer $SLACK_TOKEN" \ "https://api.slack.com/audit/v1/logs?limit=1"
Uma resposta bem-sucedida contém uma matriz entries com eventos de registro de auditoria. Se você receber um erro invalid_auth ou missing_scope, verifique o token e os escopos.
Opção 1: configurar a exportação de registros de auditoria do Slack usando as funções do Google Cloud Run
Essa opção usa as funções do Cloud Run e o Cloud Scheduler para coletar registros de auditoria do Slack e ingeri-los diretamente no Google SecOps usando os scripts de ingestão do Google SecOps.
Antes de começar (opção 1)
Verifique se você atende aos seguintes pré-requisitos adicionais:
- Um projeto do Google Cloud com as seguintes APIs ativadas:
- API Cloud Run Admin
- API Eventarc
- API Pub/Sub
- API Cloud Scheduler
- API Secret Manager
- Permissões para criar funções do Cloud Run, tópicos do Pub/Sub, gatilhos do Eventarc, jobs do Cloud Scheduler e secrets no Secret Manager.
- Um arquivo JSON da conta de serviço do Google SecOps.
Acessar a conta de serviço do Google SecOps
- Faça login no console do Google SecOps.
- Acesse Configurações > Gerenciamento de dados > Agentes de coleta. Se você estiver em uma plataforma somente SIEM, acesse Configurações > Agentes de coleta.
- Clique em Fazer download para baixar o arquivo de autenticação de ingestão.
- Salve o arquivo JSON com segurança. Você vai fazer upload dele como um secret no Secret Manager do Google.
Preparar o código da função
Baixe os arquivos de implantação do repositório do GitHub de scripts de ingestão do Google SecOps:
- Na pasta
slack, faça o download de:.env.ymlmain.pyrequirements.txt
Na raiz do repositório, baixe todo o diretório
commoncom todos os arquivos.Seu diretório de implantação precisa ter a seguinte estrutura:
``` deployment_directory/ ├── common/ │ ├── __init__.py │ ├── auth.py │ ├── env_constants.py │ ├── ingest.py │ ├── status.py │ └── utils.py ├── .env.yml ├── main.py └── requirements.txt ```
Configurar secrets no Google Secret Manager
Armazene credenciais sensíveis no Secret Manager para que a função do Cloud Run as acesse com segurança.
Criar um secret para a conta de serviço do Google SecOps
- No console doGoogle Cloud , acesse Segurança > Secret Manager.
- Clique em Criar secret.
- Informe os seguintes detalhes de configuração:
- Nome: insira
chronicle-service-account. - Valor do secret: cole todo o conteúdo do arquivo JSON da conta de serviço do Google SecOps.
- Nome: insira
- Clique em Criar secret.
Copie o nome do recurso do secret. O formato é:
projects/PROJECT_ID/secrets/chronicle-service-account/versions/latest
Criar um secret para o token do Slack
- Na página do Secret Manager, clique em Criar secret.
- Informe os seguintes detalhes de configuração:
- Nome: insira
slack-admin-token. - Valor da chave secreta: cole o token OAuth do usuário do Slack (começa com
xoxp-).
- Nome: insira
- Clique em Criar secret.
Copie o nome do recurso do secret. O formato é:
projects/PROJECT_ID/secrets/slack-admin-token/versions/latest
Configure as variáveis de ambiente
Abra o arquivo
.env.ymlno diretório de implantação e configure as variáveis de ambiente:CHRONICLE_CUSTOMER_ID: "<your-chronicle-customer-id>" CHRONICLE_REGION: "us" CHRONICLE_SERVICE_ACCOUNT: "projects/<PROJECT_ID>/secrets/chronicle-service-account/versions/latest" CHRONICLE_NAMESPACE: "" POLL_INTERVAL: "5" SLACK_ADMIN_TOKEN: "projects/<PROJECT_ID>/secrets/slack-admin-token/versions/latest"Substitua:
<your-chronicle-customer-id>: o ID de cliente do Google SecOps.<PROJECT_ID>: o ID do projeto do Google Cloud .CHRONICLE_REGION: defina como sua região do Google SecOps. Valores válidos:us,asia-northeast1,asia-south1,asia-southeast1,australia-southeast1,europe,europe-west2,europe-west3,europe-west6,europe-west9,europe-west12,me-central1,me-central2,me-west1,northamerica-northeast2,southamerica-east1.POLL_INTERVAL: intervalo de frequência (em minutos) em que a função é executada. Essa duração precisa ser igual ao intervalo do job do Cloud Scheduler.
Salve o arquivo
.env.yml.
Criar um tópico do Pub/Sub
O Cloud Scheduler aciona a função do Cloud Run por um tópico do Pub/Sub.
- No Console do GCP, acesse Pub/Sub > Tópicos.
- Selecione Criar tópico.
- No campo ID do tópico, insira
slack-audit-trigger. - Clique em Criar.
implantar a função do Cloud Run
Abra um terminal ou o Cloud Shell no console do Google Cloud . Acesse o diretório de implantação e execute o seguinte comando:
gcloud run deploy slack-audit-to-chronicle \ --source . \ --function main \ --base-image google-22/python312 \ --region <REGION> \ --service-account <SERVICE_ACCOUNT_EMAIL> \ --env-vars-file .env.yml \ --memory 512Mi \ --timeout 540 \ --max-instances 1 \ --no-allow-unauthenticated- Substitua
<REGION>pela região (por exemplo,us-central1) e<SERVICE_ACCOUNT_EMAIL>pelo endereço de e-mail da conta de serviço que você quer que a função do Cloud Run use.
- Substitua
Crie o gatilho do Pub/Sub para a função da seguinte maneira:
gcloud eventarc triggers create slack-audit-trigger \ --location <REGION> \ --destination-run-service slack-audit-to-chronicle \ --destination-run-region <REGION> \ --event-filters "type=google.cloud.pubsub.topic.v1.messagePublished" \ --transport-topic projects/<PROJECT_ID>/topics/slack-audit-trigger \ --service-account <SERVICE_ACCOUNT_EMAIL>- Substitua
<PROJECT_ID>pelo ID do projeto Google Cloud .
- Substitua
Aguarde até que a implantação seja concluída.
Configurar o Cloud Scheduler
- No Console do GCP, acesse Cloud Scheduler > Criar job.
Informe os seguintes detalhes de configuração:
Configuração Valor Nome slack-audit-schedulerRegião Selecione a mesma região em que você implantou a função do Cloud Run. Frequência */5 * * * *(a cada 5 minutos, correspondendo ao valorPOLL_INTERVAL)Fuso horário Selecione o fuso horário (UTC recomendado) Clique em Continuar.
Na seção Configurar a execução:
- Tipo de destino: selecione Pub/Sub.
- Tópico: selecione
slack-audit-trigger. - Corpo da mensagem: insira
run.
Clique em Criar.
Opções de frequência de programação
Escolha a frequência com base no volume de registros e nos requisitos de latência:
| Frequência | Expressão Cron | Caso de uso |
|---|---|---|
| A cada 5 minutos | */5 * * * * |
Padrão (recomendado) |
| A cada 15 minutos | */15 * * * * |
Volume médio |
| A cada hora | 0 * * * * |
Volume baixo |
Testar a integração (opção 1)
- No console do Cloud Scheduler, encontre seu job (
slack-audit-scheduler). - Clique em Forçar execução para acionar o job manualmente.
- Aguarde alguns segundos.
- Acesse o Cloud Run.
- Clique no nome do serviço (
slack-audit-to-chronicle). - Clique na guia Registros.
Verifique se a função foi executada com sucesso. Procure por:
Retrieving the Slack Audit logs since: YYYY-MM-DDTHH:MM:SSZ Processing logs... Retrieved X audit logs from the API call Logs processed successfully.
Opção 2: configurar a exportação de registros de auditoria do Slack usando o AWS S3
Essa opção usa o AWS Lambda para coletar registros de auditoria do Slack e armazená-los no Amazon S3. Em seguida, configura um feed do Google SecOps para ingerir os registros.
Antes de começar (opção 2)
Verifique se você atende aos seguintes pré-requisitos adicionais:
- Uma conta da AWS com permissões para criar buckets do S3, usuários/papéis/políticas do IAM, funções do Lambda e regras do EventBridge.
Criar um bucket do Amazon S3
- Crie um bucket do Amazon S3 seguindo o guia do usuário Como criar um bucket.
- Salve o Nome e a Região do bucket para referência futura (por exemplo,
slack-audit-logs).
Configurar a política e os papéis do IAM para uploads do S3
- No console da AWS, acesse IAM > Políticas > Criar política > JSON.
Copie e cole a política a seguir. Substitua
slack-audit-logsse você usou um nome de bucket diferente:{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPutObjects", "Effect": "Allow", "Action": "s3:PutObject", "Resource": "arn:aws:s3:::slack-audit-logs/*" }, { "Sid": "AllowGetStateObject", "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::slack-audit-logs/slack-audit-state.json" } ] }Clique em Próxima.
Insira o nome da política
SlackAuditS3Policy.Clique em Criar política.
Acesse IAM > Roles > Create role > AWS service > Lambda.
Anexe a política recém-criada
SlackAuditS3Policy.Nomeie o papel como
SlackAuditToS3Rolee clique em Criar papel.
Criar a função do Lambda
- No console da AWS, acesse Lambda > Functions > Create function.
- Clique em Criar do zero.
Informe os seguintes detalhes de configuração:
Configuração Valor Nome slack_audit_to_s3Ambiente de execução Python 3.13 Arquitetura x86_64 Papel de execução SlackAuditToS3RoleClique em Criar função.
Depois que a função for criada, abra a guia Código, exclua o stub e cole o código a seguir (
slack_audit_to_s3.py).#!/usr/bin/env python3 # Lambda: Pull Slack Audit Logs (Enterprise Grid) to S3 (JSONL format) import os, json, time, urllib.parse from urllib.request import Request, urlopen from urllib.error import HTTPError, URLError import boto3 BASE_URL = "https://api.slack.com/audit/v1/logs" TOKEN = os.environ["SLACK_AUDIT_TOKEN"] BUCKET = os.environ["S3_BUCKET"] PREFIX = os.environ.get("S3_PREFIX", "slack/audit/") STATE_KEY = os.environ.get("STATE_KEY", "slack-audit-state.json") LIMIT = int(os.environ.get("LIMIT", "200")) MAX_PAGES = int(os.environ.get("MAX_PAGES", "20")) LOOKBACK_SEC = int(os.environ.get("LOOKBACK_SECONDS", "3600")) HTTP_TIMEOUT = int(os.environ.get("HTTP_TIMEOUT", "60")) HTTP_RETRIES = int(os.environ.get("HTTP_RETRIES", "3")) RETRY_AFTER_DEFAULT = int(os.environ.get("RETRY_AFTER_DEFAULT", "2")) # Optional server-side filters (comma-separated 'action' values) ACTIONS = os.environ.get("ACTIONS", "").strip() s3 = boto3.client("s3") def _get_state() -> dict: try: obj = s3.get_object(Bucket=BUCKET, Key=STATE_KEY) st = json.loads(obj["Body"].read() or b"{}") return {"cursor": st.get("cursor")} except Exception: return {"cursor": None} def _put_state(state: dict) -> None: body = json.dumps(state, separators=(",", ":")).encode("utf-8") s3.put_object( Bucket=BUCKET, Key=STATE_KEY, Body=body, ContentType="application/json" ) def _http_get(params: dict) -> dict: qs = urllib.parse.urlencode(params, doseq=True) url = f"{BASE_URL}?{qs}" if qs else BASE_URL req = Request(url, method="GET") req.add_header("Authorization", f"Bearer {TOKEN}") req.add_header("Accept", "application/json") attempt = 0 while True: try: with urlopen(req, timeout=HTTP_TIMEOUT) as r: return json.loads(r.read().decode("utf-8")) except HTTPError as e: # Respect Retry-After on 429/5xx if e.code in (429, 500, 502, 503, 504) and attempt < HTTP_RETRIES: retry_after = 0 try: retry_after = int( e.headers.get("Retry-After", RETRY_AFTER_DEFAULT) ) except Exception: retry_after = RETRY_AFTER_DEFAULT time.sleep(max(1, retry_after)) attempt += 1 continue raise except URLError: if attempt < HTTP_RETRIES: time.sleep(RETRY_AFTER_DEFAULT) attempt += 1 continue raise def _write_page(data: dict, page_idx: int) -> str: """Extract entries from Slack API response and write as JSONL.""" entries = data.get("entries") or [] if not entries: return None lines = [json.dumps(entry, separators=(",", ":")) for entry in entries] body = "\n".join(lines).encode("utf-8") ts = time.strftime("%Y/%m/%d/%H%M%S", time.gmtime()) key = f"{PREFIX}{ts}-slack-audit-p{page_idx:05d}.json" s3.put_object( Bucket=BUCKET, Key=key, Body=body, ContentType="application/json" ) return key def lambda_handler(event=None, context=None): state = _get_state() cursor = state.get("cursor") params = {"limit": LIMIT} if ACTIONS: params["action"] = [a.strip() for a in ACTIONS.split(",") if a.strip()] if cursor: params["cursor"] = cursor else: # First run (or reset): fetch a recent window by time params["oldest"] = int(time.time()) - LOOKBACK_SEC pages = 0 total = 0 last_cursor = None while pages < MAX_PAGES: data = _http_get(params) _write_page(data, pages) entries = data.get("entries") or [] total += len(entries) # Cursor for next page meta = data.get("response_metadata") or {} next_cursor = meta.get("next_cursor") or data.get("next_cursor") if next_cursor: params = {"limit": LIMIT, "cursor": next_cursor} if ACTIONS: params["action"] = [ a.strip() for a in ACTIONS.split(",") if a.strip() ] last_cursor = next_cursor pages += 1 continue break if last_cursor: _put_state({"cursor": last_cursor}) return { "ok": True, "pages": pages + (1 if total or last_cursor else 0), "entries": total, "cursor": last_cursor, } if __name__ == "__main__": print(lambda_handler())
Configurar variáveis de ambiente do Lambda
- Acesse Configuração > Variáveis de ambiente > Editar > Adicionar variável de ambiente.
Insira as seguintes variáveis de ambiente, substituindo pelos seus valores:
Chave Valor de exemplo SLACK_AUDIT_TOKENxoxp-...(token de usuário no nível da organização comauditlogs:read)S3_BUCKETslack-audit-logsS3_PREFIXslack/audit/STATE_KEYslack-audit-state.jsonLIMIT200MAX_PAGES20LOOKBACK_SECONDS3600HTTP_TIMEOUT60HTTP_RETRIES3RETRY_AFTER_DEFAULT2ACTIONS(opcional, filtro de ação separado por vírgulas) Clique em Salvar.
Selecione a guia Configuração. No painel Configuração geral, clique em Editar.
Mude o Tempo limite para
5 minutes(300 segundos) e clique em Salvar.
Criar uma programação do EventBridge
- Acesse Amazon EventBridge > Scheduler > Create schedule.
- Informe os seguintes detalhes de configuração:
- Nome: insira
slack-audit-1h. - Programação recorrente: selecione Programação baseada em taxa.
- Expressão de taxa: insira
1 hours. - Janela de tempo flexível: selecione Desativado.
- Nome: insira
- Clique em Próxima.
- Selecione o destino:
- API de destino: selecione AWS Lambda Invoke.
- Função Lambda: selecione
slack_audit_to_s3.
- Clique em Próxima.
- Clique em Próxima (pule as configurações opcionais).
- Revise e clique em Criar programação.
(Opcional) Criar um usuário do IAM somente leitura para o Google SecOps
- Acesse Console da AWS > IAM > Usuários > Criar usuário.
- Informe os seguintes detalhes de configuração:
- Nome de usuário: insira
secops-reader. - Tipo de acesso: selecione Acesso programático.
- Nome de usuário: insira
- Clique em Próxima.
- Selecione Anexar políticas diretamente.
Clique em Criar política. Na guia JSON, cole:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["s3:GetObject"], "Resource": "arn:aws:s3:::slack-audit-logs/*" }, { "Effect": "Allow", "Action": ["s3:ListBucket"], "Resource": "arn:aws:s3:::slack-audit-logs" } ] }Clique em Próxima.
Insira o nome da política
secops-reader-policy.Clique em Criar política.
Volte para a página de criação de usuários, atualize a lista de políticas e selecione
secops-reader-policy.Clique em Próxima.
Clique em Create user.
Selecione o usuário criado
secops-reader.Acesse Credenciais de segurança > Chaves de acesso > Criar chave de acesso.
Selecione Serviço de terceiros.
Clique em Próxima.
Clique em Criar chave de acesso.
Clique em Fazer o download do arquivo .csv para salvar as credenciais.
Configurar um feed no Google SecOps para ingerir registros de auditoria do Slack
- Acesse Configurações > Gerenciamento de dados > Feeds. Se você estiver em uma plataforma somente SIEM, acesse Configurações > Feeds.
- Clique em Adicionar novo feed.
- Clique em Configurar um único feed.
- No campo Nome do feed, insira um nome para o feed (por exemplo,
Slack Audit Logs). - Selecione Amazon S3 V2 como o Tipo de origem.
- Selecione Auditoria do Slack como o Tipo de registro.
- Clique em Próxima.
Especifique valores para os seguintes parâmetros de entrada:
URI do S3: insira o URI do bucket do S3 com o caminho do prefixo:
``` s3://slack-audit-logs/slack/audit/ ``` Replace `slack-audit-logs` with your actual S3 bucket name.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 nos últimos dias. O padrão é 180 dias.
ID da chave de acesso: chave de acesso do usuário com acesso ao bucket do S3 (do usuário do Identity and Access Management (IAM) do
secops-reader).Chave de acesso secreta: chave secreta do usuário com acesso ao bucket do S3 (do usuário do IAM
secops-reader).Namespace do recurso: o namespace do recurso.
Rótulos de ingestão: o rótulo a ser aplicado aos eventos desse feed.
Clique em Próxima.
Revise a configuração do novo feed na tela Finalizar e clique em Enviar.
Tabela de mapeamento de UDM
| Campo de registro | Mapeamento de UDM | Lógica |
|---|---|---|
action |
metadata.product_event_type |
Mapeado diretamente do campo action |
actor.type |
principal.labels |
Mapeado diretamente com a chave actor.type |
actor.user.email |
principal.user.email_addresses |
Mapeado diretamente |
actor.user.id |
principal.user.product_object_id |
Mapeado diretamente |
actor.user.id |
principal.user.userid |
Mapeado diretamente |
actor.user.name |
principal.user.user_display_name |
Mapeado diretamente |
actor.user.team |
principal.user.group_identifiers |
Mapeado diretamente |
context.ip_address |
principal.ip |
Mapeado diretamente |
context.location.domain |
about.resource.attribute.labels |
Mapeado diretamente com a chave context.location.domain |
context.location.id |
about.resource.id |
Mapeado diretamente |
context.location.name |
about.resource.name |
Mapeado diretamente |
context.location.name |
about.resource.attribute.labels |
Mapeado diretamente com a chave context.location.name |
context.location.type |
about.resource.resource_subtype |
Mapeado diretamente |
context.session_id |
network.session_id |
Mapeado diretamente |
context.ua |
network.http.user_agent |
Mapeado diretamente |
context.ua |
network.http.parsed_user_agent |
User agent analisado derivado do campo context.ua |
country |
principal.location.country_or_region |
Mapeado diretamente |
date_create |
metadata.event_timestamp.seconds |
Carimbo de data/hora da época convertido em objeto de carimbo de data/hora |
details.inviter.email |
target.user.email_addresses |
Mapeado diretamente |
details.inviter.id |
target.user.product_object_id |
Mapeado diretamente |
details.inviter.name |
target.user.user_display_name |
Mapeado diretamente |
details.inviter.team |
target.user.group_identifiers |
Mapeado diretamente |
details.reason |
security_result.description |
Mapeado diretamente; se for uma matriz, concatenado com vírgulas |
details.type |
about.resource.attribute.labels |
Mapeado diretamente com a chave details.type |
details.type |
security_result.summary |
Mapeado diretamente |
entity.app.id |
target.resource.id |
Mapeado diretamente |
entity.app.name |
target.resource.name |
Mapeado diretamente |
entity.channel.id |
target.resource.id |
Mapeado diretamente |
entity.channel.name |
target.resource.name |
Mapeado diretamente |
entity.channel.privacy |
target.resource.attribute.labels |
Mapeado diretamente com a chave entity.channel.privacy |
entity.file.filetype |
target.resource.attribute.labels |
Mapeado diretamente com a chave entity.file.filetype |
entity.file.id |
target.resource.id |
Mapeado diretamente |
entity.file.name |
target.resource.name |
Mapeado diretamente |
entity.file.title |
target.resource.attribute.labels |
Mapeado diretamente com a chave entity.file.title |
entity.huddle.date_end |
about.resource.attribute.labels |
Mapeado diretamente com a chave entity.huddle.date_end |
entity.huddle.date_start |
about.resource.attribute.labels |
Mapeado diretamente com a chave entity.huddle.date_start |
entity.huddle.id |
about.resource.attribute.labels |
Mapeado diretamente com a chave entity.huddle.id |
entity.huddle.participants.0 |
about.resource.attribute.labels |
Mapeado diretamente com a chave entity.huddle.participants.0 |
entity.huddle.participants.1 |
about.resource.attribute.labels |
Mapeado diretamente com a chave entity.huddle.participants.1 |
entity.type |
target.resource.resource_subtype |
Mapeado diretamente |
entity.user.email |
target.user.email_addresses |
Mapeado diretamente |
entity.user.id |
target.user.product_object_id |
Mapeado diretamente |
entity.user.name |
target.user.user_display_name |
Mapeado diretamente |
entity.user.team |
target.user.group_identifiers |
Mapeado diretamente |
entity.workflow.id |
target.resource.id |
Mapeado diretamente |
entity.workflow.name |
target.resource.name |
Mapeado diretamente |
id |
metadata.product_log_id |
Mapeado diretamente |
ip |
principal.ip |
Mapeado diretamente |
user_agent |
network.http.user_agent |
Mapeado diretamente |
user_id |
principal.user.product_object_id |
Mapeado diretamente |
username |
principal.user.product_object_id |
Mapeado diretamente |
metadata.event_type |
O padrão é USER_COMMUNICATION. Defina como USER_CREATION se a ação for user_created, USER_LOGIN se a ação for user_login ou user_login_failed, USER_LOGOUT se a ação for user_logout, USER_RESOURCE_ACCESS se a ação corresponder a file_, USER_RESOURCE_UPDATE_PERMISSIONS se a ação corresponder a app_, private_, public_ ou auth_policy_, USER_CHANGE_PERMISSIONS se a ação corresponder a pref, legal_hold_, workflow_, channel_, user_deactivated, user_reactivated, role_change_ ou user_channel_ |
|
metadata.log_type |
Fixado no código como SLACK_AUDIT. |
|
metadata.product_name |
Defina como Enterprise Grid se date_create existir. Caso contrário, defina como Audit Logs se user_id existir. |
|
metadata.vendor_name |
Fixado no código como Slack. |
|
extensions.auth.mechanism |
Fixado no código como REMOTE. |
|
extensions.auth.type |
Defina como SSO se a ação contiver user_login ou user_logout. Caso contrário, defina como MACHINE. |
|
security_result.action |
O padrão é ALLOW. Defina como BLOCK se a ação for user_login_failed. |
|
target.application |
Defina como Slack se date_create existir. Caso contrário, defina como SLACK se user_id existir. |
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.