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.
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:
-
Vai alla console Google Cloud.
- Fai clic sulla casella del selettore nella barra dei menu.
- Fai clic sulla casella Seleziona da, quindi seleziona la tua organizzazione.
- 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:
-
Vai alla console Google Cloud.
- Fai clic sulla casella del selettore nella barra dei menu.
- Fai clic sulla casella Seleziona da, quindi seleziona la tua organizzazione.
- 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:
-
Vai alla pagina Dashboard nella console Google Cloud.
- Fai clic sulla casella del selettore nella barra dei menu.
- Seleziona la tua organizzazione dalla casella Seleziona da, quindi cerca il nome del tuo progetto.
- 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:
-
Vai alla console Google Cloud.
- Fai clic sulla casella del selettore nella barra dei menu.
- Fai clic sulla casella Seleziona da, quindi seleziona la tua organizzazione.
- 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:
-
Vai alla console Google Cloud.
- Fai clic sulla casella del selettore nella barra dei menu.
- Fai clic sulla casella Seleziona da, quindi seleziona la tua organizzazione.
- 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
ostorage.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 sottotipoTERMINATED_MEMBER
.domain
: il dominio specifico rilevato nei membri delle associazioni di criteri di questo particolare insight. Questo campo è incluso nei sottotipiEXTERNAL_MEMBER
,EXTERNAL_POLICY_EDITOR
,EXTERNAL_CLOUD_STORAGE_OBJECT_VIEWER
eEXTERNAL_SERVICE_ACCOUNT_IMPERSONATOR
.assetName
: il nome della risorsa per cui è stato rilevato l'accesso a questo approfondimento specifico. Questo campo è incluso nei sottotipiOWNER_TERMINATED_PROJECT
ePUBLIC_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.