Claude Platform Docs

Справочник по результатам Security posture

Справочные сведения о конечной точке Compliance API, которая возвращает текущие результаты Security posture для организации: запрос, поля ответа, значение каждого статуса и ошибки.

Эта конечная точка возвращает записи для большинства мер безопасности организации, оценённых в момент запроса, вместе с подтверждением Security posture, которое ответ содержит для каждой из них. Вам нужен Compliance Access Key, охватывающий организацию, с областью действия read:compliance_org_data или read:org_audit; в разделе Доступность Security posture указано, какие организации можно прочитать.

Запрос

Отправьте запрос GET на /v1/compliance/organizations/{organization_id}/security_posture. Каждый вызов читает одну организацию, и ответ не разбивается на страницы.

cURL
curl --fail-with-body -sS \
  "https://api.anthropic.com/v1/compliance/organizations/91012d09-e48b-438e-a489-1bebfd8fa6f9/security_posture" \
  -H "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
  -H "anthropic-version: 2026-10-21"
ЭлементПравило
organization_iduuid связанной организации, полученный через Список организаций; любое другое значение возвращает 404.
КлючКлюч для родительской организации может указывать любую связанную организацию, а ключ для отдельной организации может указывать только эту организацию.
anthropic-versionОбязателен; запрос без него возвращает 400.
Параметры запросаОтсутствуют; запрос с любым параметром запроса возвращает 400.

Ответ

Следующий сокращённый пример показывает четыре из мер, которые может содержать ответ. Это ответ на запрос с ключом, у которого есть read:compliance_org_data и read:compliance_user_data.

Response
{
  "type": "security_posture",
  "organization_id": "91012d09-e48b-438e-a489-1bebfd8fa6f9",
  "evaluated_at": "2027-02-09T09:00:02.417305Z",
  "comments_status": "not_enabled",
  "controls": [
    {
      "id": "sso_enabled",
      "display_name": "Single sign-on (SSO)",
      "section": "identity_access",
      "setting_name": "sso_enabled",
      "status": "passed",
      "rating": "passed",
      "current_value": "On",
      "desired_state": "On",
      "attestation": null
    },
    {
      "id": "directory_sync_enabled",
      "display_name": "Directory sync (SCIM)",
      "section": "identity_access",
      "setting_name": "directory_sync_enabled",
      "status": "failed_check_accepted_risk",
      "rating": "passed",
      "current_value": "Off",
      "desired_state": "On",
      "attestation": {
        "state": "in_force",
        "attested_at": "2026-10-20T15:04:00.220114Z",
        "comment": null,
        "attested_by": {
          "type": "user_actor",
          "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu"
        }
      }
    },
    {
      "id": "allowed_invite_domains",
      "display_name": "Allowed email domains",
      "section": "identity_access",
      "setting_name": "allowed_invite_domains",
      "status": "descriptive",
      "rating": "descriptive",
      "current_value": "example.com",
      "desired_state": null,
      "attestation": null
    },
    {
      "id": "oauth_conditional_access",
      "display_name": "OAuth conditional access on connected SaaS",
      "section": "connectors_integrations",
      "setting_name": null,
      "status": "not_attested",
      "rating": "not_attested",
      "current_value": null,
      "desired_state": "Completed",
      "attestation": {
        "state": "review_due",
        "attested_at": "2026-11-02T09:30:00.008771Z",
        "comment": null,
        "attested_by": {
          "type": "user_actor",
          "user_id": "user_01AbCdEfGhJkLmNpQrStUvWx"
        }
      }
    }
  ]
}

Каждое поле присутствует всегда, а поле без значения равно null и никогда не опускается. Время содержит либо ноль, либо шесть знаков дробной части, поэтому сравнивайте время как время, а не как строки.

Поля верхнего уровня

ПолеТипОписание
typeстрокаВсегда security_posture.
organization_idстрокаUUID организации.
evaluated_atстрока (RFC 3339, UTC)Время, в которое была оценена каждая мера.
comments_statusстрокаБыли ли прочитаны комментарии к подтверждениям; см. Кто подтвердил, и комментарии.
controlsмассив объектовМеры организации; массив никогда не бывает пустым.

Поля controls[]

