API Punteggi e profili di sicurezza

Questa pagina si applica a Apigee e Apigee ibridi.

Visualizza documentazione di Apigee Edge.

Oltre alla visualizzazione punteggi di sicurezza e profili di sicurezza nella UI di Apigee, puoi e possono anche accedervi usando l'API Security Scores e Profiles. Questa pagina presenta alcuni esempi di utilizzo dell'API Security score and profiles.

Limitazioni dei punteggi di sicurezza quando si utilizzano le API

Quando vengono utilizzati dai punteggi e dai profili di sicurezza, i punteggi di sicurezza presentano le seguenti limitazioni API:

  • Campi di immissione supportati in JSON:
    • timeRange: la durata dell'intervallo di tempo può essere al massimo di 14 giorni e startTime e endTime per l'intervallo di tempo devono negli ultimi 90 giorni. Vedi Intervallo di tempo.
    • filters: Vedi Filtri supportati dall'API.
    • pageSize: numero massimo di sottocomponenti da restituire in una singola pagina: 100.
  • Non sono supportati filtri di input multipli.
  • Il campo dell'impatto nella risposta non è supportato. (Il campo impatto è il potenziale impatto consigliato sul punteggio complessivo. Ciò indica quanto sia importante questo consiglio migliorare il punteggio.)

Per i limiti del punteggio di sicurezza generale non specifici per l'uso delle API, consulta Limitazioni dei punteggi di sicurezza.

Ritardi nei dati

I dati su cui si basano i punteggi di sicurezza Advanced API Security presentano quanto segue: ritardi dovuti al modo in cui i dati vengono elaborati:

  • Quando abiliti Advanced API Security in un'organizzazione, possono essere necessarie fino a 6 ore prima che i punteggi riflesso in un ambiente.
  • Nuovi eventi correlati ai proxy (deployment e annullamento del deployment) i target (creazione, aggiornamento, eliminazione) in un ambiente possono richiedere fino a 6 ore per riflettere nel punteggio dell'ambiente.
  • I dati che fluiscono nella pipeline di analisi Apigee hanno un ritardo massimo di 15-20 minuti media. Di conseguenza, i dati relativi all'abuso dei punteggi della fonte presentano un ritardo nell'elaborazione di circa 15-20 minuti.

Parametri nelle chiamate API di esempio

Le seguenti sezioni forniscono esempi di chiamate API che utilizzano i punteggi e i profili di sicurezza tramite Google Cloud CLI o tramite l'API Compute Engine. Le chiamate API contengono i seguenti parametri:

  • ORG è la tua organizzazione.
  • ENV è l'ambiente in cui vuoi calcolare i punteggi.
  • ENVGROUP è un gruppo di ambienti contenente l'ambiente.
  • PROFILE_ID è il nome del profilo. PROFILE_ID può essere default o il nome di un profilo personalizzato creato da te.

    Il campo PROFILE_ID deve contenere da 1 a 63 caratteri, che possono essere lettere minuscole, numeri 0-9 o trattini. Il primo carattere deve essere una lettera minuscola. L'ultima deve essere una lettera minuscola o un numero.

  • $TOKEN è la variabile di ambiente per un Token di accesso OAuth.
  • timeRange è l'intervallo di tempo per i punteggi.

Intervallo di tempo

L'intervallo di tempo per i dati su cui vengono calcolati i punteggi di sicurezza. Puoi impostare l'intervallo di tempo specificando un'ora di inizio e di fine per i punteggi nel seguente formato:

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

Sia startTime che endTime devono essere riferiti agli ultimi 90 giorni.

Utilizzare il profilo di sicurezza predefinito

I seguenti esempi mostrano come utilizzare il parametro profilo di sicurezza predefinito. Consulta Parametri nelle chiamate API di esempio per utilizzati negli esempi.

Collega il profilo di sicurezza predefinito a un ambiente

Per visualizzare i punteggi di sicurezza, devi collegare all'ambiente un profilo che vuoi valutare. Per allegare il valore predefinito sicurezza profilo a un ambiente, utilizza il seguente comando:

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"

Ottieni la definizione del profilo di sicurezza predefinita

Per visualizzare la definizione del profilo di sicurezza predefinito, inserisci il seguente comando:

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

Scollega il profilo di sicurezza predefinito da un ambiente

Se devi scollegare il profilo predefinito da un ambiente:

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

Usa un profilo di sicurezza personalizzato

Puoi creare un profilo di sicurezza personalizzato con una chiamata API, in uno dei seguenti modi:

  • Definisci in modo esplicito il profilo nel corpo della chiamata.
  • Allega alla chiamata un file JSON contenente la definizione del profilo.

Le sezioni seguenti forniscono esempi di entrambi i metodi. Consulta Parametri nelle chiamate API di esempio per utilizzati negli esempi.

