Migliora la tua strategia di sicurezza con gli approfondimenti sugli asset

Gli approfondimenti di Cloud Asset Inventory possono aiutarti a rilevare potenziali rischi nelle configurazioni degli asset e a migliorare la tua strategia di sicurezza. Fa parte del servizio Recommender ed è fornito come tipo di insight google.cloudasset.asset.Insight.

Gli approfondimenti sono anomalie specifiche che richiedono ulteriori analisi per determinare l'azione appropriata. Vengono generati giornalmente in base a uno snapshot dei dati memorizzati in Cloud Asset Inventory.

Gli insight forniti da Cloud Asset Inventory si basano sui criteri IAM associati alle risorse della tua organizzazione.

Prima di iniziare

Prima di poter iniziare a utilizzare gli approfondimenti sugli asset, 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 uno dei seguenti ruoli.

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

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

Limitazioni

  • Questi approfondimenti non prendono in considerazione le iscrizioni ai gruppi o i service account come parte dei risultati e non devono essere considerati un elenco esaustivo delle vulnerabilità corrispondenti.

  • Gli insight individuali includono un campionamento delle policy IAM corrispondenti con un limite di 100 policy distinte. Tutti i criteri corrispondenti possono essere recuperati cercando i criteri di autorizzazione IAM sulle risorse.

Richiedere approfondimenti sugli asset

Il modo più semplice per richiedere approfondimenti sugli asset è elencarli, come mostrato nei passaggi seguenti. Per altri tipi di interazioni con gli approfondimenti, vedi Utilizzo dell'API - Approfondimenti.

gcloud

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

Fornisci i seguenti valori:

  • SCOPE: utilizza uno dei seguenti valori:

    • project=PROJECT_ID, dove PROJECT_ID è l'ID del progetto per cui vuoi ottenere insight.
    • folder=FOLDER_ID, dove FOLDER_ID è l'ID della cartella per cui vuoi ottenere insight.

      Come trovare l'ID di una Google Cloud cartella

      ConsoleGoogle Cloud

      Per trovare l'ID di una Google Cloud cartella:

      1. Vai alla console Google Cloud .

        Vai alla Google Cloud console

      2. Fai clic sulla casella di elenco del selettore nella barra dei menu.
      3. Seleziona la tua organizzazione dalla casella di elenco.
      4. Cerca il nome della cartella. L'ID cartella viene 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 è una corrispondenza parziale o completa della stringa per il nome della cartella. Rimuovi il flag --format per visualizzare ulteriori informazioni sulle cartelle trovate.

      Il comando precedente non restituisce gli ID delle sottocartelle all'interno delle cartelle. Per farlo, esegui il comando seguente utilizzando l'ID di una cartella di primo livello:

      gcloud resource-manager folders list --folder=FOLDER_ID
    • organization=ORGANIZATION_ID, dove ORGANIZATION_ID è l'ID dell'organizzazione per cui vuoi ottenere insight.

      Come trovare l'ID di un' Google Cloud organizzazione

      ConsoleGoogle Cloud

      Per trovare l'ID di un'organizzazione, completa i seguenti passaggi: Google Cloud

      1. Vai alla console Google Cloud .

        Vai alla Google Cloud console

      2. Fai clic sulla casella di elenco del selettore nella barra dei menu.
      3. Seleziona la tua organizzazione dalla casella di elenco.
      4. Fai clic sulla scheda Tutti. L'ID organizzazione viene visualizzato accanto al nome dell'organizzazione.

      Interfaccia a riga di comando gcloud

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

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
  • BILLING_PROJECT_ID: (Facoltativo) L'ID progetto in cui si trova l'agente di servizio Cloud Asset Inventory predefinito che dispone delle autorizzazioni per gestire la fatturazione e la quota. Scopri di più sull'impostazione del progetto di fatturazione.

  • SUBTYPE: Il sottotipo di insight dell'asset. Uno dei seguenti valori:

    • EXTERNAL_MEMBER: rileva le policy IAM contenenti utenti o gruppi che appartengono a un dominio esterno ai domini della tua organizzazione.
    • EXTERNAL_POLICY_EDITOR: rileva i criteri IAM contenenti utenti o gruppi esterni ai domini della tua organizzazione a cui è stata concessa l'autorizzazione per modificare i criteri IAM.
    • EXTERNAL_CLOUD_STORAGE_OBJECT_VIEWER: rileva i criteri IAM contenenti utenti o gruppi esterni ai domini della tua organizzazione a cui è stata concessa l'autorizzazione per ottenere o elencare oggetti di archiviazione (autorizzazione storage.objects.list o storage.objects.get).
    • EXTERNAL_SERVICE_ACCOUNT_IMPERSONATOR: rileva i criteri IAM contenenti utenti o gruppi al di fuori dei domini della tua organizzazione a cui è stato concesso il permesso di rappresentare gli account di servizio.
    • TERMINATED_MEMBER: rileva le policy IAM contenenti utenti o gruppi con account disattivati, eliminati o cancellati.
    • PUBLIC_IAM_POLICY: rileva le policy IAM contenenti tutti gli utenti o tutti gli utenti autenticati.
    • OWNER_TERMINATED_PROJECT: rileva i progetti che non contengono utenti o gruppi attivi nelle norme IAM del progetto.
  • Se non specificato, vengono restituiti tutti i sottotipi.

