Os insights do inventário de recursos do Cloud podem ajudar a detectar possíveis riscos nas configurações de recursos e melhorar sua postura de segurança. Ele faz parte do serviço do
Recomendador e é fornecido como o
tipo de insight google.cloudasset.asset.Insight
.
Os insights são anomalias específicas que exigem uma análise mais detalhada para determinar a ação adequada. Eles são gerados diariamente com base em um snapshot dos dados armazenados no Inventário de recursos do Cloud.
Os insights fornecidos pelo Inventário de recursos do Cloud são baseados nas políticas do IAM associadas aos recursos da sua organização.
Antes de começar
Antes de começar a usar os insights de recursos, conclua as seguintes etapas.
Verifique se a sua conta tem as seguintes permissões:
recommender.cloudAssetInsights.get
recommender.cloudAssetInsights.list
recommender.cloudAssetInsights.update
É possível conceder essas permissões individualmente ou então um dos papéis a seguir.
Papel Leitor de insights de recursos do Cloud (
roles/recommender.cloudAssetInsightsViewer
)Papel Administrador de insights de recursos do Cloud (
roles/recommender.cloudAssetInsightsAdmin
)
Limitações
Esses insights não consideram as associações a grupos ou contas de serviço como parte das descobertas e não podem ser considerados uma lista completa de vulnerabilidades correspondentes.
Os insights individuais incluem uma amostragem das políticas de IAM correspondentes, limitada a 100 políticas distintas. Todas as políticas correspondentes podem ser recuperadas pesquisando políticas de permissão do IAM em recursos.
Solicitar insights de recursos
A maneira mais fácil de solicitar insights de recursos é listá-los, conforme mostrado nas etapas a seguir. Para outros tipos de interações de insights, consulte Usar a API - Insights.
gcloud
gcloud recommender insights list \ --SCOPE \ --location=global \ --insight-type=google.cloudasset.asset.Insight \ --filter="insightSubtype:SUBTYPE" \
Forneça os valores a seguir:
-
SCOPE
: use um dos seguintes valores:-
project=PROJECT_ID
, em quePROJECT_ID
é o ID do projeto para o qual você quer insights. -
folder=FOLDER_ID
, em queFOLDER_ID
é o ID da pasta para a qual você quer insights.Como encontrar o ID de uma pasta
Google Cloud console
Para encontrar o ID de uma pasta do Google Cloud , siga estas etapas:
-
Acesse o console Google Cloud .
- Clique na caixa de lista switcher na barra de menu.
- Selecione sua organização no campo de lista.
- Pesquise o nome da pasta. O ID da pasta é mostrado ao lado do nome dela.
CLI da gcloud
É possível extrair o ID de uma pasta do Google Cloud que está no nível da organização com o seguinte 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)"
Em que TOP_LEVEL_FOLDER_NAME é uma correspondência de string parcial ou completa para o nome da pasta. Remova a flag
--format
para conferir mais informações sobre as pastas encontradas.O comando anterior não retorna os IDs das subpastas dentro das pastas. Para fazer isso, execute o seguinte comando usando o ID de uma pasta de nível superior:
gcloud resource-manager folders list --folder=FOLDER_ID
-
-
organization=ORGANIZATION_ID
, em queORGANIZATION_ID
é o ID da organização para a qual você quer insights.Como encontrar o ID de uma organização do Google Cloud
Google Cloud console
Para encontrar o ID de uma organização do Google Cloud , siga estas etapas:
-
Acesse o console Google Cloud .
- Clique na caixa de lista switcher na barra de menu.
- Selecione sua organização no campo de lista.
- Selecione a guia Todos. O ID da organização aparece ao lado do nome dela.
CLI da gcloud
É possível extrair o ID de uma organização do Google Cloud com o seguinte comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
-
-
BILLING_PROJECT_ID
: opcional. O ID do projeto em que o agente de serviço padrão do Inventário de recursos do Cloud tem permissões para gerenciar seu faturamento e sua cota. Saiba mais sobre como configurar o projeto de faturamento. -
SUBTYPE
: o subtipo de insight do recurso. Um dos seguintes valores:-
EXTERNAL_MEMBER
: detecta políticas do IAM que contêm usuários ou grupos que pertencem a um domínio fora dos domínios da sua organização. -
EXTERNAL_POLICY_EDITOR
: detecta políticas do IAM que contêm usuários ou grupos fora dos domínios da organização e que têm permissão para modificar políticas do IAM. -
EXTERNAL_CLOUD_STORAGE_OBJECT_VIEWER
: detecta políticas do IAM que contêm usuários ou grupos fora dos domínios da organização e que têm permissão para receber ou listar objetos de armazenamento (permissãostorage.objects.list
oustorage.objects.get
). -
EXTERNAL_SERVICE_ACCOUNT_IMPERSONATOR
: detecta políticas do IAM que contêm usuários ou grupos fora dos domínios da organização e que têm permissão para representar contas de serviço. -
TERMINATED_MEMBER
: detecta políticas do IAM que contêm usuários ou grupos com contas desativadas, excluídas ou limpas. -
PUBLIC_IAM_POLICY
: detecta políticas do IAM que contêm todos os usuários ou todos os usuários autenticados. -
OWNER_TERMINATED_PROJECT
: detecta projetos que não contêm usuários ou grupos ativos na política do IAM do projeto.
-
Se não for especificado, todos os subtipos serão retornados.
Consulte a referência da CLI do gcloud para conferir todas as opções.
Exemplo
Execute o comando a seguir para listar insights do projeto my-project
.
gcloud recommender insights list \ --project=my-project \ --location=global \ --insight-type=google.cloudasset.asset.Insight
Exemplo de resposta
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
Método HTTP e URL:
GET https://recommender.googleapis.com/v1/SCOPE_PATH/locations/global/insightTypes/google.cloudasset.asset.Insight/insights
Cabeçalhos:
X-Goog-User-Project: BILLING_PROJECT_ID
Forneça os valores a seguir:
-
SCOPE_PATH
: use um dos seguintes valores:Os valores permitidos são:
-
projects/PROJECT_ID
, em quePROJECT_ID
é o ID do projeto para o qual você quer insights. -
projects/PROJECT_NUMBER
, em quePROJECT_NUMBER
é o número do projeto para o qual você quer insights.Como encontrar um número de projeto do Google Cloud
Google Cloud console
Para encontrar um número de projeto do Google Cloud , siga estas etapas:
-
Acesse a página Welcome no console Google Cloud .
- Clique na caixa de lista switcher na barra de menu.
-
Selecione sua organização na caixa de lista e pesquise o nome do projeto. O nome, o número e o ID do projeto são mostrados perto do título Welcome.
Até 4.000 recursos são exibidos. Se você não encontrar o projeto que está procurando, acesse a página Gerenciar recursos e filtre a lista usando o nome dele.
CLI da gcloud
É possível extrair um número de projeto do Google Cloud com o seguinte comando:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
-
folders/FOLDER_ID
, em queFOLDER_ID
é o ID da pasta para a qual você quer insights.Como encontrar o ID de uma pasta do Google Cloud
Google Cloud console
Para encontrar o ID de uma pasta do Google Cloud , siga estas etapas:
-
Acesse o console Google Cloud .
- Clique na caixa de lista switcher na barra de menu.
- Selecione sua organização no campo de lista.
- Pesquise o nome da pasta. O ID da pasta é mostrado ao lado do nome dela.
CLI da gcloud
É possível extrair o ID de uma pasta do Google Cloud que está no nível da organização com o seguinte 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)"
Em que TOP_LEVEL_FOLDER_NAME é uma correspondência de string parcial ou completa para o nome da pasta. Remova a flag
--format
para conferir mais informações sobre as pastas encontradas.O comando anterior não retorna os IDs das subpastas dentro das pastas. Para fazer isso, execute o comando abaixo usando o ID de uma pasta de nível superior:
gcloud resource-manager folders list --folder=FOLDER_ID
-
-
organizations/ORGANIZATION_ID
, em queORGANIZATION_ID
é o ID da organização para a qual você quer insights.Como encontrar o ID de uma organização do Google Cloud
Google Cloud console
Para encontrar o ID de uma organização do Google Cloud , siga estas etapas:
-
Acesse o console Google Cloud .
- Clique na caixa de lista switcher na barra de menu.
- Selecione sua organização no campo de lista.
- Selecione a guia Todos. O ID da organização aparece ao lado do nome dela.
CLI da gcloud
É possível extrair o ID de uma organização do Google Cloud com o seguinte comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
-
-
BILLING_PROJECT_ID
: o ID do projeto em que o agente de serviço padrão do Inventário de recursos do Cloud tem permissões para gerenciar seu faturamento e sua cota. Saiba mais sobre como configurar o projeto de faturamento.
Exemplos de comando
Execute um dos comandos a seguir para listar insights do projeto my-project
.
curl (Linux, macOS ou 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
Exemplo de resposta
{ "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" }
Como interpretar as respostas dos insights
Além dos atributos de insight padrão, os insights de recursos fornecem vários subtipos e campos especializados.
Subtipos de insights
Os subtipos de insights de recursos são os seguintes:
EXTERNAL_MEMBER
: detecta políticas do IAM que contêm usuários ou grupos que pertencem a um domínio fora dos domínios da sua organização.EXTERNAL_POLICY_EDITOR
: detecta políticas do IAM que contêm usuários ou grupos fora dos domínios da organização e que têm permissão para alterar políticas do IAM.EXTERNAL_CLOUD_STORAGE_OBJECT_VIEWER
: detecta políticas do IAM que contêm usuários ou grupos fora dos domínios da organização que têm permissão para receber ou listar objetos de armazenamento (storage.objects.list
oustorage.objects.get permission
).EXTERNAL_SERVICE_ACCOUNT_IMPERSONATOR
: detecta políticas do IAM que contêm usuários ou grupos fora dos domínios da organização e que têm permissão para representar contas de serviço.TERMINATED_MEMBER
: detecta políticas do IAM que contêm usuários ou grupos com contas desativadas, excluídas ou limpas.PUBLIC_IAM_POLICY
: detecta políticas do IAM que contêm todos os usuários ou todos os usuários autenticados.OWNER_TERMINATED_PROJECT
: detecta projetos que não contêm usuários ou grupos ativos na política do IAM do projeto.
Outros campos de conteúdo
Além dos campos padrão na resposta, os insights de recursos fornecem
vários campos especializados no campo content
.
user
: o endereço de e-mail do usuário detectado nos membros das vinculações de políticas para esse insight. Esse campo está incluído no subtipoTERMINATED_MEMBER
.domain
: o domínio detectado nos membros das vinculações de políticas desse insight. Esse campo está incluído nos subtiposEXTERNAL_MEMBER
,EXTERNAL_POLICY_EDITOR
,EXTERNAL_CLOUD_STORAGE_OBJECT_VIEWER
eEXTERNAL_SERVICE_ACCOUNT_IMPERSONATOR
.assetName
: o nome do recurso para o qual o acesso foi detectado neste insight. Esse campo está incluído nos subtiposOWNER_TERMINATED_PROJECT
ePUBLIC_IAM_POLICY
.policyCount
: o número total de políticas de IAM distintas em que os membros correspondentes foram detectados para esse insight. Esse campo é incluído para todos os subtipos de insights de recursos.matchedPolicies
: uma amostra das políticas do IAM correspondentes ao insight detectado. As políticas de correspondência só incluem o subconjunto de vinculações e membros de vinculação que correspondem ao insight detectado. Esse campo é incluído para todos os subtipos de insights de recursos.policySearchQuery
: uma consulta que pode ser usada com a API de pesquisa de políticas do IAM do Inventário de recursos do Cloud para recuperar as políticas relevantes em tempo real.