ПолеТипОписание
idстрокаИдентификатор меры, одинаковый для всех организаций и никогда не меняющийся.
display_nameстрокаОтображаемое название меры в виде отображаемого текста на английском языке, формулировка которого может меняться.
sectionстрокаРаздел, к которому относится мера, — один из десяти, перечисленных после этой таблицы; могут добавляться новые значения, поэтому считайте неизвестное значение отдельным разделом.
setting_nameстрока или nullname записи в действующих настройках организации, которую считывает эта мера; null, если мера не считывает такую запись.
statusстрокаПричина результата меры; см. Значения статуса.
ratingстрокаРезультат меры, который следует из status; см. Значения статуса.
current_valueстрока или nullТекущее значение в виде отображаемого текста на английском языке, формулировка которого может меняться; null для вручную подтверждаемой меры или если значение не было прочитано.
desired_stateстрока или nullРекомендуемое значение в виде отображаемого текста на английском языке, формулировка которого может меняться; null, если для этой организации его нет.
attestationобъект или nullПодтверждение, которое ответ содержит, в том числе пока оно не действует; null, пока status равен descriptive, not_applicable или not_evaluated, а также в этих случаях.

section принимает одно из значений: identity_access, data_privacy, capabilities, connectors_integrations, chats_desktop_mdm, cowork_admin_console, cowork_desktop_mdm, claude_code_admin_console, claude_code_managed_settings и healthy_adoption.

Чтобы сравнивать значения в коде, найдите setting_name в действующих настройках той же организации. Поиск может ничего не найти, а две меры могут использовать один и тот же setting_name.

Поля attestation

ПолеТипОписание
stateстрокаДействует ли подтверждение; см. Состояния подтверждения.
attested_atстрока (RFC 3339, UTC)Когда было сделано подтверждение.
commentстрока или nullКомментарий, сохранённый вместе с подтверждением, длиной не более 2 000 символов; null, если комментария нет или если comments_status не равен available.
attested_byобъект или nullЧеловек, сделавший подтверждение; null, если у ключа нет ни read:compliance_user_data, ни read:org_audit, если учётная запись этого человека удалена или находится в процессе удаления, или если конечная точка не возвращает для организации, кто сделал подтверждение.

Поля attested_by

ПолеТипОписание
typeстрокаВсегда user_actor.
user_idстрокаID пользователя, начинающийся с user_.

Значения статуса

status указывает причину результата меры, и каждому статусу соответствует один rating.

statusВид мерыЗначениеratingНа странице
passedавтоматически проверяемаяТекущее значение соответствует рекомендуемому значению.passedПройдено
matches_profileавтоматически проверяемаяТекущее значение равно рекомендуемому значению.passedПройдено
exceeds_baselineавтоматически проверяемаяТекущее значение строже рекомендуемого значения.passedПройдено
failed_check_accepted_riskавтоматически проверяемаяАвтоматическая проверка завершается неуспешно, и действует принятый риск.passedПройдено
failedавтоматически проверяемая или вручную подтверждаемаяТекущее значение не соответствует рекомендуемому значению, или такой результат даёт подтверждение, которое ответ опускает.failedНе пройдено или Пройдено при действующем подтверждении Выполнено
reviewавтоматически проверяемаяТекущее значение мягче рекомендуемого значения.failedНе пройдено
attested_completedвручную подтверждаемаяДействует подтверждение со значением Выполнено (completed).passedПройдено
attested_accepted_riskвручную подтверждаемаяДействует подтверждение со значением Принятый риск (accepted_risk).passedПройдено
not_attestedвручную подтверждаемаяНет действующего подтверждения.not_attestedНе подтверждено
attestation_not_enabledвручную подтверждаемаяНикто не может подтвердить эту меру.not_attestedСправочно
descriptiveсправочнаяМера отображается в отчёте, но не получает результат.descriptiveСправочно
not_applicableлюбаяМера не применяется к организации.descriptiveСправочно
not_evaluatedлюбаяНе удалось прочитать настройку или другую настройку, которая определяет, применяется ли мера.descriptiveСправочно

Ни одно поле не указывает вид меры; для failed значение null в current_value означает вручную подтверждаемую меру. Могут добавляться новые значения, поэтому учитывайте меру с неизвестным status по её rating, а меру с неизвестным rating не считайте пройденной. Статус review и состояние подтверждения review_due между собой не связаны.

Состояния подтверждения

