Security Scores and Profiles API

Diese Seite gilt für Apigee und Apigee Hybrid.

Apigee Edge-Dokumentation aufrufen

In der Apigee-Benutzeroberfläche können Sie nicht nur Sicherheitspunktzahlen und Sicherheitsprofile aufrufen, sondern auch mit der Security Scores and Profiles API darauf zugreifen. Auf dieser Seite werden einige Beispiele für die Verwendung der Security Scores and Profiles API vorgestellt.

Beschränkungen von Sicherheitspunktzahlen bei Verwendung der APIs

Für Sicherheitspunktzahlen gelten die folgenden Einschränkungen, wenn sie aus den Security Scores und Profiles APIs verwendet werden:

  • Unterstützte Eingabefelder in JSON:
    • timeRange: Der Zeitraum darf maximal 14 Tage betragen und startTime und endTime für den Zeitraum müssen innerhalb der letzten 90 Tage liegen. Siehe Zeitraum.
    • filters: Siehe In der API unterstützte Filter.
    • pageSize: Maximale Anzahl von Unterkomponenten, die auf einer einzelnen Seite zurückgegeben werden sollen: 100.
  • Mehrere Eingabefilter werden nicht unterstützt.
  • Das Feld „Auswirkungen“ wird als Antwort nicht unterstützt. (Das Feld „Auswirkungen“ ist die mögliche Auswirkung dieser Empfehlung auf die Gesamtpunktzahl. Dieser Wert gibt an, wie wichtig diese Empfehlung zur Verbesserung der Punktzahl ist.)

Informationen zu allgemeinen Einschränkungen für Sicherheitspunktzahlen, die nicht spezifisch für die APIs sind, finden Sie unter Einschränkungen für Sicherheitspunktzahlen.

Datenverzögerungen

Die Daten, auf denen die Sicherheitswerte von Advanced API Security basieren, haben aufgrund der Art und Weise, wie die Daten verarbeitet werden, die folgenden Verzögerungen:

  • Wenn Sie Advanced API Security in einer Organisation aktivieren, kann es bis zu sechs Stunden dauern, bis die Punktzahlen für vorhandene Proxys und Ziele in einer Umgebung angezeigt werden.
  • Es kann bis zu 6 Stunden dauern, bis neue Ereignisse, die sich auf Proxys (Bereitstellung und Aufhebung der Bereitstellung) und Ziele (Erstellen, Aktualisieren, Löschen) in einer Umgebung beziehen, in der Bewertung der Umgebung widergespiegelt werden.
  • Daten, die in die Apigee Analytics-Pipeline fließen, haben im Durchschnitt eine Verzögerung von bis zu 20 Minuten. Dadurch kommt es bei der Bewertung der Missbrauchsdaten zu einer Verarbeitungsverzögerung von etwa 15 bis 20 Minuten.

Parameter in Beispiel-API-Aufrufen

In den folgenden Abschnitten finden Sie Beispiele für API-Aufrufe, die die Security Scores und die Profiles API verwenden. Die API-Aufrufe enthalten die folgenden Variablenparameter:

  • ORG ist Ihre Organisation.
  • ENV ist die Umgebung, in der Punktzahlen berechnet werden sollen.
  • ENVGROUP ist eine Umgebungsgruppe, die die Umgebung enthält.
  • PROFILE_ID ist der Name des Profils. PROFILE_ID kann default oder der Name eines benutzerdefinierten Profils sein, das Sie erstellen.

    PROFILE_ID muss 1 bis 63 Zeichen lang sein, wobei es sich um Kleinbuchstaben, um die Ziffern 0 bis 9 oder um Bindestriche handeln kann. Das erste Zeichen muss ein Kleinbuchstabe sein. Das letzte Zeichen muss ein Kleinbuchstabe oder eine Ziffer sein.

  • $TOKEN ist die Umgebungsvariable für ein OAuth-Zugriffstoken.
  • timeRange ist der Zeitraum für die Scores.

Zeitraum

Der Zeitraum für die Daten, für die Security Scores berechnet werden. Sie können den Zeitraum durch Angabe einer Start- und Endzeit für die Punktzahlen im folgenden Format festlegen:

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