Per tutte le opzioni, consulta il riferimento gcloud CLI.

Esempio

Esegui questo comando per elencare gli approfondimenti per il progetto my-project.

gcloud recommender insights list \
    --project=my-project \
    --location=global \
    --insight-type=google.cloudasset.asset.Insight

Esempio di risposta

INSIGHT_ID: 00000000-0000-0000-0000-000000000000
CATEGORY: SECURITY
INSIGHT_STATE: ACTIVE
LAST_REFRESH_TIME: 2024-01-30T00:00:00Z
SEVERITY: LOW
INSIGHT_SUBTYPE: EXTERNAL_MEMBER
DESCRIPTION: Domain example.com detected in 1 IAM policies

REST

Metodo HTTP e URL:

GET https://recommender.googleapis.com/v1/SCOPE_PATH/locations/global/insightTypes/google.cloudasset.asset.Insight/insights

Intestazioni:

X-Goog-User-Project: BILLING_PROJECT_ID

Fornisci i seguenti valori:

  • SCOPE_PATH: utilizza uno dei seguenti valori:

    I valori consentiti sono:

    • projects/PROJECT_ID, dove PROJECT_ID è l'ID del progetto per cui vuoi ottenere insight.
    • projects/PROJECT_NUMBER, dove PROJECT_NUMBER è il numero del progetto per il quale vuoi ottenere insight.

      Come trovare un Google Cloud numero di progetto

      ConsoleGoogle Cloud

      Per trovare un numero di progetto, completa i seguenti passaggi: Google Cloud

      1. Vai alla pagina Benvenuto nella console Google Cloud .

        Vai a Benvenuto

      2. Fai clic sulla casella di elenco del selettore nella barra dei menu.
      3. Seleziona la tua organizzazione dalla casella di elenco e poi cerca il nome del tuo progetto. Il nome, il numero e l'ID progetto sono visualizzati vicino all'intestazione Benvenuto.

        Vengono visualizzate fino a 4000 risorse. Se non vedi il progetto che stai cercando, vai alla pagina Gestisci risorse e filtra l'elenco utilizzando il nome del progetto.

      Interfaccia a riga di comando gcloud

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

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"
    • folders/FOLDER_ID, dove FOLDER_ID è l'ID della cartella per cui vuoi ottenere insight.

      Come trovare l'ID di una Google Cloud cartella

      ConsoleGoogle Cloud

      Per trovare l'ID di una Google Cloud cartella:

      1. Vai alla console Google Cloud .

        Vai alla Google Cloud console

      2. Fai clic sulla casella di elenco del selettore nella barra dei menu.
      3. Seleziona la tua organizzazione dalla casella di elenco.
      4. Cerca il nome della cartella. L'ID cartella viene 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 è una corrispondenza parziale o completa della stringa per il nome della cartella. Rimuovi il flag --format per visualizzare ulteriori informazioni sulle cartelle trovate.

      Il comando precedente non restituisce gli ID delle sottocartelle all'interno delle cartelle. Per farlo, esegui il comando seguente utilizzando l'ID di una cartella di primo livello:

      gcloud resource-manager folders list --folder=FOLDER_ID
    • organizations/ORGANIZATION_ID, dove ORGANIZATION_ID è l'ID dell'organizzazione per cui vuoi ottenere insight.

      Come trovare l'ID di un' Google Cloud organizzazione

      ConsoleGoogle Cloud

      Per trovare l'ID di un'organizzazione, completa i seguenti passaggi: Google Cloud

      1. Vai alla console Google Cloud .

        Vai alla Google Cloud console

      2. Fai clic sulla casella di elenco del selettore nella barra dei menu.
      3. Seleziona la tua organizzazione dalla casella di elenco.
      4. Fai clic sulla scheda Tutti. L'ID organizzazione viene visualizzato accanto al nome dell'organizzazione.

      Interfaccia a riga di comando gcloud

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

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
  • BILLING_PROJECT_ID: l'ID progetto in cui si trova l'agente di servizio Cloud Asset Inventory predefinito che dispone delle autorizzazioni per gestire la fatturazione e la quota. Scopri di più sull'impostazione del progetto di fatturazione.

