Migliora la tua strategia di sicurezza con gli approfondimenti sugli asset

Gli approfondimenti dell'Cloud Asset Inventory possono aiutarti a rilevare potenziali rischi nelle configurazioni degli asset e a migliorare la tua security posture. Fa parte del servizio Recommender e viene fornito come tipo di informazione google.cloudasset.asset.Insight.

Gli Approfondimenti sono anomalie specifiche che richiedono un'ulteriore analisi per determinare l'azione appropriata. Vengono generati ogni giorno in base a uno snapshot dei dati memorizzati in Cloud Asset Inventory.

Gli approfondimenti 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 o uno dei seguenti ruoli.

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

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

Limitazioni

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

  • I singoli approfondimenti includono un campionamento di criteri IAM corrispondenti con un limite di 100 criteri distinti. Tutti i criteri corrispondenti possono essere recuperati cercando i criteri di autorizzazione IAM nelle risorse.

Richiedere approfondimenti sugli asset

Il modo più semplice per richiedere informazioni sugli asset è elencarli, come mostrato nei passaggi seguenti. Per altri tipi di interazioni con gli approfondimenti, consulta Utilizzare l'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 è ID del progetto per cui vuoi visualizzare gli approfondimenti.
    • folder=FOLDER_ID, dove FOLDER_ID è ID della cartella per cui vuoi ottenere approfondimenti.

      Come trovare l'ID di una cartella Google Cloud

      Google Cloud console

      Per trovare l'ID di una cartella Google Cloud , segui questi passaggi:

      1. Vai alla console Google Cloud .

        Vai alla console Google Cloud

      2. Fai clic sulla casella di elenco 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 seguente comando 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 informazioni.

      Come trovare l'ID di un'organizzazione Google Cloud

      Google Cloud console

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

      1. Vai alla console Google Cloud .

        Vai alla console Google Cloud

      2. Fai clic sulla casella di elenco 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 predefinito di Cloud Asset Inventory che dispone delle autorizzazioni per gestire la fatturazione e la quota. Scopri di più sulla configurazione del progetto di fatturazione.

  • SUBTYPE: il sottotipo di informazioni sugli asset. Uno dei seguenti valori:

    • EXTERNAL_MEMBER: rileva i criteri IAM contenenti utenti o gruppi che appartengono a un dominio esterno a quelli 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 recuperare o elencare oggetti di archiviazione (storage.objects.list o storage.objects.get).
    • EXTERNAL_SERVICE_ACCOUNT_IMPERSONATOR: rileva i criteri IAM contenenti utenti o gruppi esterni ai domini della tua organizzazione a cui è stata concessa l'autorizzazione per rubare l'identità degli account di servizio.
    • TERMINATED_MEMBER: rileva le policy IAM contenenti utenti o gruppi con account disattivati, eliminati o sottoposti a pulizia.
    • 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.
  • Se non specificato, vengono restituiti tutti i sottotipi.

Consulta il riferimento all'interfaccia a riga di comando gcloud per tutte le opzioni.

Esempio

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

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

Risposta di esempio

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 è ID del progetto per cui vuoi visualizzare gli approfondimenti.
    • projects/PROJECT_NUMBER, dove PROJECT_NUMBER è il numero del progetto per cui vuoi ottenere informazioni.

      Come trovare il numero di un progetto Google Cloud

      Google Cloud console

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

      1. Vai alla pagina Ti diamo il benvenuto nella console Google Cloud .

        Vai a Benvenuto

      2. Fai clic sulla casella di elenco selettore nella barra dei menu.
      3. Seleziona la tua organizzazione dalla casella di elenco, quindi cerca il nome del progetto. Il nome, il numero e l'ID progetto vengono visualizzati vicino all'intestazione Ti diamo il 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 il numero di un progetto Google Cloud con il seguente comando:

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

      Come trovare l'ID di una cartella Google Cloud

      Google Cloud console

      Per trovare l'ID di una cartella Google Cloud , segui questi passaggi:

      1. Vai alla console Google Cloud .

        Vai alla console Google Cloud

      2. Fai clic sulla casella di elenco 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 seguente comando 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 informazioni.

      Come trovare l'ID di un'organizzazione Google Cloud

      Google Cloud console

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

      1. Vai alla console Google Cloud .

        Vai alla console Google Cloud

      2. Fai clic sulla casella di elenco 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ù sulla configurazione 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

Risposta di esempio

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

Interpretazione delle risposte agli approfondimenti

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

Sottotipi di insight

I sottotipi di approfondimenti sugli asset sono i seguenti:

  • EXTERNAL_MEMBER: rileva i criteri IAM contenenti utenti o gruppi che appartengono a un dominio esterno a quelli 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 recuperare 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 per rubare l'identità degli account di servizio.

  • TERMINATED_MEMBER: rileva le norme IAM contenenti utenti o gruppi con account disattivati, eliminati o sottoposti a pulizia.

  • 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, gli approfondimenti delle risorse forniscono diversi campi specializzati nel campo content.

  • user: l'indirizzo email dell'utente rilevato nei membri delle associazioni di norme per questa informazione. Questo campo è incluso nel sottotipo TERMINATED_MEMBER.

  • domain: il dominio rilevato nei membri delle associazioni dei criteri di questa informazione. 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 in questa informazione. 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 approfondimenti sugli asset.

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

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