state указывает, действует ли подтверждение, которое содержит ответ.

stateЗначение
in_forceПодтверждение действует.
review_dueНаступила дата окончания.
setting_changedПроверка завершается неуспешно на значении, отличном от того, риск которого был принят, или принятый риск уже был записан как переставший действовать.
check_passingПроверка завершается успешно, поэтому нет риска, который нужно принимать.

Когда применимо более одной причины, ответ содержит первую из check_passing, setting_changed и review_due. Начиная с 00:00 UTC в дату своего окончания подтверждение не действует. В ответе нет даты окончания, поэтому всё определяет state; сохранённая дата окончания — это поле review_date активности подтверждения. Подтверждение с неизвестным state считайте недействующим.

Как подтверждение отображается в ответе

Ответ содержит одни подтверждения и опускает другие, поэтому null в attestation не доказывает, что никто не сделал подтверждение.

Вид мерыПодтверждено какstatusratingattestation
Вручную подтверждаемаяНет подтвержденияnot_attested или attestation_not_enabled, если никто не может выполнять подтвержденияnot_attestednull
Вручную подтверждаемаяВыполненоattested_completedpassedСодержится
Вручную подтверждаемаяПринятый рискattested_accepted_riskpassedСодержится
Вручную подтверждаемаяНе пройдено (control_failed)failedfailednull: никогда не содержится
Автоматически проверяемая, проверка не пройденаНет подтвержденияfailed или reviewfailednull
Автоматически проверяемая, проверка не пройденаПринятый рискfailed_check_accepted_riskpassedСодержится
Автоматически проверяемая, проверка не пройденаВыполненоfailed, даже если автоматическая проверка даёт reviewfailednull: никогда не содержится
Автоматически проверяемая, проверка не пройденаНе пройденоstatus, который даёт автоматическая проверкаfailednull: никогда не содержится
Автоматически проверяемая, проверка пройденаНет подтвержденияpassed, matches_profile или exceeds_baselinepassednull
Автоматически проверяемая, проверка пройденаВыполненоstatus, который даёт автоматическая проверкаpassednull: никогда не содержится
Автоматически проверяемая, проверка пройденаПринятый рискstatus, который даёт автоматическая проверкаpassednull, пока проверка завершается успешно на принятом значении
Автоматически проверяемая, проверка пройденаНе пройденоfailedfailednull: никогда не содержится
СправочнаяЛюбое значениеdescriptivedescriptivenull: никогда не содержится
Любая, пока подтверждение не действуетЗначение, которое по одной из предыдущих строк содержится в ответеКак без подтвержденияКак без подтвержденияСодержится, со state, отличным от in_force
Любая, пока подтверждение не действуетЗначение, которое в одной из предыдущих строк опускаетсяКак без подтвержденияКак без подтвержденияnull

Каждая строка, кроме двух последних, справедлива, пока подтверждение действует. Для автоматически проверяемой меры подтверждение не действует, пока значение, которое считывает проверка, отличается от того, при котором подтверждение было сохранено. Каждое подтверждение, которое ответ содержит для автоматически проверяемой меры, является принятым риском. Лента активности также записывает подтверждения тех видов, которые ответ опускает.

Подсчёт результатов

Проверьте четыре момента при подсчёте мер по rating.

Если вы считаетеТакже проверьте
Пройдено (passed)Сюда входит каждая мера с действующим принятым риском, поэтому ищите failed_check_accepted_risk и attested_accepted_risk.
Не пройдено (failed)Сюда входит мера, подтверждённая как Не пройдено (control_failed), а также мера с автоматической проверкой, которая завершается неуспешно, при действующем подтверждении Выполнено — её страница Security posture показывает как Пройдено.
Справочно (descriptive)Здесь может скрываться мера, которую не удалось прочитать, поэтому ищите not_evaluated.
Все мерыМера, отсутствующая в ответе, не считается пройденной и нигде не называется, поэтому сравнивайте значения id с теми, которые вы видели для этой организации.

Кто подтвердил, и комментарии

attested_by заполняется только для ключа, у которого есть read:compliance_user_data вместе с read:compliance_org_data или есть read:org_audit. Ключ только с read:compliance_user_data получает 403. user_id в attested_by совпадает с user_id в actor активности подтверждения. attested_by содержит только идентификатор пользователя: Список пользователей организации предоставляет имя и адрес электронной почты каждого текущего участника. Прежде чем добавлять эти области действия, ознакомьтесь с разделом Кто может видеть, кто выполнил подтверждение.

