Utilizzo degli insight di Cloud Asset

Questo argomento mostra come utilizzare gli insight sugli asset per rilevare potenziali rischi nelle configurazioni degli asset e migliorare la strategia di sicurezza.

Panoramica

Cloud Asset Insights fornisce insight basati sui criteri IAM associati alle risorse della tua organizzazione. Fa parte del servizio Motore per suggerimenti e viene fornito come tipo di insight google.cloudasset.asset.Insight. Gli insight sono anomalie specifiche che richiedono ulteriori analisi per determinare l'azione appropriata. Vengono generati quotidianamente in base a uno snapshot dei dati archiviati in Cloud Asset Inventory.

Prima di iniziare

Prima di poter iniziare a utilizzare Asset Insights, devi completare i seguenti passaggi.

  1. Abilita l'API Recommender.

  2. Assicurati che il tuo account disponga delle seguenti autorizzazioni:

    • recommender.cloudAssetInsights.get

    • recommender.cloudAssetInsights.list

    • recommender.cloudAssetInsights.update

    Puoi concedere queste autorizzazioni singolarmente oppure puoi concedere uno dei ruoli seguenti.

    • Ruolo Visualizzatore Cloud Asset Insights (roles/recommender.cloudAssetInsightsViewer)

    • Ruolo Amministratore di Cloud Asset Insights (roles/recommender.cloudAssetInsightsAdmin)

Richiesta di insight sugli asset

Per richiedere approfondimenti sugli asset, il modo più semplice è elencare gli approfondimenti come mostrato nei passaggi seguenti. Per altri tipi di interazioni degli insight, consulta la guida agli insight per l'API Recommender.

Richiesta di insight sul progetto

Per richiedere insight per un progetto, effettua una delle richieste seguenti.

gcloud

Esegui i seguenti comandi dell'interfaccia alla gcloud CLI per elencare insight per il progetto, la cartella o l'organizzazione.

Progetti

gcloud recommender insights list \
    --project=PROJECT_ID \
    --location=global \
    --insight-type=google.cloudasset.asset.Insight \
    --filter="insightSubtype:SUBTYPE" \
    --format="FORMAT"

Specifica i seguenti valori:

  • PROJECT_ID: l'ID del progetto per il quale vuoi gli approfondimenti.

Altri flag:

  • --filter: facoltativo. Filtra i risultati per sottotipo di insight.

  • --format: facoltativo. Un formato di output supportato per gcloud CLI. Ad esempio, per elencare i contenuti di insight in una tabella piatta:

    gcloud recommender insights list \
        --project=PROJECT_ID \
        --location=global \
        --insight-type=google.cloudasset.asset.Insight \
        --flatten="content.matchedPolicies[].matchedBindings[].matchedMembers[]" \
        --format="table(insightSubtype, name,
            content.matchedPolicies.matchedBindings.matchedMembers,
            content.matchedPolicies.matchedBindings.role,
            content.matchedPolicies.resource)"
    

Cartelle

gcloud recommender insights list \
    --folder=FOLDER_ID \
    --location=global \
    --insight-type=google.cloudasset.asset.Insight \
    --filter="insightSubtype:SUBTYPE" \
    --format="FORMAT"

Specifica i seguenti valori:

  • FOLDER_ID: l'ID della cartella per cui vuoi gli approfondimenti.

    Come trovare l'ID di una cartella Google Cloud

    Console

    Per trovare l'ID di una cartella Google Cloud, completa i seguenti passaggi:

    1. Vai alla console Google Cloud.

      Vai alla console Google Cloud

    2. Fai clic sulla casella del selettore nella barra dei menu.
    3. Fai clic sulla casella Seleziona da, quindi seleziona la tua organizzazione.
    4. Cerca il nome della cartella. L'ID cartella è visualizzato accanto al nome della cartella.

    Interfaccia a riga di comando gcloud

    Puoi recuperare l'ID di una cartella Google Cloud che si trova a livello di organizzazione con il seguente comando:

    gcloud resource-manager folders list \
        --organization=$(gcloud organizations describe ORGANIZATION_NAME \
          --format="value(name.segment(1))") \
        --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
        --format="value(ID)"

    Dove TOP_LEVEL_FOLDER_NAME può essere una corrispondenza stringa completa o parziale. Rimuovi l'opzione --format per visualizzare ulteriori informazioni sulle cartelle trovate.

    Per ottenere l'ID di una cartella all'interno di un'altra cartella, elenca le sottocartelle:

    gcloud resource-manager folders list --folder=FOLDER_ID

Altri flag:

  • --filter: facoltativo. Filtra i risultati per sottotipo di insight.

  • --format: facoltativo. Un formato di output supportato per gcloud CLI. Ad esempio, per elencare i contenuti di insight in una tabella piatta:

    gcloud recommender insights list \
        --folder=FOLDER_ID \
        --location=global \
        --insight-type=google.cloudasset.asset.Insight \
        --flatten="content.matchedPolicies[].matchedBindings[].matchedMembers[]" \
        --format="table(insightSubtype, name,
            content.matchedPolicies.matchedBindings.matchedMembers,
            content.matchedPolicies.matchedBindings.role,
            content.matchedPolicies.resource)"
    

