Claude Platform Docs
AdministraçãoSecurity posture

Enviar eventos de Security posture para o seu SIEM

Solicite as atividades de Security posture do Activity Feed da Compliance API, leia uma delas campo por campo e mantenha seu SIEM atualizado com uma leitura agendada que captura atividades atrasadas.

Esta página leva você de uma Compliance Access Key até atividades de Security posture chegando como eventos ao seu sistema de gerenciamento de informações e eventos de segurança (SIEM) de forma agendada. A visão geral informa quais organizações têm essas atividades. Você precisa de uma Compliance Access Key que cubra a organização, com o escopo read:compliance_activities ou read:org_audit.

Solicitar as atividades

Para ler apenas essas atividades, filtre o feed com activity_types[]. Nesta requisição, created_at.gte define o created_at mais antigo a ser lido, e order=asc retorna primeiro as atividades mais antigas:

cURL
curl --fail-with-body -sS -G \
  "https://api.anthropic.com/v1/compliance/activities" \
  -H "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
  -H "anthropic-version: 2026-10-21" \
  --data-urlencode "activity_types[]=org_security_control_attestation_updated" \
  --data-urlencode "created_at.gte=2026-10-20T00:00:00Z" \
  --data-urlencode "order=asc" \
  --data-urlencode "limit=5000"

A referência da APIPré-visualização disponível com links para a referência da API — pressione Tab até o foco entrar no cartão, Escape para voltar. descreve cada parâmetro.

Ler uma atividade

Cada elemento do array data da resposta é uma atividade como esta.

{
  "id": "activity_01Hq7ZtYc4Vb2NmKx8RsPd3W",
  "type": "org_security_control_attestation_updated",
  "created_at": "2026-10-20T15:04:00.220114Z",
  "organization_id": "org_01JuY4bkwkH1x4PodBJaWmh2",
  "organization_uuid": "91012d09-e48b-438e-a489-1bebfd8fa6f9",
  "actor": {
    "type": "user_actor",
    "email_address": "jane.doe@example.com",
    "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu",
    "ip_address": "192.0.2.34",
    "user_agent": "Mozilla/5.0..."
  },
  "control": "directory_sync_enabled",
  "action": "attested",
  "status": "accepted_risk"
}
  • control nomeia o controle de segurança, uma configuração ou prática recomendada.
  • action informa o que aconteceu com a atestação do controle, a declaração registrada de uma pessoa sobre o controle. Aqui, attested significa que uma atestação foi registrada para um controle que não tinha nenhuma.
  • status é o valor da atestação. Aqui ele é Risco aceito (accepted_risk): o controle não está implementado, e a organização aceita o risco.
  • actor aqui identifica a pessoa que fez a atestação, pelo ID de usuário e pelo endereço de e-mail.
  • created_at aqui é quando ela fez a atestação.

A Referência de eventos de Security posture lista mais campos e valores.

Se a resposta estiver vazia

Um array data vazio é válido. O feed contém apenas alterações feitas desde que ele começou a registrar essas atividades para a organização. Ele fica vazio até que uma atestação seja feita ou alterada.

Verifique se a organização tem essas atividades. Depois, peça a alguém que faça a atestação de um controle. Após algum tempo, repita a requisição.

Executar de forma agendada

Qualquer uma dessas atividades pode se tornar consultável mais tarde do que o atraso de indexação habitual de 1 minuto do Activity Feed, com um created_at que já está no passado. Assim, uma integração que só avança, a partir de um cursor ou de um created_at.gte que avança, nunca vê essa atividade. Releia uma janela retroativa fixa de 4 horas a cada execução e descarte as atividades que você já armazenou:

query = activity_types[]=org_security_control_attestation_updated
      & created_at.gte={now - 4 hours}
      & order=asc
      & limit=5000
cursor = null
loop:
  if cursor is null:
    page = GET /v1/compliance/activities?{query}
  else:
    page = GET /v1/compliance/activities?{query}&after_id={cursor}
  for activity in page.data:
    if activity.id is not in stored_ids:
      store(activity)
      add activity.id to stored_ids
  if not page.has_more: break
  cursor = page.last_id
  • Execute com frequência: Execute o loop com a frequência de que seus alertas precisam, por exemplo a cada 5 minutos.
  • Mantenha a mesma consulta durante toda a execução: Calcule created_at.gte, em UTC e codificado para URL, no início de cada execução. Envie os mesmos filtros e o mesmo order em todas as páginas. Com order=asc, passar last_id como after_id retorna a próxima página de atividades mais recentes. Paginar resultados explica after_id e last_id.
  • Desduplique por id: Esta etapa é obrigatória, porque execuções consecutivas se sobrepõem.
  • Tratar execuções com falha: Se uma requisição falhar após as novas tentativas descritas em Tratar erros da Compliance API, encerre a execução. A próxima execução lê toda a janela dela novamente. Se as execuções falharem ou pararem por mais de 4 horas, a próxima releitura diária lê as atividades que elas perderam.

Reler 15 dias uma vez por dia

Uma vez por dia, execute o mesmo loop com uma janela retroativa de 15 dias em vez de 4 horas. Esta releitura diária também lê uma atividade que se torna consultável até 14 dias após o seu created_at.

  • Registre o horário de início de cada releitura diária que for concluída.
  • Exclua um id armazenado somente se você o armazenou mais de 16 dias antes do último início registrado.
  • Se nenhum início tiver sido registrado, defina created_at.gte tão para trás quanto você precisar; o feed mantém as atividades por 6 anos.
  • Se tiver passado mais de um dia desde o último início registrado, execute a próxima releitura diária com created_at.gte definido como 15 dias antes desse início.

Se você já ingere o feed completo

Uma integração que lê todo o Activity Feed, sem um filtro activity_types[] que deixe essas atividades de fora, já as recebe. Verifique duas coisas:

Verificar se funciona

Depois que alguém atesta um controle, execute o loop até que ele armazene a nova atividade. Em seguida, execute-o novamente: ele não armazena essa atividade uma segunda vez.

Próximos passos

Para gerar alertas com base no horário em que você armazenou uma atividade, e não no seu created_at, consulte Detectar alterações de Security posture. Para o Open Cybersecurity Schema Framework (OCSF), consulte Mapear eventos de Security posture para OCSF. Para os resultados atuais, consulte Referência de resultados de Security posture.

Esta página foi útil?