Claude Platform Docs
AdministraciónSecurity posture

Comparar los eventos de Security posture almacenados con los resultados actuales

Una vez al día, compara las actividades de atestación que tu SIEM ha almacenado con los resultados actuales del endpoint y decide qué discrepancias necesitan a una persona.

El Activity Feed puede entregar una actividad con retraso, y el endpoint no guarda historial, así que cada fuente puede mostrar un cambio que la otra no muestra. Una comparación diaria encuentra lo que le falta a tu almacén de “security information and event management” (gestión de información y eventos de seguridad), o SIEM. El Activity Feed no registra todos los cambios, así que una atestación puede ser anterior a la primera actividad del Activity Feed para su control de seguridad, y en casos poco frecuentes un cambio no tiene ninguna actividad. Si solo informas de los resultados actuales, no necesitas la comprobación.

Necesitas una Compliance Access Key que cubra la organización, con read:compliance_org_data para el endpoint y read:compliance_activities para el Activity Feed, o read:org_audit para ambos.

Ejecutar la comprobación

Inicia cada ejecución después de que termine la relectura diaria del día, para que las actividades tardías ya estén almacenadas.

  1. Lista las organizaciones vinculadas con Listar organizaciones. Obtienes el uuid de cada una.
  2. Llama al endpoint una vez por cada organización. Obtienes un 200, o un 404 en cada ejecución para una organización a la que el endpoint no da servicio (consulta Disponibilidad de Security posture). Un 404 significa que la organización no se lee en esta ejecución. Mantén una lista de las organizaciones que devuelven un 200, cada una con el evaluated_at de su primera respuesta 200: tu primera ejecución para la organización.
  3. Aparta lo que indican las reglas de exclusión.
  4. Agrupa las actividades de atestación almacenadas restantes de la organización por control de seguridad y toma la más reciente según created_at de cada uno. Obtienes una actividad por cada control, o ninguna.
  5. Para cada control que quede, busca su fila en la tabla de decisión. Obtienes Coincide, Esperado o Investigar.
  6. Actúa sobre un Investigar solo cuando la siguiente ejecución que lee la organización lo vuelva a mostrar; actúa sobre la fila 6 de inmediato, y para las filas 10 y 11 sigue en cambio las reglas de registros sustitutos. Una ejecución que no leyó la organización ni cuenta ni reinicia la espera.

Espacia tus llamadas y gestiona un 429 como se describe en 429 Too Many Requests; una organización cuyas llamadas fallan tras tus reintentos no se lee en esta ejecución, y una llamada fallida no es un cambio.

Emparejar los campos

Empareja una entrada de la respuesta con una actividad almacenada mediante estos campos.

En la respuestaEn la actividadCómo se relacionan
organization_idorganization_uuidEl mismo valor; el propio organization_id de la actividad lleva el prefijo org_.
controls[].idcontrolEl mismo identificador, salvo lo indicado en la regla S2.
attestation.attested_atcreated_at de la actividad attested, changed o renewed más recienteEl mismo momento cuando la respuesta muestra la atestación; compáralos como marcas de tiempo, no como cadenas.
statusstatusMientras la atestación está vigente, attested_completed se empareja con completed, y attested_accepted_risk y failed_check_accepted_risk con accepted_risk; nada se empareja con control_failed.

Apartar lo que no se puede comparar

Antes de comparar, aparta lo siguiente.

#QuéRegla
S1Una actividad de atestación almacenada cuyo action no es attested, changed, renewed, cleared ni lapsedDéjala fuera de toda la comprobación; marca cada nuevo valor de action para revisión una vez.
S2Una actividad de atestación almacenada que nombra mdm_cowork_required_organizationCuéntala como una de mdm_chat_required_organization.
S3Una actividad de atestación almacenada cuyo control no tiene entrada en la respuestaNada que comparar; informa del control como ausente de la respuesta, nunca como Superado (passed).
S4Una entrada cuyo status es descriptive, not_applicable o not_evaluatedOmítela; una ejecución en la que es not_evaluated no cuenta para ese control.

Decidir qué significa cada discrepancia

Cada control que queda encaja exactamente en una fila.

