Mengonfigurasi header HTTP kustom untuk log audit

Halaman ini menjelaskan cara menyelesaikan tugas-tugas berikut:

  1. Konfigurasi header HTTP kustom dalam permintaan ke Cloud Healthcare API.
  2. Gunakan Cloud Audit Logs untuk menelusuri permintaan dan header HTTP kustom yang cocok untuk melakukan hal berikut:

    • Lihat siapa yang mengirim permintaan dan kapan.
    • Sederhanakan deployment dan proses debug dengan mengetahui permintaan mana yang menyebabkan error tertentu.

Untuk mengetahui informasi selengkapnya tentang cara menggunakan Cloud Audit Logs di Cloud Healthcare API, lihat Melihat Cloud Audit Logs.

Metode yang dapat dikonfigurasi

Anda dapat mengonfigurasi header HTTP kustom untuk metode Cloud Healthcare API di resource REST berikut:

Mengonfigurasi header HTTP kustom

Ada dua jenis header HTTP kustom yang dapat Anda tentukan pada permintaan Cloud Healthcare API dan lihat di log audit. Anda dapat menggunakan setiap jenis secara eksklusif atau menggabungkannya.

  • Logging ID kustom. Anda dapat menentukan header HTTP kustom X-Request-Id untuk memberikan ID kustomnya sendiri pada setiap permintaan, lalu menelusuri log audit untuk permintaan yang berisi ID tersebut. Untuk memberikan ID kustom, tentukan header HTTP kustom dalam format berikut:

    X-Request-Id: REQUEST_ID
    

    Tentukan nilai unik untuk REQUEST_ID di setiap permintaan.

    Sebagian besar bahasa pemrograman memiliki cara untuk membuat ID acak yang dapat Anda gunakan untuk membuat ID permintaan. Misalnya, modul uuid Python memiliki fungsi uuid.uuid4() yang dapat Anda gunakan untuk membuat ID secara otomatis untuk setiap permintaan. Cloud Healthcare API tidak membuat ID permintaan.

  • Pencatatan metadata. Anda dapat menyertakan informasi metadata tambahan di header HTTP kustom menggunakan header X-Goog-Healthcare-Audit-IDENTIFIER. Header secara unik mengidentifikasi jenis informasi metadata.

    Metadata disimpan dalam log audit untuk setiap permintaan. Untuk memberikan informasi metadata, tentukan satu atau beberapa header HTTP kustom dalam format berikut:

    X-Goog-Healthcare-Audit-IDENTIFIER: VALUE
    

    Ganti IDENTIFIER dengan ID yang mudah dibaca. Ganti VALUE dengan nilai untuk metadata. Anda dapat menentukan beberapa nilai dalam daftar yang dipisahkan koma menggunakan sintaksis berikut:

    X-Goog-Healthcare-Audit-IDENTIFIER: VALUE_1, VALUE_2, VALUE_n ...
    

    Contoh:

    X-Goog-Healthcare-Audit-MyIdentifier: Value1, Value2, Value3
    

    Anda juga dapat menentukan beberapa header HTTP kustom dengan nilai uniknya sendiri:

    X-Goog-Healthcare-Audit-MyIdentifier1: Value1, Value2
    X-Goog-Healthcare-Audit-MyIdentifier2: Value3
    

Melihat log audit di Cloud Audit Logs

Lihat Melihat log.

Contoh

Contoh berikut menunjukkan skenario saat Anda menentukan header HTTP kustom dalam permintaan fhir.create.

Misalkan Anda menjalankan studi dan memiliki aplikasi seluler untuk pasien bernama PatientApp. Pasien dalam studi ini dibagi menjadi dua kelompok: Cohort1 dan Cohort2. Untuk mengidentifikasi setiap permintaan dari Cohort1 dengan ID unik dan nama aplikasi seluler, tentukan header HTTP kustom berikut di setiap permintaan:

X-Request-Id: REQUEST_ID
X-Goog-Healthcare-Audit-AppName: PatientApp
X-Goog-Healthcare-Audit-CohortName: Cohort1

Header HTTP kustom ditampilkan di kolom metadata pada log audit setiap permintaan di Cloud Audit Logs.

Contoh berikut menunjukkan cara menggunakan curl untuk membuat resource Patient baru di penyimpanan FHIR. Permintaan berisi header HTTP kustom berikut:

  • X-Request-Id: 123
  • X-Goog-Healthcare-Audit-AppName: PatientApp
  • X-Goog-Healthcare-Audit-CohortName: Cohort1

Sebelum mengirim permintaan, ganti variabel berikut:

  • PROJECT_ID: ID Google Cloud project Anda
  • LOCATION: lokasi set data
  • DATASET_ID: set data induk FHIR store
  • FHIR_STORE_ID: ID FHIR store
curl -X POST \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -H "X-Request-Id: 123" \
    -H "X-Goog-Healthcare-Audit-AppName: PatientApp" \
    -H "X-Goog-Healthcare-Audit-CohortName: Cohort1" \
    --data '{
      "name": [
        {
          "use": "official",
          "family": "Smith",
          "given": [
            "Darcy"
          ]
        }
      ],
      "gender": "female",
      "birthDate": "1970-01-01",
      "resourceType": "Patient"
    }' "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/Patient"

Outputnya adalah sebagai berikut:

{
  "birthDate": "1970-01-01",
  "gender": "female",
  "id": "PATIENT_ID",
  "meta": {
    "lastUpdated": "YYYY-MM-DDTHH:MM:SS+ZZ:ZZ",
    "versionId": "VERSION_ID"
  },
  "name": [
    {
      "family": "Smith",
      "given": [
        "Darcy"
      ],
      "use": "official"
    }
  ],
  "resourceType": "Patient"
}

Jika Anda menelusuri permintaan di Cloud Audit Logs, log audit akan terlihat seperti berikut:

{
  logName: "projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fdata_write"
  protoPayload: {
    @type: "type.googleapis.com/google.cloud.audit.AuditLog"
    metadata: {
      X-Request-Id: [123]
      X-Goog-Healthcare-Audit-AppName: ["PatientApp"]
      X-Goog-Healthcare-Audit-CohortName: ["Cohort1"]
    }
    ...
  }
   ...
}

Melihat header HTTP log audit yang dihasilkan konsol Google Cloud

Anda dapat memeriksa header HTTP tertentu dalam log audit untuk mengidentifikasi permintaan yang dibuat melalui aplikasi Cloud Healthcare API di konsol Google Cloud .

Misalnya, semua permintaan yang berasal dari aplikasi konsol Google Cloud berikut secara otomatis diberi tag dengan header HTTP kustomX-Goog-Healthcare-Audit-First-Party-Application-Access. Nilai header ini menunjukkan aplikasi sumber:

  • fhir-viewer: Permintaan yang berasal dari FHIR Viewer.
  • data-browser: Permintaan yang berasal dari Data Browser Cloud Healthcare API.
  • dicom-studio: Permintaan yang berasal dari DICOM Studio Cloud Healthcare API.

Anda dapat menggunakan nilai header ini untuk memfilter atau menganalisis permintaan yang dibuat secara khusus dari aplikasi konsolGoogle Cloud saat melihat log audit.