Sowohl startTime als auch endTime müssen innerhalb der letzten 90 Tage liegen.

Standardsicherheitsprofil verwenden

Die folgenden Beispiele zeigen, wie das Standardsicherheitsprofil verwendet wird. Die in den Beispielen verwendeten Parameter finden Sie unter Parameter in Beispiel-API-Aufrufen.

Standard-Sicherheitsprofil an eine Umgebung anhängen

Zum Aufrufen von Sicherheitspunktzahlen müssen Sie ein Profil an die Umgebung anhängen, deren Sicherheit Sie bewerten möchten. Verwenden Sie den folgenden Befehl, um das Standardsicherheitsprofil an eine Umgebung anzuhängen:

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"

Standarddefinition des Sicherheitsprofils abrufen

Geben Sie den folgenden Befehl ein, um die Definition des Standardsicherheitsprofils abzurufen:

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

Standardsicherheitsprofil von einer Umgebung trennen

Wenn Sie das Standardprofil von einer Umgebung trennen müssen, können Sie so vorgehen:

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

Benutzerdefiniertes Sicherheitsprofil verwenden

Sie können ein benutzerdefiniertes Sicherheitsprofil mit einem API-Aufruf auf eine der folgenden Arten erstellen:

  • Geben Sie das Profil explizit im Text des Aufrufs an.
  • Hängen Sie an den Aufruf eine JSON-Datei an, die die Profildefinition enthält.

In den folgenden Abschnitten finden Sie Beispiele für beide Methoden. Die in den Beispielen verwendeten Parameter finden Sie unter Parameter in Beispiel-API-Aufrufen.