Esempi di comandi

Esegui uno dei seguenti comandi per elencare gli approfondimenti per il progetto my-project.

curl (Linux, macOS o Cloud Shell)

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

PowerShell (Windows)

$cred = gcloud auth print-access-token

$headers = @{ 
  "X-Goog-User-Project" = "BILLING_PROJECT_ID";
  "Authorization" = "Bearer $cred"
}


Invoke-WebRequest `
  -Method GET `
  -Headers $headers `
  -Uri "https://recommender.googleapis.com/v1/projects/my-project/locations/global/insightTypes/google.cloudasset.asset.Insight/insights" | Select-Object -Expand Content

Esempio di risposta

{
   "name": "organizations/000000000000/locations/global/insightTypes/google.cloudasset.asset.Insight/insights/00000000-0000-0000-0000-000000000000",
   "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/000000000000",
            "project" :"projects/000000000000",
            "matchedBindings" :[
               {
                  "role" :"roles/viewer",
                  "matchedMembers" :[
                     "user:example@example.com"
                  ]
               }
            ]
         }
      ]
   },
   "lastRefreshTime": "2024-01-30T00:00:00Z",
   "observationPeriod": "0s",
   "stateInfo": {
      "state": "ACTIVE"
   },
   "category": "SECURITY",
   "targetResources": [
      "//cloudresourcemanager.googleapis.com/organizations/000000000000"
   ],
   "insightSubtype": "EXTERNAL_MEMBER",
   "etag": "\"00000000000\"",
   "initialRefreshTime": "2024-01-30T00:00:00Z"
}

Interpretare le risposte agli approfondimenti

Oltre agli attributi degli approfondimenti standard, gli approfondimenti sugli asset forniscono diversi sottotipi e campi specializzati.

Sottotipi di insight

I sottotipi di insight sugli asset sono i seguenti:

  • EXTERNAL_MEMBER: rileva le policy IAM contenenti utenti o gruppi appartenenti a un dominio esterno ai domini della tua organizzazione.

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

  • EXTERNAL_CLOUD_STORAGE_OBJECT_VIEWER: rileva le norme IAM che contengono utenti o gruppi esterni ai domini della tua organizzazione a cui è stata concessa l'autorizzazione per ottenere o elencare oggetti di archiviazione (storage.objects.list o storage.objects.get permission).

  • EXTERNAL_SERVICE_ACCOUNT_IMPERSONATOR: rileva i criteri IAM contenenti utenti o gruppi esterni ai domini della tua organizzazione a cui è stata concessa l'autorizzazione a rappresentare service account.

  • TERMINATED_MEMBER: rileva le policy IAM contenenti utenti o gruppi con account disattivati, eliminati o cancellati.

  • PUBLIC_IAM_POLICY: rileva le policy IAM che contengono tutti gli utenti o tutti gli utenti autenticati.

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

Campi dei contenuti aggiuntivi

Oltre ai campi standard nella risposta, gli approfondimenti sulle risorse forniscono diversi campi specializzati nel campo content.

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

  • domain: Il dominio rilevato nei membri dei binding delle policy di questo approfondimento. Questo campo è incluso nei sottotipi EXTERNAL_MEMBER, EXTERNAL_POLICY_EDITOR, EXTERNAL_CLOUD_STORAGE_OBJECT_VIEWER e EXTERNAL_SERVICE_ACCOUNT_IMPERSONATOR.

  • assetName: Il nome dell'asset per il quale è stato rilevato l'accesso in questo approfondimento. 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 membri corrispondenti per questo insight. Questo campo è incluso per tutti i sottotipi di approfondimento sugli asset.

  • matchedPolicies: Un campione delle policy IAM corrispondenti all'insight rilevato. I criteri corrispondenti includono solo il sottoinsieme di associazioni e membri delle associazioni che corrispondono all'approfondimento rilevato. Questo campo è incluso per tutti i sottotipi di approfondimento sugli asset.

  • policySearchQuery: una query che può essere utilizzata con l'API Cloud Asset Inventory IAM Policy Search per recuperare le policy pertinenti in tempo reale.