Organizzazioni

gcloud recommender insights list \
    --organization=ORGANIZATION_ID \
    --location=global \
    --insight-type=google.cloudasset.asset.Insight \
    --filter="insightSubtype:SUBTYPE" \
    --format="FORMAT"

Specifica i seguenti valori:

  • ORGANIZATION_ID: l'ID dell'organizzazione per cui vuoi gli insight.

    Come trovare un ID organizzazione Google Cloud

    Console

    Per trovare l'ID organizzazione di Google Cloud, completa questi passaggi:

    1. Vai alla console Google Cloud.

      Vai alla console Google Cloud

    2. Fai clic sulla casella del selettore nella barra dei menu.
    3. Fai clic sulla casella Seleziona da, quindi seleziona la tua organizzazione.
    4. Fai clic sulla scheda Tutte. L'ID organizzazione è visualizzato accanto al nome dell'organizzazione.

    Interfaccia a riga di comando gcloud

    Puoi recuperare un ID organizzazione Google Cloud con il seguente comando:

    gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

Altri flag:

  • --filter: facoltativo. Filtra i risultati per sottotipo di insight.

  • --format: facoltativo. Un formato di output supportato per gcloud CLI. Ad esempio, per elencare i contenuti di insight in una tabella piatta:

    gcloud recommender insights list \
        --organization=ORGANIZATION_ID \
        --location=global \
        --insight-type=google.cloudasset.asset.Insight \
        --flatten="content.matchedPolicies[].matchedBindings[].matchedMembers[]" \
        --format="table(insightSubtype, name,
            content.matchedPolicies.matchedBindings.matchedMembers,
            content.matchedPolicies.matchedBindings.role,
            content.matchedPolicies.resource)"
    

REST

Esegui questo comando curl per elencare gli insight relativi al progetto, alla cartella o all'organizzazione.

curl -X GET \
     -H "Authorization: Bearer $(gcloud auth print-access-token)"  \
     https://recommender.googleapis.com/v1/SCOPE/locations/global/insightTypes/google.cloudasset.asset.Insight/insights

Specifica i seguenti valori:

  • SCOPE: un ambito può essere un progetto, una cartella o un'organizzazione.

    I valori consentiti sono:

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      Come trovare il numero di un progetto Google Cloud

      Console

      Per trovare il numero di un progetto Google Cloud, completa questi passaggi:

      1. Vai alla pagina Dashboard nella console Google Cloud.

        Vai alla dashboard

      2. Fai clic sulla casella del selettore nella barra dei menu.
      3. Seleziona la tua organizzazione dalla casella Seleziona da, quindi cerca il nome del tuo progetto.
      4. Fai clic sul nome del progetto per passare a quel progetto. Il numero di progetto è visualizzato nella scheda Informazioni sul progetto.

      Interfaccia a riga di comando gcloud

      Puoi recuperare il numero di un progetto Google Cloud con il seguente comando:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      Come trovare l'ID di una cartella Google Cloud

      Console

      Per trovare l'ID di una cartella Google Cloud, completa i seguenti passaggi:

      1. Vai alla console Google Cloud.

        Vai alla console Google Cloud

      2. Fai clic sulla casella del selettore nella barra dei menu.
      3. Fai clic sulla casella Seleziona da, quindi seleziona la tua organizzazione.
      4. Cerca il nome della cartella. L'ID cartella è visualizzato accanto al nome della cartella.

      Interfaccia a riga di comando gcloud

      Puoi recuperare l'ID di una cartella Google Cloud che si trova a livello di organizzazione con il seguente comando:

      gcloud resource-manager folders list \
          --organization=$(gcloud organizations describe ORGANIZATION_NAME \
            --format="value(name.segment(1))") \
          --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \
          --format="value(ID)"

      Dove TOP_LEVEL_FOLDER_NAME può essere una corrispondenza stringa completa o parziale. Rimuovi l'opzione --format per visualizzare ulteriori informazioni sulle cartelle trovate.

      Per ottenere l'ID di una cartella all'interno di un'altra cartella, elenca le sottocartelle:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      Come trovare un ID organizzazione Google Cloud

      Console

      Per trovare l'ID organizzazione di Google Cloud, completa questi passaggi:

      1. Vai alla console Google Cloud.

        Vai alla console Google Cloud

      2. Fai clic sulla casella del selettore nella barra dei menu.
      3. Fai clic sulla casella Seleziona da, quindi seleziona la tua organizzazione.
      4. Fai clic sulla scheda Tutte. L'ID organizzazione è visualizzato accanto al nome dell'organizzazione.

      Interfaccia a riga di comando gcloud

      Puoi recuperare un ID organizzazione Google Cloud con il seguente comando:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

Interpretare le risposte degli insight

