API profil dan skor keamanan

Halaman ini berlaku untuk Apigee dan Apigee Hybrid.

Baca dokumentasi Apigee Edge.

Selain melihat skor keamanan dan profil keamanan di UI Apigee, Anda juga dapat mengaksesnya menggunakan skor keamanan dan API profil. Halaman ini menyajikan beberapa contoh penggunaan API skor dan profil keamanan.

Batasan skor keamanan saat menggunakan API

Skor keamanan memiliki batasan berikut saat digunakan dari API skor dan profil keamanan:

  • Kolom input yang didukung di JSON:
    • timeRange: Durasi rentang waktu maksimal 14 hari, serta startTime dan endTime untuk rentang waktu harus dalam 90 hari terakhir. Lihat Rentang waktu.
    • filters: Lihat Filter yang didukung di API.
    • pageSize: Jumlah maksimum subkomponen yang akan ditampilkan dalam satu halaman: 100.
  • Beberapa filter input tidak didukung.
  • Kolom dampak dalam respons tidak didukung. (Kolom dampak adalah dampak potensial dari rekomendasi ini terhadap skor keseluruhan. Hal ini menunjukkan seberapa penting rekomendasi ini untuk meningkatkan skor.)

Untuk batasan skor keamanan umum yang tidak spesifik untuk digunakan dari API, lihat Batasan skor keamanan.

Keterlambatan data

Data yang menjadi dasar skor keamanan Advanced API Security memiliki penundaan berikut karena cara data diproses:

  • Jika Anda mengaktifkan Advanced API Security dalam organisasi, diperlukan waktu hingga 6 jam agar skor untuk proxy dan target yang ada ditampilkan dalam lingkungan.
  • Peristiwa baru yang terkait dengan proxy (deployment dan pembatalan deployment) dan target (membuat, memperbarui, menghapus) dalam lingkungan dapat memerlukan waktu hingga 6 jam agar ditampilkan dalam skor lingkungan.
  • Data yang mengalir ke pipeline Analisis Apigee rata-rata mengalami keterlambatan hingga 15 hingga 20 menit. Akibatnya, data penyalahgunaan skor sumber mengalami penundaan pemrosesan sekitar 15 hingga 20 menit.

Parameter dalam contoh panggilan API

Bagian berikut memberikan contoh panggilan API yang menggunakan API skor keamanan dan profil. Panggilan API berisi parameter berikut:

  • ORG adalah organisasi Anda.
  • ENV adalah lingkungan yang Anda inginkan untuk menghitung skor.
  • ENVGROUP adalah grup lingkungan yang berisi lingkungan.
  • PROFILE_ID adalah nama profil. PROFILE_ID dapat berupa default atau nama profil kustom yang Anda buat.

    PROFILE_ID harus berisi antara 1 hingga 63 karakter, yang dapat berupa huruf kecil, angka 0-9, atau tanda hubung. Karakter pertama harus berupa huruf kecil. Karakter terakhir harus berupa huruf atau angka kecil.

  • $TOKEN adalah variabel lingkungan untuk token akses OAuth.
  • timeRange adalah rentang waktu untuk skor.

Rentang waktu

Rentang waktu untuk data yang digunakan untuk menghitung skor keamanan. Anda dapat menetapkan rentang waktu dengan menentukan waktu mulai dan berakhir untuk skor dalam format berikut:

"timeRange":
  {
    "startTime": "YYYY-MM-DDT00:00:00Z",
    "endTime": "YYYY-MM-DDT00:00:00Z"
  }

startTime dan endTime harus berada dalam 90 hari terakhir.

Gunakan profil keamanan default

Contoh berikut menunjukkan cara menggunakan profil keamanan default. Lihat Parameter dalam contoh panggilan API untuk parameter yang digunakan dalam contoh.

Melampirkan profil keamanan default ke lingkungan

Untuk melihat skor keamanan, Anda harus melampirkan profil ke lingkungan yang keamanannya ingin dievaluasi. Untuk memasang profil keamanan default ke lingkungan, gunakan perintah berikut:

curl "https://apigee.googleapis.com/v1/organizations/ORG/securityProfiles/default/environments" \
       -X POST \
       -d '{"name": "ENV"}' \
       -H 'Content-type: application/json' \
       -H "Authorization: Bearer $TOKEN"