Конечная точка не возвращает комментарии, даже если на странице Security posture комментарий отображается: каждый comment равен null, а comments_status равен not_enabled или not_permitted. Поэтому not_enabled и комментарий, равный null, не означают, что у подтверждения нет комментария. comments_status указывает, как интерпретировать комментарий, равный null, и схема определяет эти значения.

comments_statusЗначение
not_permittedУ ключа API нет ни read:compliance_user_data, ни read:org_audit, поэтому каждый comment и каждый attested_by равен null.
requires_organization_keyКлюч API был создан не в этой организации, как в случае с ключом для родительской организации, поэтому каждый comment равен null. Повторная попытка не поможет.
availableКомментарии были прочитаны, поэтому комментарий, равный null, означает, что комментария нет или что он был сохранён несколько мгновений назад.
not_enabledЭта конечная точка не возвращает комментарии для организации, поэтому каждый comment равен null.
unavailableНе удалось прочитать комментарии для этого ответа; последующий запрос может завершиться успешно, но некоторые причины сохраняются, пока клиент не примет меры.

Могут добавляться новые значения; неизвестное значение считайте равным unavailable.

Ошибки

Ошибки используют то же тело, что и остальной Compliance API; в этой таблице перечислены те, которые эта конечная точка возвращает по-своему.

Статус и error.typeКогдаЧто делать
400 invalid_request_erroranthropic-version отсутствует или недопустим, Compliance API не включён для родительской организации или указан параметр запроса.Исправьте то, что указано в error.message.
401 authentication_errorКлюч отсутствует, не распознан или не является ни Compliance Access Key, ни ключом Admin API.Отправьте действительный Compliance Access Key в x-api-key.
403 permission_errorКлючу не разрешено вызывать эту конечную точку, обычно потому, что у него нет ни read:compliance_org_data, ни read:org_audit.Используйте ключ с любой из этих областей действия.
404 not_found_errorСм. причины, перечисленные после этой таблицы.Не повторяйте запрос сразу и никогда не интерпретируйте это как отсутствие мер, не прошедших проверку.
429 rate_limit_errorОбщее ограничение скорости Compliance API или более низкое ограничение этой конечной точки исчерпано; error.message указывает, какое именно.Дождитесь retry-after; см. 429 Too Many Requests.
503 overloaded_error с error.details.error_code, равным posture_evaluation_failedНе удалось получить результат.Дождитесь retry-after и повторите запрос; если ошибка повторяется для одной организации при последующих запусках, обратитесь в службу поддержки Anthropic один раз.
503 без error_code или 504 timeout_errorВременный сбой.Повторите запрос с экспоненциальной задержкой.

Причины ошибки 404:

  • organization_id не является UUID, не указывает ни на одну организацию или указывает на удалённую.
  • organization_id указывает на родительскую организацию, на организацию под другой родительской организацией или на организацию, которую не охватывает ключ для отдельной организации.
  • Организация не использует Claude Enterprise, или функция Security posture ей недоступна, как в случае организации Claude Console.
  • Для организации страницу Security posture отключили (см. Доступность Security posture).
  • Функция Security posture доступна организации, но конечная точка её не обслуживает.
  • Не удалось проверить доступность; последующий запрос может завершиться успешно.

У каждой ошибки 404 одинаковое тело — такое же, как у ответа на несуществующий путь.

Актуальность и побочные эффекты

Конечная точка оценивает каждую меру в момент вызова, и evaluated_at — это время вызова.

  • Изменение, сделанное в последние несколько минут, может не отобразиться.
  • Результат может измениться без изменения настроек, например когда наступает дата окончания или Anthropic меняет рекомендуемое значение.
  • Если Anthropic изменит формулировку текущего значения, принятый риск для него не действует.
  • Вызов не сохраняет результат и не прекращает действие подтверждений.
  • Каждый запрос, который проходит проверки ключа, области действия и версии и не содержит параметра запроса, записывает одну активность compliance_api_accessed независимо от того, успешен он или нет; её url указывает на прочитанную организацию, а organization_uuid равен null для ключа для родительской организации.

Эта страница была полезной?