Oltre agli attributi standard degli approfondimenti, Statistiche sugli asset fornisce diversi sottotipi e campi specializzati.

Sottotipi di insight

Esistono sette sottotipi distinti di Asset Insights.

  • EXTERNAL_MEMBER: rileva i criteri IAM contenenti utenti o gruppi che appartengono a un dominio esterno a quelli dell'organizzazione.

  • EXTERNAL_POLICY_EDITOR: rileva i criteri IAM contenenti utenti o gruppi esterni ai domini dell'organizzazione a cui è concessa l'autorizzazione per modificare i criteri IAM.

  • EXTERNAL_CLOUD_STORAGE_OBJECT_VIEWER: rileva i criteri IAM che contengono utenti o gruppi esterni ai domini dell'organizzazione a cui è stata concessa l'autorizzazione per recuperare o elencare gli oggetti di archiviazione (storage.objects.list o storage.objects.get permission).

  • EXTERNAL_SERVICE_ACCOUNT_IMPERSONATOR: rileva i criteri IAM che contengono utenti o gruppi esterni ai domini dell'organizzazione a cui è stata concessa l'autorizzazione per impersonare account di servizio.

  • TERMINATED_MEMBER: rileva i criteri IAM contenenti utenti o gruppi con account disattivati, eliminati o eliminati definitivamente.

  • PUBLIC_IAM_POLICY: rileva i criteri IAM contenenti tutti gli utenti o tutti gli utenti autenticati.

  • OWNER_TERMINATED_PROJECT: rileva i progetti che non contengono utenti o gruppi attivi nel criterio IAM del progetto.

Campi di contenuti aggiuntivi

Oltre ai campi standard nella risposta, Asset Insights fornisce diversi campi specializzati nel campo content.

  • user: l'indirizzo email dell'utente specifico rilevato nei membri delle associazioni dei criteri per questo approfondimento. Questo campo è incluso nel sottotipo TERMINATED_MEMBER.

  • domain: il dominio specifico rilevato nei membri delle associazioni di criteri di questo particolare insight. Questo campo è incluso nei sottotipi EXTERNAL_MEMBER, EXTERNAL_POLICY_EDITOR, EXTERNAL_CLOUD_STORAGE_OBJECT_VIEWER e EXTERNAL_SERVICE_ACCOUNT_IMPERSONATOR.

  • assetName: il nome della risorsa per cui è stato rilevato l'accesso a questo approfondimento specifico. Questo campo è incluso nei sottotipi OWNER_TERMINATED_PROJECT e PUBLIC_IAM_POLICY.

  • policyCount: il numero totale di criteri IAM distinti in cui sono stati rilevati i membri corrispondenti per questo particolare insight. Questo campo è incluso per tutti i sottotipi di Asset Insights.

  • matchedPolicies: un campione dei criteri IAM corrispondenti all'insight rilevato. I criteri di corrispondenza includono solo il sottoinsieme di associazioni e membri di associazione che corrispondono all'insight rilevato. Questo campo è incluso per tutti i sottotipi di Asset Insights.

  • policySearchQuery: una query che può essere utilizzata con l'API di ricerca dei criteri IAM di Cloud Asset Inventory per recuperare tutti i criteri pertinenti in tempo reale.

Esempio di risposta

Lo snippet di codice riportato di seguito mostra il formato di una risposta di esempio.

{
   "name": "organizations/1234567/locations/global/insightTypes/google.cloudasset.asset.Insight/insights/0ab35ae7-afa8-42a3-a173-92da8771a489",
   "description": "Domain example.com detected in 1 IAM policies",
   "content": {
      "domain": "example.com",
      "policyCount": 1,
      "policySearchQuery": "policy: example.com",
      "matchedPolicies" :[
         {
            "resource" :"//cloudresourcemanager.googleapis.com/projects/5678910",
            "project" :"projects/5678910",
            "matchedBindings" :[
               {
                  "role" :"roles/viewer",
                  "matchedMembers" :[
                     "user:example@example.com"
                  ]
               }
            ]
         }
      ]
   },
   "lastRefreshTime": "2020-12-04T06:59:04Z",
   "observationPeriod": "0s",
   "stateInfo": {
      "state": "ACTIVE"
   },
   "category": "SECURITY",
   "targetResources": [
      "//cloudresourcemanager.googleapis.com/organizations/1234567"
   ],
   "insightSubtype": "EXTERNAL_MEMBER",
   "etag": "\"00000000000\"",
   "initialRefreshTime": "2020-12-01T06:58:03Z"
}

Limitazioni

  • Questi insight non considerano l'appartenenza ai gruppi come parte dei risultati e non devono essere considerati un elenco esaustivo delle vulnerabilità corrispondenti.

  • I singoli insight includono un campione di criteri IAM corrispondenti che è limitato a 100 criteri distinti. Tutti i criteri corrispondenti possono essere recuperati chiamando la ricerca dei criteri di Cloud Asset Inventory.

  • Gli insight sugli asset non considerano gli account di servizio ai fini della generazione di insight.