I seguenti campi nelle chiamate API di esempio specificano il profilo personalizzato:

  • description: una descrizione del profilo personalizzato.
  • profileConfig: un elenco delle categorie da includere nel profilo personalizzato. Questo può essere qualsiasi sottoinsieme dei seguenti categorie di sicurezza:
    • abuse
    • authorization
    • cors
    • mtls
    • mediation
    • threat

    Definisci il profilo nel corpo di una chiamata API

    Per definire un profilo personalizzato nel corpo di una chiamata API, inserisci un comando simile al seguente:

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

    In questo modo viene creato un profilo personalizzato che include le categorie di rischio e minaccia. restituisce la seguente risposta:

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

    Definisci il profilo allegando un file JSON a una chiamata API

    Puoi anche definire un profilo di sicurezza personalizzato allegando un file JSON che definisca il profilo a una chiamata API. Ad esempio, crea prima il seguente file JSON:

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

    Questo definisce un profilo con categorie di valore e minaccia. Puoi quindi creare un profilo su queste categorie, come indicato di seguito:

    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

    dove create_profile.json è il nome del file JSON descritto sopra.

    Ottieni una definizione di profilo di sicurezza personalizzata

    Per ottenere la definizione di un profilo di sicurezza personalizzato, inserisci un comando simile al seguente:

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

    Scollega un profilo di sicurezza personalizzato da un ambiente

    Per scollegare un profilo di sicurezza personalizzato da un ambiente, inserisci un comando simile al seguente:

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

    Eliminare un profilo di sicurezza personalizzato

    Per eliminare un profilo di sicurezza personalizzato, inserisci un comando simile a seguenti:

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

    Ottieni punteggi per un ambiente

    Le sezioni seguenti presentano esempi di come ottenere punteggi per un ambiente. Consulta Parametri nelle chiamate API di esempio per utilizzati negli esempi.

    Ottieni tutti i punteggi per un ambiente

    Per ottenere tutti i punteggi per un ambiente, inserisci un comando simile al seguente:

    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"

    Consulta le Pagina di riferimento computeEnvironmentScores per una descrizione della richiesta e la risposta.

    Ottieni punteggi di origine per un ambiente

    Per ottenere i punteggi di origine per un ambiente, inserisci un comando simile al seguente:

    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"

    Ottieni il punteggio degli abusi nell'origine per un ambiente

    Per ottenere il punteggio degli abusi nell'origine per un ambiente, inserisci un comando simile al seguente:

    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"

    Ottieni punteggi per tutti i proxy in un ambiente

    Per ottenere i punteggi per tutti i proxy in un ambiente, inserisci un comando simile al seguente:

    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"

    Ottieni punteggi per un proxy specifico in un ambiente

    Per ottenere punteggi per un proxy specifico in un ambiente, inserisci un comando simile al seguente:

    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"

    dove PROXY è il proxy di cui vuoi ottenere i punteggi.

    Ottieni punteggi per un target specifico in un ambiente

    Per ottenere i punteggi per un target specifico in un ambiente, inserisci un comando simile al seguente:

    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"

    Filtri supportati nell'API

    Nella tabella seguente sono elencati i filtri supportati nell'API e i relativi i percorsi dei componenti. Nei percorsi dei componenti, sostituisci le variabili come segue:

    • ORG: la tua organizzazione.
    • ENV: l'ambiente in cui visualizzi i punteggi.
    • PROXY_NAME: il nome del proxy.
    Filtro Percorso componente
    Punteggi di ambiente /org@ORG/envgroup@ENVGROUP/env@ENV
    L'origine assegna un punteggio a tutti i componenti sottostanti /org@ORG/envgroup@ENVGROUP/env@ENV/source
    Punteggi illeciti /org@ORG/envgroup@ENVGROUP/env@ENV/source/abuse
    Punteggi per tutti i proxy /org@ORG/envgroup@ENVGROUP/env@ENV/proxies
    Punteggi per proxy specifico /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@PROXY_NAME
    Punteggi dei criteri per proxy specifico
    • /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@PROXY_NAME/policies
    • /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@PROXY_NAME/policies/individual
    Punteggi delle norme sulla mediazione per un proxy specifico /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@PROXY_NAME/policies/individual/mediation
    Punteggi dei criteri di sicurezza per proxy specifico /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@PROXY_NAME/policies/individual/security
    Punteggi dei criteri di autenticazione per proxy specifico /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@PROXY_NAME/policies/individual/security/auth
    Punteggio dei criteri CORS per proxy specifico /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@PROXY_NAME/policies/individual/security/cors
    Punteggi dei criteri di minaccia per proxy specifico /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@PROXY_NAME/policies/individual/security/threat
    Punteggi dei criteri per tutti i proxy nell'ambiente
    • /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@$proxy/policies
    • /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@$proxy/policies/individual
    Punteggi delle norme di mediazione per tutti i proxy nel ambiente /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@$proxy/policies/individual/mediation
    Punteggi dei criteri di sicurezza per tutti i proxy nell'ambiente /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@$proxy/policies/individual/security
    Punteggi dei criteri di autenticazione per tutti i proxy nell'ambiente /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@$proxy/policies/individual/security/auth
    Punteggi dei criteri CORS per tutti i proxy nell'ambiente /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@$proxy/policies/individual/security/cors
    Punteggi dei criteri di minaccia per tutti i proxy nell'ambiente /org@ORG/envgroup@ENVGROUP/env@ENV/proxies/proxy@$proxy/policies/individual/security/threat