#Actividad almacenada más recienteEntrada en la respuestaDictamenQué hacer
1attested, changed o renewedattested_at es igual a su created_at; state es in_force; status se empareja con su valor.CoincideNada.
2clearedattestation es null, salvo lo indicado en la fila 11.CoincideNada.
3lapsed, con Riesgo aceptado (accepted_risk)attestation es null, o tiene la marca de tiempo de la actividad anterior con state check_passing o setting_changed.CoincideNada.
4lapsed, con completed o control_failedattestation es null.CoincideNada.
5attested, changed o renewedattested_at es igual a su created_at; state es review_due, check_passing o setting_changed.EsperadoNo vigente: actúa una vez ante cada nueva situación, sin esperar una actividad; un regreso a in_force lo reinicia.
6attested, changed o renewed, con Completado (completed) y un created_at posterior a tu primera ejecuciónEn la primera ejecución que compara la actividad, attestation es null y status es failed con un current_value.InvestigarLa página Security posture puede mostrar como Superado un control cuya verificación no se cumple: marca el control para revisión, sin esperar.
7attested, changed o renewed, con completedattestation es null; status no es ni not_attested ni failed con un current_value null; la fila 6 no encaja.EsperadoNada que comparar; la respuesta nunca lo muestra.
8attested, changed o renewed, como Fallido (control_failed)attestation es null; status es uno de estos tres: failed; cualquier estado que dé la verificación automática; o, a partir de la fecha de finalización (review_date, en UTC), not_attested.EsperadoNada que comparar; actúa una vez cuando status deje de ser failed a partir de la fecha de finalización.
9attested, changed o renewed, con accepted_riskattestation es null, y status es passed, matches_profile o exceeds_baseline.EsperadoAlmacena un registro sustituto (regla de registros sustitutos 7).
10Ninguna, o todas las actividades almacenadas son anteriores a attested_atattestation está presente.InvestigarSigue las reglas de registros sustitutos.
11Ninguna, o una cuyo valor no es control_failedcurrent_value es null, y status es failed.InvestigarA tu almacén le falta una atestación como Fallido (control_failed): sigue las reglas de registros sustitutos y actúa una vez cuando status deje de ser failed.
12attested, changed, renewed o cleared, posterior a attested_at, con otra actividad de casi el mismo momentoattestation está presente.EsperadoLos cambios realizados casi al mismo tiempo pueden almacenarse en cualquier orden.
13Lo mismo, sin esa segunda actividadattestation está presente.InvestigarContacta con el soporte de Anthropic una sola vez.
14attested, changed o renewedattested_at es igual a su created_at; state es in_force; status no se empareja con su valor.InvestigarContacta con el soporte de Anthropic una sola vez.
15attested, changed o renewed; ninguna fila anterior encajaattestation es null.InvestigarLo más probable es que la atestación se haya borrado: almacena un registro sustituto (regla de registros sustitutos 7) y marca para revisión una sola vez.
16Ningunaattestation es null, y la fila 11 no encaja.CoincideNada.
17Cualquier otraCualquier otra.InvestigarMarca para revisión una vez.

Conservar un registro sustituto cuando las dos fuentes no se pueden emparejar

Un registro sustituto ocupa el lugar de lo que le falta a una de las dos fuentes, y lo mantienes separado de tus actividades almacenadas. Para las filas 10 y 11, vuelve a leer el Activity Feed, y almacena y marca el registro sustituto solo si no llega nada dentro de 15 días, el alcance de la relectura diaria. En tu primera ejecución, almacénalo de inmediato, sin revisión.

Registros sustitutos de la fila 10, identificados por el control y attested_at:

  1. Vuelve a leer desde tu actividad almacenada más reciente para el control, o desde attested_at inclusive si no has almacenado ninguna; los 15 días cuentan desde attested_at. Construye el registro sustituto a partir de la entrada, marcado como sin actividad; en la tabla de decisión, léelo como una actividad attested en ese attested_at cuyo valor se empareja con su status, si lo hay.
  2. En cada ejecución que muestre la atestación, actualiza su status y su state.
  3. Cuando llegue una actividad cuyo created_at sea igual a ese attested_at, reemplaza el registro sustituto por ella.
  4. Cuando dos ejecuciones seguidas no muestren la atestación, resuelve el registro sustituto; marca eso para revisión salvo que lo explique una actividad almacenada posterior o una discrepancia pendiente de la fila 10 para el control, o que ambas ejecuciones muestren descriptive.
  5. Una ejecución que no leyó la organización, o que muestra not_evaluated, ni cuenta para esas dos ejecuciones ni las reinicia.
  6. Si la atestación vuelve a mostrarse, reabre el mismo registro sustituto.

Registros sustitutos de las filas 9, 11 y 15, identificados solo por el control:

  1. Para la fila 11, los 15 días cuentan desde la primera ejecución que muestra el status. Mientras el registro sustituto esté pendiente, no marques nada más para ese control; resuélvelo cuando llegue una actividad posterior, se muestre la atestación o dos ejecuciones seguidas encajen en otra fila.
  2. Cuando un registro sustituto de la fila 9 se resuelva porque la atestación se muestra como failed_check_accepted_risk, márcalo para revisión una vez: el riesgo está vigente.

Ejemplo práctico

Estas dos ejecuciones leen la organización del ejemplo de respuesta de la Referencia de resultados; la ejecución 1 es tu primera ejecución.

  • Ejecución 1, directory_sync_enabled. Almacenado: attested, accepted_risk, creado en 2026-10-20T15:04:00.220114Z. Respuesta: failed_check_accepted_risk, in_force, el mismo attested_at. Fila 1: Coincide.
  • Ejecución 1, allowed_invite_domains. Almacenado: nada. Respuesta: descriptive, attestation null. Regla S4: se aparta.
  • Ejecución 1, oauth_conditional_access. Almacenado: nada. Respuesta: una attestation con state review_due. Fila 10: Investigar. En tu primera ejecución, almacena un registro sustituto de inmediato, sin revisión.
  • Ejecución 2, oauth_conditional_access. Registro sustituto: el de la ejecución 1. Respuesta: la misma. Fila 5: Esperado. Actúa una vez ante review_due.

Lo que la comprobación no puede encontrar

La comprobación diaria no puede encontrar una actividad que falta para una atestación que la respuesta omite en un control automático. La respuesta no da ninguna señal de esa atestación, o solo el status failed, que parece el estado que da la verificación automática.

Cuando una organización deja de responder

Una organización que ha devuelto un 200 y después devuelve un 404 en varias ejecuciones seguidas necesita a una persona, una vez. Pregunta a alguien con acceso a la página Security posture si se ha desactivado la página para la organización (consulta Disponibilidad de Security posture). Si no se ha desactivado la página, contacta con tu representante de Anthropic. Puede que la organización se haya eliminado, o que tu acceso, Security posture o el endpoint hayan dejado de estar disponibles para la organización. Sea cual sea la causa, resuelve los registros sustitutos y las discrepancias pendientes de la organización sin revisión, sigue llamando a la organización y vuelve a abrirlos si la organización devuelve un 200.

¿Te resultó útil esta página?