Claude Platform Docs
AdminSecurity posture

Referensi hasil Security posture

Cari endpoint Compliance API yang mengembalikan hasil Security posture terkini suatu organisasi: permintaan, field respons, arti setiap status, dan error-nya.

Endpoint ini mengembalikan satu entri untuk masing-masing dari sebagian besar kontrol keamanan milik suatu organisasi, yang dievaluasi pada saat permintaan, beserta atestasi Security posture yang ditampilkan respons untuk setiap kontrol. Anda memerlukan Compliance Access Key yang mencakup organisasi tersebut, dengan scope read:compliance_org_data atau read:org_audit; Ketersediaan Security posture menjelaskan organisasi mana yang dapat dibaca.

Permintaan

Kirim permintaan GET ke /v1/compliance/organizations/{organization_id}/security_posture. Setiap panggilan membaca satu organisasi, dan respons tidak dipaginasi.

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"
ItemAturan
organization_iduuid dari organisasi tertaut dari Daftar organisasi; nilai lain mana pun mengembalikan 404.
KunciKunci untuk organisasi induk dapat menyebut organisasi tertaut mana pun, dan kunci untuk satu organisasi hanya dapat menyebut organisasi tersebut.
anthropic-versionWajib; permintaan tanpanya mengembalikan 400.
Parameter kueriTidak ada; permintaan dengan parameter kueri mana pun mengembalikan 400.

Respons

Contoh ringkas berikut menampilkan empat dari kontrol yang dapat dimuat dalam respons. Ini adalah respons untuk kunci yang memiliki read:compliance_org_data dan 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"
        }
      }
    }
  ]
}

Setiap field selalu ada, dan field tanpa nilai bernilai null; field tersebut tidak pernah dihilangkan. Nilai waktu memiliki nol atau enam digit pecahan, jadi bandingkan waktu sebagai waktu, bukan sebagai string.

Field tingkat atas

FieldTipeDeskripsi
typestringSelalu security_posture.
organization_idstringUUID organisasi.
evaluated_atstring (RFC 3339, UTC)Waktu saat setiap kontrol dievaluasi.
comments_statusstringApakah komentar atestasi dibaca; lihat Siapa yang mengatestasi, dan komentar.
controlsarray objekKontrol-kontrol organisasi; array ini tidak pernah kosong.

Field controls[]

FieldTipeDeskripsi
idstringPengidentifikasi kontrol, yang sama untuk setiap organisasi dan tidak pernah berubah.
display_namestringNama tampilan kontrol, berupa teks tampilan dalam bahasa Inggris yang kata-katanya dapat berubah.
sectionstringBagian tempat kontrol ini berada, salah satu dari sepuluh bagian yang dicantumkan setelah tabel ini; nilai lain dapat ditambahkan, jadi perlakukan nilai yang tidak dikenal sebagai bagian tersendiri.
setting_namestring atau nullname dari entri dalam pengaturan efektif organisasi yang dibaca kontrol ini; null jika kontrol tidak membaca entri semacam itu.
statusstringAlasan hasil kontrol; lihat Nilai status.
ratingstringHasil kontrol, yang mengikuti dari status; lihat Nilai status.
current_valuestring atau nullNilai saat ini, berupa teks tampilan dalam bahasa Inggris yang kata-katanya dapat berubah; null pada kontrol manual atau jika tidak ada nilai yang dibaca.
desired_statestring atau nullNilai yang direkomendasikan, berupa teks tampilan dalam bahasa Inggris yang kata-katanya dapat berubah; null jika tidak ada untuk organisasi ini.
attestationobjek atau nullAtestasi yang respons tampilkan, juga selama atestasi tersebut tidak berlaku; null selama status bernilai descriptive, not_applicable, atau not_evaluated, dan dalam kasus-kasus ini.

section adalah salah satu dari identity_access, data_privacy, capabilities, connectors_integrations, chats_desktop_mdm, cowork_admin_console, cowork_desktop_mdm, claude_code_admin_console, claude_code_managed_settings, dan healthy_adoption.

Untuk membandingkan nilai dalam kode, cari setting_name di pengaturan efektif organisasi yang sama. Pencarian ini bisa tidak menemukan apa pun, dan dua kontrol dapat berbagi satu setting_name.

Field attestation