Die folgenden Felder in den Beispielen von API-Aufrufen geben das benutzerdefinierte Profil an:

  • description: Eine Beschreibung des benutzerdefinierten Profils.
  • profileConfig: Eine Liste der Kategorien, die in das benutzerdefinierte Profil aufgenommen werden sollen. Dies kann eine beliebige Teilmenge der folgenden Sicherheitskategorien sein:
    • abuse
    • authorization
    • cors
    • mtls
    • mediation
    • threat

    Profil im Text eines API-Aufrufs definieren

    Zum Definieren eines benutzerdefinierten Profils im Text eines API-Aufrufs geben Sie einen Befehl wie den folgenden ein:

    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":{}}
               ]
             }
           }'

    Dadurch wird ein benutzerdefiniertes Profil erstellt, das die Kategorien „cors“ und „threat“ enthält, und es wird die folgende Antwort zurückgegeben:

    {
      "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"
      }

    Profil definieren, indem Sie einer JSON-Datei einen API-Aufruf hinzufügen

    Sie können auch ein benutzerdefiniertes Sicherheitsprofil definieren, indem Sie eine JSON-Datei mit einer Profildefinition an einen API-Aufruf anhängen. Erstellen Sie als Beispiel zuerst die folgende JSON-Datei:

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

    Dadurch wird ein Profil mit den Kategorien „cors“ und „threat“ definiert. Sie können dann so ein Profil basierend auf diesen Kategorien erstellen:

    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

    Dabei ist create_profile.json der Name der oben beschriebenen JSON-Datei.

    Benutzerdefinierte Sicherheitsprofildefinition abrufen

    Geben Sie einen Befehl ähnlich dem folgenden ein, um die Definition eines benutzerdefinierten Sicherheitsprofils abzurufen:

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

    Benutzerdefiniertes Sicherheitsprofil von einer Umgebung trennen

    Geben Sie zum Trennen eines benutzerdefinierten Sicherheitsprofils von einer Umgebung einen Befehl wie den folgenden ein:

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

    Benutzerdefiniertes Sicherheitsprofil löschen

    Geben Sie einen Befehl wie den folgenden ein, um ein benutzerdefiniertes Sicherheitsprofil zu löschen:

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

    Punktzahlen für eine Umgebung abrufen

    In den folgenden Abschnitten finden Sie Beispiele zum Abrufen von Punktzahlen für eine Umgebung. Die in den Beispielen verwendeten Parameter finden Sie unter Parameter in Beispiel-API-Aufrufen.

    Alle Punktzahlen für eine Umgebung abrufen

    Um alle Punktzahlen für eine Umgebung abzurufen, geben Sie einen Befehl wie den folgenden ein:

    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"

    Eine Beschreibung der Anfrage und der Antwort finden Sie auf der Referenzseite zu computeEnvironmentScores.

    Quellpunktzahlen für eine Umgebung abrufen

    Geben Sie einen Befehl wie den folgenden ein, um Quellpunktzahlen für eine Umgebung abzurufen:

    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"

    Missbrauchspunktzahl in der Quelle für eine Umgebung abrufen

    Geben Sie einen Befehl wie den folgenden ein, um die Missbrauchspunktzahl in der Quelle für eine Umgebung abzurufen:

    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"

    Punktzahlen für alle Proxys in einer Umgebung abrufen

    Geben Sie einen Befehl wie den folgenden ein, um Punktzahlen für alle Proxys in einer Umgebung abzurufen:

    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"

    Punktzahlen für einen bestimmten Proxy in einer Umgebung abrufen

    Geben Sie einen Befehl wie den folgenden ein, um Punktzahlen für einen bestimmten Proxy in einer Umgebung abzurufen:

    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"

    Dabei ist PROXY der Proxy, dessen Punktzahlen Sie abrufen möchten.

    Punktzahlen für ein bestimmtes Ziel in einer Umgebung abrufen

    Geben Sie einen Befehl wie den folgenden ein, um Punktzahlen für ein bestimmtes Ziel in einer Umgebung abzurufen:

    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"

    In der API unterstützte Filter

    In der folgenden Tabelle sind die in der API unterstützten Filter und ihre Komponentenpfade aufgeführt. Ersetzen Sie in den Komponentenpfaden die Variablen so:

    • ORG: Meine Organisation.
    • ENV: Die Umgebung, in der Sie die Punktzahlen anzeigen.
    • PROXY_NAME: Der Name des Proxys.
    Filter Komponentenpfad
    Umgebungspunktzahlen /org@ORG/envgroup@ENVGROUP/env@ENV
    Quelle bewertet alle zugrunde liegenden Komponenten /org@ORG/envgroup@ENVGROUP/env@ENV/source
    Missbrauchspunktzahlen /org@ORG/envgroup@ENVGROUP/env@ENV/source/abuse
    Punktzahlen für alle Proxys /org@ORG/envgroup@ENVGROUP/env@ENV/proxies
    Punktzahlen für bestimmten Proxy /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@PROXY_NAME
    Richtlinienpunktzahlen für bestimmten Proxy
    • /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@PROXY_NAME/policies
    • /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@PROXY_NAME/policies/individual
    Punktzahlen für Mediationsrichtlinien für einen bestimmten Proxy /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@PROXY_NAME/policies/individual/mediation
    Punktzahlen für Sicherheitsrichtlinien für einen bestimmten Proxy /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@PROXY_NAME/policies/individual/security
    Punktzahlen für Auth-Richtlinienwerte für bestimmten Proxy /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@PROXY_NAME/policies/individual/security/auth
    Punktzahlen für CORS-Richtlinien für bestimmten Proxy /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@PROXY_NAME/policies/individual/security/cors
    Punktzahlen für Bedrohungsrichtlinien für einen bestimmten Proxy /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@PROXY_NAME/policies/individual/security/threat
    Richtlinienpunktzahlen für alle Proxys in der Umgebung
    • /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@$proxy/policies
    • /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@$proxy/policies/individual
    Punktzahlen für Mediationsrichtlinien für alle Proxys in der Umgebung /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@$proxy/policies/individual/mediation
    Punktzahlen für Sicherheitsrichtlinien für alle Proxys in der Umgebung /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@$proxy/policies/individual/security
    Punktzahlen für Auth-Richtlinien für alle Proxys in der Umgebung /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@$proxy/policies/individual/security/auth
    Punktzahlen für CORS-Richtlinien für alle Proxys in der Umgebung /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@$proxy/policies/individual/security/cors
    Punktzahlen für Bedrohungsrichtlinien für alle Proxys in der Umgebung /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@$proxy/policies/individual/security/threat