Esta página mostra como gerenciar insights de conta de serviço, que são descobertas sobre quais contas de serviço no projeto não foram usadas nos últimos 90 dias.
Antes de começar
-
Enable the Recommender API.
- Opcional: leia sobre os insights do recomendador.
Funções exigidas
Para receber as permissões necessárias para gerenciar insights de conta de serviço, peça ao administrador que conceda a você os seguintes papéis do IAM no projeto para o qual você quer gerenciar insights:
-
Para conferir os insights da conta de serviço:
Leitor do recomendador do IAM (
roles/recommender.iamViewer
) -
Para modificar os insights da conta de serviço:
Administrador do recomendador do IAM (
roles/recommender.iamAdmin
)
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Esses papéis predefinidos têm as permissões necessárias para gerenciar os insights da conta de serviço. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:
Permissões necessárias
As seguintes permissões são necessárias para gerenciar insights da conta de serviço:
-
Para ver os insights da conta de serviço:
-
recommender.iamServiceAccountinsights.get
-
recommender.iamServiceAccountinsights.list
-
-
Para modificar os insights da conta de serviço:
recommender.iamServiceAccountinsights.update
Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.
Listar insights da conta de serviço
Para listar todos os insights da conta de serviço do projeto, use um dos seguintes métodos:gcloud
Use o comando gcloud recommender
insights list
para conferir todos os insights da conta de serviço do seu
projeto.
Antes de executar o comando, substitua os seguintes valores:
PROJECT_ID
: o ID do projeto para o qual você quer listar insights.
gcloud recommender insights list --insight-type=google.iam.serviceAccount.Insight \ --project=PROJECT_ID \ --location=global
A saída lista todos os insights da conta de serviço do projeto. Exemplo:
INSIGHT_ID CATEGORY INSIGHT_STATE LAST_REFRESH_TIME SEVERITY INSIGHT_SUBTYPE DESCRIPTION 446303ba-2a14-49cc-b9fa-e2d2499d4f82 SECURITY ACTIVE 2022-05-24T07:00:00Z LOW SERVICE_ACCOUNT_USAGE Service account sa-1@my-project.iam.gserviceaccount.com was inactive. 4cfd82c3-7320-4dc6-9b67-ca0756bbd54c SECURITY ACTIVE 2022-05-24T07:00:00Z LOW SERVICE_ACCOUNT_USAGE Service account sa-2@my-project.iam.gserviceaccount.com was inactive. a627bed7-c8f4-4611-89c9-2a9a8618ca1b SECURITY ACTIVE 2022-05-24T07:00:00Z LOW SERVICE_ACCOUNT_USAGE Service account sa-3@my-project.iam.gserviceaccount.com was inactive. a922dd59-df0a-422d-a2a4-096195e1dae5 SECURITY ACTIVE 2022-05-24T07:00:00Z LOW SERVICE_ACCOUNT_USAGE Service account sa-4@my-project.iam.gserviceaccount.com was inactive.
REST
O método
insights.list
da API Recommender lista todos os insights de conta de serviço do
projeto.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
PROJECT_ID
: o ID do projeto para o qual você quer listar insights.
Método HTTP e URL:
GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights
Para enviar a solicitação, expanda uma destas opções:
A resposta lista todos os insights da conta de serviço do projeto. Exemplo:
{ "insights": [ { "name": "projects/123456789012/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights/446303ba-2a14-49cc-b9fa-e2d2499d4f82", "description": "Service account sa-1@my-project.iam.gserviceaccount.com was inactive.", "content": { "serviceAccountId": "103185812403937829397", "email": "sa-1@my-project.iam.gserviceaccount.com", "lastAuthenticatedTime": "2020-09-11T07:00:00Z" }, "lastRefreshTime": "2022-05-24T07:00:00Z", "observationPeriod": "19008000s", "stateInfo": { "state": "ACTIVE" }, "category": "SECURITY", "targetResources": [ "//cloudresourcemanager.googleapis.com/projects/123456789012" ], "insightSubtype": "SERVICE_ACCOUNT_USAGE", "etag": "\"9d797dd04263c855\"", "severity": "LOW" }, { "name": "projects/123456789012/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights/4cfd82c3-7320-4dc6-9b67-ca0756bbd54c", "description": "Service account sa-2@my-project.iam.gserviceaccount.com was inactive.", "content": { "serviceAccountId": "105496400997178042131", "email": "sa-2@my-project.iam.gserviceaccount.com" }, "lastRefreshTime": "2022-05-24T07:00:00Z", "observationPeriod": "16070400s", "stateInfo": { "state": "ACTIVE" }, "category": "SECURITY", "targetResources": [ "//cloudresourcemanager.googleapis.com/projects/123456789012" ], "insightSubtype": "SERVICE_ACCOUNT_USAGE", "etag": "\"783a32b635d79a4e\"", "severity": "LOW" } ] }
Para saber mais sobre os componentes de um insight, consulte Analisar insights da conta de serviço nesta página.
Receber um único insight da conta de serviço
Para mais informações sobre um único insight, incluindo a descrição, o status e as recomendações associadas, use um dos seguintes métodos:
gcloud
Use o comando gcloud recommender
insights describe
com o ID do insight para ver as informações sobre um único
insight.
-
INSIGHT_ID
: o ID do insight que você quer ver. Para encontrar o ID, liste os insights do projeto. PROJECT_ID
: o ID do projeto para o qual você quer gerenciar insights.
gcloud recommender insights describe INSIGHT_ID \ --insight-type=google.iam.serviceAccount.Insight \ --project=PROJECT_ID \ --location=global
A saída mostra os insights detalhados. Por exemplo, o insight a seguir indica que a conta de serviço
sa-1@my-project.iam.gserviceaccount.com
foi autenticada pela última vez em
11 de outubro de 2020.
category: SECURITY content: email: sa-1@my-project.iam.gserviceaccount.com lastAuthenticatedTime: '2020-10-11T07:00:00Z' serviceAccountId: '103185812403937829397' description: Service account sa-1@my-project.iam.gserviceaccount.com was inactive. etag: '"9d797dd04263c855"' insightSubtype: SERVICE_ACCOUNT_USAGE lastRefreshTime: '2022-05-24T07:00:00Z' name: projects/123456789012/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights/446303ba-2a14-49cc-b9fa-e2d2499d4f82 observationPeriod: 19008000s severity: LOW stateInfo: state: ACTIVE targetResources: - //cloudresourcemanager.googleapis.com/projects/123456789012
Para saber mais sobre os componentes de um insight, consulte Analisar insights da conta de serviço nesta página.
REST
O método
insights.get
da API Recommender recebe um insight.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
-
PROJECT_ID
: o ID do projeto para o qual você quer gerenciar insights. -
INSIGHT_ID
: o ID do insight que você quer ver. Se você não souber o ID, é possível encontrá-lo listando os insights no seu projeto. O ID de um insight é tudo o que aparece depois deinsights/
no camponame
do insight.
Método HTTP e URL:
GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights/INSIGHT_ID
Para enviar a solicitação, expanda uma destas opções:
A resposta contém o insight. Por exemplo, o insight a seguir indica que a conta de serviço
sa-1@my-project.iam.gserviceaccount.com
foi autenticada pela última vez em
11 de outubro de 2020.
{ "name": "projects/123456789012/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights/446303ba-2a14-49cc-b9fa-e2d2499d4f82", "description": "Service account sa-1@my-project.iam.gserviceaccount.com was inactive.", "content": { "serviceAccountId": "103185812403937829397", "email": "sa-1@my-project.iam.gserviceaccount.com", "lastAuthenticatedTime": "2020-09-11T07:00:00Z" }, "lastRefreshTime": "2022-05-24T07:00:00Z", "observationPeriod": "19008000s", "stateInfo": { "state": "ACTIVE" }, "category": "SECURITY", "targetResources": [ "//cloudresourcemanager.googleapis.com/projects/123456789012" ], "insightSubtype": "SERVICE_ACCOUNT_USAGE", "etag": "\"9d797dd04263c855\"", "severity": "LOW" }
Para saber mais sobre os componentes de um insight, consulte Analisar insights da conta de serviço nesta página.
Analisar insights da conta de serviço
Depois de receber um único insight, é possível analisar o conteúdo para entender o padrão de uso de recursos destacado
O conteúdo do insight é determinado pelos subtipos dele.
Os insights da conta de serviço (google.iam.serviceAccount.Insight
) têm o subtipo SERVICE_ACCOUNT_USAGE
.
Os insights SERVICE_ACCOUNT_USAGE
têm os seguintes componentes, não necessariamente
nesta ordem:
-
associatedRecommendations
: os identificadores de qualquer recomendação associada ao insight. Se não houver recomendações associadas ao insight, esse campo estará vazio. -
category
: a categoria dos insights do IAM é sempreSECURITY
. -
content
: relata a última vez que a conta de serviço foi autenticada. Este campo contém os seguintes componentes:email
: o endereço de e-mail da conta de serviço.lastAuthenticatedTime
: o horário mais recente em que a conta de serviço foi autenticada. Se a conta de serviço não tiver autenticações registradas, esse campo não estará incluído.serviceAccountId
: o ID numérico exclusivo da conta de serviço.
-
description
: um resumo legível do insight. -
etag
: um identificador exclusivo do estado atual de um insight. Sempre que o insight for alterado, um novo valor deetag
será atribuído.Para alterar o estado de um insight, informe a
etag
do insight atual. O uso deetag
ajuda a garantir que qualquer operação seja executada somente se o insight não tiver sido alterado desde a última vez que você o recuperou. -
insightSubtype
: o subtipo de insight. -
lastRefreshTime
: a data em que o insight foi atualizado pela última vez, o que indica a atualização dos dados usados para gerá-lo. -
name
: o nome do insight no seguinte formato:projects/PROJECT_ID/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights/INSIGHT_ID
Os marcadores têm os seguintes valores:
-
PROJECT_ID
: o ID do projeto em que o insight foi gerado. INSIGHT_ID
: um ID exclusivo para o insight.
-
-
observationPeriod
: o período antes do insight. Os dados de origem usados para gerar o insight terminam emlastRefreshTime
e começam emlastRefreshTime
menosobservationPeriod
. -
stateInfo
: os insights passam por várias transições de estado após serem propostos:-
ACTIVE
: o insight foi gerado, mas nenhuma ação foi realizada, ou uma ação foi realizada sem atualizar o estado dele. Os insights ativos são atualizados quando os dados subjacentes são alterados. -
ACCEPTED
: ocorreu uma ação com base no insight. Os insights são aceitos quando uma recomendação associada é marcada comoCLAIMED
,SUCCEEDED
ouFAILED
, ou quando o insight é aceito diretamente. Quando o estado do insight éACCEPTED
, o conteúdo dele não pode ser alterado. Os insights aceitos são mantidos por 90 dias após a aceitação.
-
-
targetResources
: o nome completo do recurso do projeto relacionado ao insight. Por exemplo,//cloudresourcemanager.googleapis.com/projects/123456789012
.
Marcar um insight de conta de serviço como ACCEPTED
Se você executar uma ação com base em um insight ativo, será possível marcá-lo como
ACCEPTED
. O estado ACCEPTED
informa à
API Recommender que você tomou medidas com base nesse
insight, o que ajuda a refinar as recomendações.
Os insights aceitos são mantidos por 90 dias depois
de serem marcados como ACCEPTED
.
gcloud
Use o comando
gcloud recommender insights mark-accepted
com o ID do insight para marcar
um insight como ACCEPTED
.
-
INSIGHT_ID
: o ID do insight que você quer ver. Para encontrar o ID, liste os insights do projeto. PROJECT_ID
: o ID do projeto para o qual você quer gerenciar insights.-
ETAG
: um identificador de uma versão do insight. Para receber oetag
, faça o seguinte:-
Receba o insight usando o comando
gcloud recommender insights describe
. -
Encontre e copie o valor da
etag
na saída, incluindo as aspas delimitadoras. Por exemplo,"d3cdec23cc712bd0"
.
-
Receba o insight usando o comando
gcloud recommender insights mark-accepted INSIGHT_ID \ --insight-type=google.iam.serviceAccount.Insight \ --project=PROJECT_ID \ --location=global \ --etag=ETAG
A saída mostra o insight, agora com o estado ACCEPTED
:
category: SECURITY content: email: sa-1@my-project.iam.gserviceaccount.com lastAuthenticatedTime: '2020-10-11T07:00:00Z' serviceAccountId: '103185812403937829397' description: Service account sa-1@my-project.iam.gserviceaccount.com was inactive. etag: '"39c4199dcec92848"' insightSubtype: SERVICE_ACCOUNT_USAGE lastRefreshTime: '2022-05-24T07:00:00Z' name: projects/123456789012/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights/446303ba-2a14-49cc-b9fa-e2d2499d4f82 observationPeriod: 19008000s severity: LOW stateInfo: state: ACCEPTED targetResources: - //cloudresourcemanager.googleapis.com/projects/123456789012
Para saber mais sobre as informações de estado de um insight, consulte Analisar insights da conta de serviço nesta página.
REST
O método
insights.markAccepted
da API Recommender marca um insight como ACCEPTED
.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
-
PROJECT_ID
: o ID do projeto para o qual você quer gerenciar insights. -
INSIGHT_ID
: o ID do insight que você quer ver. Se você não souber o ID, é possível encontrá-lo listando os insights no seu projeto. O ID de um insight é tudo o que aparece depois deinsights/
no camponame
do insight. -
ETAG
: identificador de uma versão do insight. Para receber oetag
, faça o seguinte:- Receba o insight usando o
método
insights.get
. - Encontre e copie o valor
etag
da resposta.
- Receba o insight usando o
método
Método HTTP e URL:
POST https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights/INSIGHT_ID:markAccepted
Corpo JSON da solicitação:
{ "etag": "ETAG" }
Para enviar a solicitação, expanda uma destas opções:
A resposta contém o insight, agora com o estado ACCEPTED
:
{ "name": "projects/123456789012/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights/446303ba-2a14-49cc-b9fa-e2d2499d4f82", "description": "Service account sa-1@my-project.iam.gserviceaccount.com was inactive.", "content": { "serviceAccountId": "103185812403937829397", "email": "sa-1@my-project.iam.gserviceaccount.com", "lastAuthenticatedTime": "2020-10-11T07:00:00Z" }, "lastRefreshTime": "2022-05-24T07:00:00Z", "observationPeriod": "19008000s", "stateInfo": { "state": "ACCEPTED" }, "category": "SECURITY", "targetResources": [ "//cloudresourcemanager.googleapis.com/projects/123456789012" ], "insightSubtype": "SERVICE_ACCOUNT_USAGE", "etag": "\"39c4199dcec92848\"", "severity": "LOW" }
Para saber mais sobre as informações de estado de um insight, consulte Analisar insights da conta de serviço nesta página.
A seguir
- Consulte as outras ferramentas disponíveis para entender o uso da conta de serviço.
- Use o Hub de recomendações para ver e gerenciar todas as recomendações do projeto, incluindo as do IAM.