FieldTipeDeskripsi
statestringApakah atestasi berlaku; lihat Keadaan atestasi.
attested_atstring (RFC 3339, UTC)Waktu atestasi dibuat.
commentstring atau nullKomentar yang disimpan bersama atestasi, paling banyak 2.000 karakter; null jika tidak ada, atau jika comments_status bukan available.
attested_byobjek atau nullOrang yang mengatestasi; null jika kunci tidak memiliki read:compliance_user_data maupun read:org_audit, jika akun orang tersebut telah dihapus atau sedang dihapus, atau jika, untuk organisasi ini, endpoint tidak mengembalikan siapa yang mengatestasi.

Field attested_by

FieldTipeDeskripsi
typestringSelalu user_actor.
user_idstringID pengguna, yang diawali dengan user_.

Nilai status

status memberikan alasan hasil suatu kontrol, dan setiap status memiliki satu rating.

statusJenis kontrolArtiratingDi halaman
passedotomatisNilai saat ini memenuhi nilai yang direkomendasikan.passedLulus
matches_profileotomatisNilai saat ini sama dengan nilai yang direkomendasikan.passedLulus
exceeds_baselineotomatisNilai saat ini lebih ketat daripada nilai yang direkomendasikan.passedLulus
failed_check_accepted_riskotomatisPemeriksaan otomatis tidak berhasil, dan risiko diterima berlaku.passedLulus
failedotomatis atau manualNilai saat ini tidak memenuhi nilai yang direkomendasikan, atau atestasi yang dihilangkan dari respons memberikan hasil ini.failedGagal, atau Lulus dengan atestasi Selesai yang berlaku
reviewotomatisNilai saat ini lebih longgar daripada nilai yang direkomendasikan.failedGagal
attested_completedmanualAtestasi dengan nilai Selesai (completed) berlaku.passedLulus
attested_accepted_riskmanualAtestasi dengan nilai Risiko diterima (accepted_risk) berlaku.passedLulus
not_attestedmanualTidak ada atestasi yang berlaku.not_attestedBelum diatestasi
attestation_not_enabledmanualTidak ada yang dapat mengatestasi kontrol ini.not_attestedDeskriptif
descriptivekhusus informasiKontrol ini dilaporkan, tidak diberi hasil.descriptiveDeskriptif
not_applicablemana punKontrol ini tidak berlaku bagi organisasi.descriptiveDeskriptif
not_evaluatedmana punPengaturan, atau pengaturan lain yang menentukan apakah kontrol berlaku, tidak dapat dibaca.descriptiveDeskriptif

Tidak ada field yang menyebutkan jenis kontrol; untuk failed, current_value yang bernilai null menandakan kontrol manual. Nilai lain dapat ditambahkan, jadi hitung kontrol dengan status yang tidak dikenal berdasarkan rating-nya, dan rating yang tidak dikenal tidak dianggap Lulus. Status review dan keadaan atestasi review_due tidak berkaitan.

Keadaan atestasi

state menyatakan apakah atestasi yang respons tampilkan berlaku.

stateArti
in_forceAtestasi berlaku.
review_dueTanggal berakhir telah tiba.
setting_changedPemeriksaan tidak berhasil pada nilai selain nilai yang risikonya diterima, atau risiko diterima sudah tercatat sebagai berhenti berlaku.
check_passingPemeriksaan berhasil, jadi tidak ada risiko yang perlu diterima.

Jika lebih dari satu alasan berlaku, respons memberikan yang pertama dari check_passing, setting_changed, dan review_due. Sejak pukul 00.00 UTC pada tanggal berakhirnya, atestasi tidak berlaku. Respons tidak memuat tanggal berakhir, jadi state yang menentukan; tanggal berakhir yang tersimpan adalah review_date milik aktivitas atestasi. Anggap state yang tidak dikenal sebagai tidak berlaku.

Bagaimana atestasi ditampilkan dalam respons

Respons menampilkan sebagian atestasi dan menghilangkan yang lain, jadi attestation yang bernilai null tidak membuktikan bahwa tidak ada yang mengatestasi.