Mendapatkan definisi profil keamanan default

Untuk mendapatkan definisi profil keamanan default, masukkan perintah berikut:

curl "https://apigee.googleapis.com/v1/organizations/ORG/securityProfiles/default" \
       -H 'Content-type: application/json' \
       -H "Authorization: Bearer $TOKEN"

Melepaskan profil keamanan default dari lingkungan

Jika perlu melepaskan profil default dari lingkungan, Anda dapat melakukannya seperti berikut:

  curl "https://apigee.googleapis.com/v1/organizations/ORG/securityProfiles/default/environments/ENV" \
         -X DELETE 
         -H 'Content-type: application/json' \
         -H "Authorization: Bearer $TOKEN"

Menggunakan profil keamanan kustom

Anda dapat membuat profil keamanan khusus menggunakan panggilan API menggunakan salah satu cara berikut:

  • Tentukan profil secara eksplisit dalam isi panggilan.
  • Lampirkan file JSON yang berisi definisi profil ke panggilan.

Bagian berikut memberikan contoh kedua metode tersebut. Lihat Parameter dalam contoh panggilan API untuk parameter yang digunakan dalam contoh.

Kolom berikut dalam contoh panggilan API menentukan profil kustom:

  • description: Deskripsi profil kustom.
  • profileConfig: Daftar kategori yang akan disertakan dalam profil kustom. Ini dapat berupa bagian apa pun dari kategori keamanan berikut:
    • abuse
    • authorization
    • cors
    • mtls
    • mediation
    • threat

    Menentukan profil dalam isi panggilan API

    Untuk menentukan profil kustom dalam isi panggilan API, masukkan perintah seperti berikut:

    curl "https://apigee.googleapis.com/v1/organizations/ORG/securityProfiles?security_profile_id=PROFILE_ID" \
           -X POST \
           -H "Authorization: Bearer $TOKEN" \
           -H "Content-Type: application/json" \
           -d '{
             "description":"test custom profile", 
             "profileConfig" : {
               "categories":[
                 {"cors":{}},
                 {"threat":{}}
               ]
             }
           }'

    Tindakan ini akan membuat profil kustom yang menyertakan kategori cor dan ancaman, dan menampilkan respons berikut:

    {
      "name": "PROFILE_ID",
      "revisionId": "1",
      "revisionCreateTime": "2023-07-17T18:47:08Z",
      "revisionUpdateTime": "2023-07-17T18:47:08Z",
      "scoringConfigs": [
        {
          "title": "json",
          "scorePath": "/org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@$proxy/policies/individual/security/threat/json",
          "description": "Check if JSONThreatProtection policy is configured."
        },
        {
          "title": "xml",
          "scorePath": "/org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@$proxy/policies/individual/security/threat/xml",
          "description": "Check if XMLThreatProtection policy is configured."
        },
        {
          "title": "cors",
          "scorePath": "/org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@$proxy/policies/individual/security/cors",
          "description": "Check if CORS policy is configured."
        }
      ],
      "maxScore": 1200,
      "minScore": 200,
      "profileConfig": {
        "categories": [
          {
            "cors": {}
          },
          {
            "threat": {}
          }
        ]
      },
      "description": "test custom profile"
      }

    Menentukan profil dengan melampirkan file JSON ke panggilan API

    Anda juga dapat menentukan profil keamanan khusus dengan melampirkan file JSON yang menentukan profil ke panggilan API. Sebagai contoh, pertama-tama buat file JSON berikut:

    {
      "description": "test custom profile", 
      "profileConfig" : {
        "categories":[
          {"cors":{}}, 
          {"threat" :{}},
        ]
      }
    }

    Ini mendefinisikan profil dengan kategori cor dan ancaman. Anda kemudian dapat membuat profil berdasarkan kategori ini sebagai berikut:

    curl "https://apigee.googleapis.com/v1/organizations/ORG/securityProfiles?security_profile_id=PROFILE_ID" \
           -X POST \
           -H "Authorization: Bearer $TOKEN" \
           -H "Content-Type: application/json" \
           -d @create_profile.json

    dengan create_profile.json adalah nama file JSON yang dijelaskan di atas.

    Mendapatkan definisi profil keamanan kustom

    Untuk mendapatkan definisi profil keamanan kustom, masukkan perintah yang mirip dengan yang berikut ini:

      curl "https://apigee.googleapis.com/v1/organizations/ORG/securityProfiles/PROFILE_ID" \
             -X GET \
             -H "Authorization: Bearer $TOKEN" \
             -H "Content-Type: application/json"

    Melepaskan profil keamanan kustom dari lingkungan

    Untuk melepaskan profil keamanan kustom dari lingkungan, masukkan perintah seperti berikut:

    curl "https://apigee.googleapis.com/v1/organizations/ORG/securityProfiles/PROFILE_ID/environments/ENV" \
           -X DELETE \
           -H "Authorization: Bearer $TOKEN" \
           -H "Content-Type: application/json"

    Menghapus profil keamanan khusus

    Untuk menghapus profil keamanan kustom, masukkan perintah seperti berikut:

    curl "https://apigee.googleapis.com/v1/organizations/ORG/securityProfiles/PROFILE_ID" \
           -X DELETE \
           -H "Authorization: Bearer $TOKEN" \
           -H "Content-Type: application/json"

    Mendapatkan skor untuk lingkungan

    Bagian berikut menampilkan contoh cara mendapatkan skor untuk suatu lingkungan. Lihat Parameter dalam contoh panggilan API untuk parameter yang digunakan dalam contoh.

    Mendapatkan semua skor untuk lingkungan

    Untuk mendapatkan semua skor untuk lingkungan, masukkan perintah yang mirip dengan berikut ini:

    curl "https://apigee.googleapis.com/v1/organizations/ORG/securityProfiles/PROFILE_ID/environments/ENV:computeEnvironmentScores" \
           -X POST \
           -d '{"timeRange":
                  {
                    "startTime": "YYYY-MM-DDT00:00:00Z",
                    "endTime": "YYYY-MM-DDT00:00:00Z"
                  }
               }' \
           -H 'Content-type: application/json' \
           -H "Authorization: Bearer $TOKEN"

    Lihat halaman referensi computeEnvironmentScores untuk mengetahui deskripsi permintaan dan respons.

    Mendapatkan skor sumber untuk lingkungan

    Untuk mendapatkan skor sumber untuk lingkungan, masukkan perintah yang mirip dengan perintah berikut:

    curl "https://apigee.googleapis.com/v1/organizations/ORG/securityProfiles/PROFILE_ID/environments/ENV:computeEnvironmentScores" \
           -X POST \
           -d '{"timeRange":
                  {
                    "startTime": "YYYY-MM-DDT00:00:00Z",
                    "endTime": "YYYY-MM-DDT00:00:00Z"
                  },
                "filters": [{"scorePath": "/org@ORG/envgroup@ENVGROUP/env@ENV/source"}]
               }' \
           -H 'Content-type: application/json' \
           -H "Authorization: Bearer $TOKEN"

    Mendapatkan skor penyalahgunaan dalam sumber untuk lingkungan

    Untuk mendapatkan skor penyalahgunaan di sumber untuk suatu lingkungan, masukkan perintah seperti berikut:

    curl "https://apigee.googleapis.com/v1/organizations/ORG/securityProfiles/PROFILE_ID/environments/ENV:computeEnvironmentScores" \
           -X POST \
           -d '{"timeRange":
                  {
                    "startTime": "YYYY-MM-DDT00:00:00Z",
                    "endTime": "YYYY-MM-DDT00:00:00Z"
                  },
                "filters": [{"scorePath": "/org@ORG/envgroup@ENVGROUP/env@ENV/source/abuse"}]
               }' \
           -H 'Content-type: application/json' \
           -H "Authorization: Bearer $TOKEN"

    Mendapatkan skor untuk semua proxy di lingkungan

    Guna mendapatkan skor untuk semua proxy di lingkungan, masukkan perintah seperti berikut:

    curl "https://apigee.googleapis.com/v1/organizations/ORG/securityProfiles/PROFILE_ID/environments/ENV:computeEnvironmentScores" \
           -X POST \
           -d '{"timeRange":
                  {
                    "startTime": "YYYY-MM-DDT00:00:00Z",
                    "endTime": "YYYY-MM-DDT00:00:00Z"
                  },
                "filters": [{"scorePath": "/org@ORG/envgroup@ENVGROUP/env@ENV/proxies"}]
               }' \
           -H 'Content-type: application/json' \
           -H "Authorization: Bearer $TOKEN"

    Mendapatkan skor untuk proxy tertentu dalam lingkungan

    Guna mendapatkan skor untuk proxy tertentu dalam lingkungan, masukkan perintah yang mirip dengan yang berikut ini:

    curl "https://apigee.googleapis.com/v1/organizations/ORG/securityProfiles/PROFILE_ID/environments/ENV:computeEnvironmentScores" \
           -X POST \
           -d '{"timeRange":
                  {
                    "startTime": "YYYY-MM-DDT00:00:00Z",
                    "endTime": "YYYY-MM-DDT00:00:00Z"
                  },
                "filters": [{"scorePath": "/org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@PROXY"}]
               }' \
           -H 'Content-type: application/json' \
           -H "Authorization: Bearer $TOKEN"

    dengan PROXY adalah proxy yang skornya ingin Anda dapatkan.

    Mendapatkan skor untuk target tertentu dalam lingkungan

    Untuk mendapatkan skor terkait target tertentu dalam lingkungan, masukkan perintah yang mirip dengan yang berikut ini:

    curl "https://apigee.googleapis.com/v1/organizations/ORG/securityProfiles/PROFILE_ID/environments/ENV:computeEnvironmentScores" \
           -X POST \
           -d '{"timeRange":
                  {
                    "startTime": "YYYY-MM-DDT00:00:00Z",
                    "endTime": "YYYY-MM-DDT00:00:00Z"
                  },
                "filters": [{"scorePath": "/org@ORG/envgroup@ENVGROUP/env@ENV/target@TARGET"}]
               }' \
           -H 'Content-type: application/json' \
           -H "Authorization: Bearer $TOKEN"

    Filter yang didukung di API

    Tabel berikut mencantumkan filter yang didukung di API, dan jalur komponennya. Di jalur komponen, ganti variabel sebagai berikut:

    • ORG: Organisasi Anda.
    • ENV: Lingkungan tempat Anda melihat skor.
    • PROXY_NAME: Nama proxy.
    Filter Jalur komponen
    Skor lingkungan /org@ORG/envgroup@ENVGROUP/env@ENV
    Sumber memberikan skor untuk semua komponen dasar /org@ORG/envgroup@ENVGROUP/env@ENV/source
    Skor penyalahgunaan /org@ORG/envgroup@ENVGROUP/env@ENV/source/abuse
    Skor untuk semua proxy /org@ORG/envgroup@ENVGROUP/env@ENV/proxies
    Skor untuk proxy tertentu /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@PROXY_NAME
    Skor kebijakan untuk proxy tertentu
    • /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@PROXY_NAME/policies
    • /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@PROXY_NAME/policies/individual
    Skor kebijakan mediasi untuk proxy tertentu /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@PROXY_NAME/policies/individual/mediation
    Skor kebijakan keamanan untuk proxy tertentu /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@PROXY_NAME/policies/individual/security
    Skor kebijakan Auth untuk proxy tertentu /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@PROXY_NAME/policies/individual/security/auth
    Skor kebijakan CORS untuk proxy tertentu /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@PROXY_NAME/policies/individual/security/cors
    Skor kebijakan ancaman untuk proxy tertentu /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@PROXY_NAME/policies/individual/security/threat
    Skor kebijakan untuk semua proxy di lingkungan
    • /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@$proxy/policies
    • /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@$proxy/policies/individual
    Skor kebijakan mediasi untuk semua proxy di lingkungan /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@$proxy/policies/individual/mediation
    Skor kebijakan keamanan untuk semua proxy di lingkungan /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@$proxy/policies/individual/security
    Skor kebijakan Auth untuk semua proxy di lingkungan /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@$proxy/policies/individual/security/auth
    Skor kebijakan CORS untuk semua proxy di lingkungan /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@$proxy/policies/individual/security/cors
    Skor kebijakan ancaman untuk semua proxy di lingkungan /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@$proxy/policies/individual/security/threat