Jenis kontrolDiatestasi sebagaistatusratingattestation
ManualTanpa atestasinot_attested, atau attestation_not_enabled jika tidak ada yang dapat mengatestasinot_attestednull
ManualSelesaiattested_completedpassedDitampilkan
ManualRisiko diterimaattested_accepted_riskpassedDitampilkan
ManualGagal (control_failed)failedfailednull: tidak pernah ditampilkan
Otomatis, pemeriksaan tidak berhasilTanpa atestasifailed atau reviewfailednull
Otomatis, pemeriksaan tidak berhasilRisiko diterimafailed_check_accepted_riskpassedDitampilkan
Otomatis, pemeriksaan tidak berhasilSelesaifailed, bahkan jika pemeriksaan otomatis memberikan reviewfailednull: tidak pernah ditampilkan
Otomatis, pemeriksaan tidak berhasilGagalstatus yang diberikan pemeriksaan otomatisfailednull: tidak pernah ditampilkan
Otomatis, pemeriksaan berhasilTanpa atestasipassed, matches_profile, atau exceeds_baselinepassednull
Otomatis, pemeriksaan berhasilSelesaistatus yang diberikan pemeriksaan otomatispassednull: tidak pernah ditampilkan
Otomatis, pemeriksaan berhasilRisiko diterimastatus yang diberikan pemeriksaan otomatispassednull selama pemeriksaan berhasil pada nilai yang diterima
Otomatis, pemeriksaan berhasilGagalfailedfailednull: tidak pernah ditampilkan
Khusus informasiNilai apa pundescriptivedescriptivenull: tidak pernah ditampilkan
Mana pun, selama atestasi tidak berlakuNilai yang ditampilkan menurut baris sebelumnyaSama seperti tanpa atestasiSama seperti tanpa atestasiDitampilkan, dengan state selain in_force
Mana pun, selama atestasi tidak berlakuNilai yang dihilangkan oleh baris sebelumnyaSama seperti tanpa atestasiSama seperti tanpa atestasinull

Setiap baris kecuali dua baris terakhir berlaku selama atestasi masih berlaku. Pada kontrol otomatis, atestasi tidak berlaku selama nilai yang dibaca pemeriksaan berbeda dari nilai saat atestasi tersebut disimpan. Setiap atestasi yang respons tampilkan pada kontrol otomatis adalah risiko diterima. Activity Feed juga mencatat atestasi dari jenis-jenis yang dihilangkan dari respons.

Menghitung hasil

Periksa empat hal saat Anda menghitung kontrol berdasarkan rating.

Jika Anda menghitungPeriksa juga
Lulus (passed)Ini mencakup setiap kontrol dengan risiko diterima yang berlaku, jadi cari failed_check_accepted_risk dan attested_accepted_risk.
Gagal (failed)Ini mencakup kontrol yang diatestasi sebagai Gagal (control_failed), serta pemeriksaan otomatis yang tidak berhasil dengan atestasi Selesai yang berlaku, yang ditampilkan halaman Security posture sebagai Lulus.
Deskriptif (descriptive)Ini dapat menyembunyikan kontrol yang tidak dapat dibaca, jadi cari not_evaluated.
Setiap kontrolKontrol yang tidak ada dalam respons tidak dianggap Lulus dan tidak disebutkan, jadi bandingkan nilai id dengan nilai yang pernah Anda lihat untuk organisasi tersebut.

Siapa yang mengatestasi, dan komentar

attested_by hanya diisi untuk kunci yang memiliki read:compliance_user_data bersama read:compliance_org_data, atau yang memiliki read:org_audit. Kunci yang hanya memiliki read:compliance_user_data mendapat 403. user_id di attested_by sama dengan user_id milik actor pada aktivitas atestasi. attested_by hanya berisi ID pengguna: Daftar pengguna organisasi memberikan nama dan alamat email setiap anggota saat ini. Sebelum Anda menambahkan scope ini, lihat Siapa yang dapat melihat siapa yang melakukan atestasi.

Endpoint ini tidak mengembalikan komentar, bahkan ketika halaman Security posture menampilkannya: setiap comment bernilai null, dan comments_status bernilai not_enabled atau not_permitted. Jadi, not_enabled dan komentar yang bernilai null tidak berarti atestasi tersebut tidak memiliki komentar. comments_status menjelaskan cara membaca komentar yang bernilai null, dan skema mendefinisikan nilai berikut.

comments_statusArti
not_permittedKunci API tidak memiliki read:compliance_user_data maupun read:org_audit, jadi setiap comment dan setiap attested_by bernilai null.
requires_organization_keyKunci API tidak dibuat di organisasi tersebut, seperti halnya kunci untuk organisasi induk, jadi setiap comment bernilai null. Mencoba lagi tidak membantu.
availableKomentar telah dibaca, jadi komentar yang bernilai null berarti tidak ada komentar, atau komentar tersebut baru disimpan beberapa saat lalu.
not_enabledEndpoint ini tidak mengembalikan komentar untuk organisasi ini, jadi setiap comment bernilai null.
unavailableKomentar tidak dapat dibaca untuk respons ini; permintaan berikutnya mungkin berhasil, tetapi beberapa penyebab berlangsung hingga pelanggan mengambil tindakan.

Nilai lain dapat ditambahkan; anggap nilai yang tidak dikenal sebagai unavailable.

Error

Error menggunakan body yang sama seperti bagian lain dari Compliance API; tabel ini mencantumkan error yang dikembalikan endpoint ini dengan caranya sendiri.

Status dan error.typeKapanYang harus dilakukan
400 invalid_request_erroranthropic-version tidak ada atau tidak valid, Compliance API tidak diaktifkan untuk organisasi induk, atau terdapat parameter kueri.Perbaiki hal yang disebutkan error.message.
401 authentication_errorKunci tidak ada, tidak dikenali, atau bukan Compliance Access Key maupun kunci Admin API.Kirim Compliance Access Key yang valid di x-api-key.
403 permission_errorKunci tidak boleh memanggil endpoint ini, biasanya karena tidak memiliki read:compliance_org_data maupun read:org_audit.Gunakan kunci dengan salah satu scope tersebut.
404 not_found_errorLihat penyebab yang tercantum setelah tabel ini.Jangan langsung mencoba ulang, dan jangan pernah menganggapnya sebagai tidak ada kontrol yang gagal.
429 rate_limit_errorBatas laju bersama Compliance API, atau batas endpoint ini yang lebih rendah, telah habis; error.message menyebutkan yang mana.Tunggu sesuai retry-after; lihat 429 Too Many Requests.
503 overloaded_error, dengan error.details.error_code bernilai posture_evaluation_failedHasil tidak dapat dihasilkan.Tunggu sesuai retry-after, lalu coba lagi; jika berulang untuk satu organisasi pada eksekusi berikutnya, hubungi dukungan Anthropic satu kali.
503 tanpa error_code, atau 504 timeout_errorKegagalan sementara.Coba lagi dengan exponential backoff.

Penyebab 404:

  • organization_id bukan UUID, tidak merujuk ke organisasi mana pun, atau merujuk ke organisasi yang telah dihapus.
  • organization_id merujuk ke organisasi induk, organisasi di bawah induk lain, atau organisasi yang tidak dicakup oleh kunci organisasi tunggal.
  • Organisasi tidak menggunakan Claude Enterprise, atau Security posture tidak tersedia untuknya, seperti pada organisasi Claude Console.
  • Halaman Security posture telah dinonaktifkan untuk organisasi (lihat Ketersediaan Security posture).
  • Security posture tersedia untuk organisasi, tetapi endpoint tidak melayaninya.
  • Ketersediaan tidak dapat diperiksa; permintaan berikutnya dapat berhasil.

Setiap 404 memiliki body yang sama, begitu pula path yang tidak ada.

Kesegaran data dan efek samping

Endpoint ini mengevaluasi setiap kontrol saat Anda memanggilnya, dan evaluated_at adalah waktu tersebut.

  • Perubahan dari beberapa menit terakhir mungkin belum terlihat.
  • Hasil dapat berubah tanpa ada pengaturan yang berubah, misalnya ketika tanggal berakhir tiba atau Anthropic mengubah nilai yang direkomendasikan.
  • Jika Anthropic mengubah kata-kata suatu nilai saat ini, risiko diterima pada nilai tersebut tidak berlaku.
  • Panggilan tidak menyimpan hasil apa pun dan tidak membuat atestasi apa pun berhenti berlaku.
  • Setiap permintaan yang lolos pemeriksaan kunci, scope, dan versi tanpa parameter kueri mencatat satu aktivitas compliance_api_accessed, baik berhasil maupun gagal; url-nya menyebutkan organisasi yang dibaca, dan organization_uuid bernilai null untuk kunci organisasi induk.

Apakah halaman ini membantu?