本页介绍了如何管理服务账号数据分析,即有关您的项目中过去 90 天内未使用的服务账号的发现结果。
准备工作
-
Enable the Recommender API.
- 可选:了解 Recommender 数据分析。
所需的角色
如需获得管理服务账号数据分析所需的权限,请让管理员向您授予您要管理其数据分析的项目的以下 IAM 角色:
-
IAM Recommender Viewer (
roles/recommender.iamViewer
)(如需查看服务账号数据分析) -
如需修改服务账号数据分析,请使用 IAM Recommender Admin (
roles/recommender.iamAdmin
)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
这些预定义角色包含管理服务账号数据分析所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
如需管理服务账号分析,您需要具有以下权限:
-
如需查看服务账号数据分析:
-
recommender.iamServiceAccountinsights.get
-
recommender.iamServiceAccountinsights.list
-
-
如需修改服务账号数据分析:
recommender.iamServiceAccountinsights.update
列出服务账号数据分析
如需列出项目的所有服务账号数据分析,请使用以下方法之一:gcloud
使用 gcloud recommender
insights list
命令可查看项目的所有服务账号数据分析。
在运行命令之前,请先替换以下值:
PROJECT_ID
:您要为其列出数据分析的项目的 ID。
gcloud recommender insights list --insight-type=google.iam.serviceAccount.Insight \ --project=PROJECT_ID \ --location=global
输出会列出项目的所有服务账号数据分析。例如:
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
Recommender API 的 insights.list
方法可列出项目的所有服务账号数据分析。
在使用任何请求数据之前,请先进行以下替换:
PROJECT_ID
:您要为其列出数据分析的项目的 ID。
HTTP 方法和网址:
GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights
如需发送您的请求,请展开以下选项之一:
响应会列出项目的所有服务账号数据分析。例如:
{ "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" } ] }
如需详细了解数据分析的组成部分,请参阅本页面上的查看服务账号数据分析。
获取单个服务账号数据分析
如需获取有关单一数据分析的更多信息(包括数据分析的说明、状态及其关联的任何建议),请使用以下方法之一:
gcloud
将 gcloud recommender
insights describe
命令与您的数据分析 ID 结合使用,以查看单一数据分析的相关信息。
-
INSIGHT_ID
:您要查看的数据分析的 ID。如需查找此 ID,请列出项目中的数据分析。 PROJECT_ID
:您要管理数据分析的项目的 ID。
gcloud recommender insights describe INSIGHT_ID \ --insight-type=google.iam.serviceAccount.Insight \ --project=PROJECT_ID \ --location=global
输出会显示详细数据分析。例如,以下数据分析表明,服务账号 sa-1@my-project.iam.gserviceaccount.com
自 2020 年 10 月 11 日起未进行身份验证。
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
如需详细了解数据分析的组成部分,请参阅本页面上的查看服务账号数据分析。
REST
Recommender API 的 insights.get
方法可获取单一数据分析。
在使用任何请求数据之前,请先进行以下替换:
-
PROJECT_ID
:您要为其管理数据分析的项目的 ID。 -
INSIGHT_ID
:您要查看的数据分析的 ID。如果您不知道数据分析 ID,可在项目中列出数据分析进行查找。数据分析的 ID 是数据分析的name
字段中insights/
之后的所有内容。
HTTP 方法和网址:
GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights/INSIGHT_ID
如需发送您的请求,请展开以下选项之一:
响应包含数据分析。例如,以下数据分析表明,服务账号 sa-1@my-project.iam.gserviceaccount.com
自 2020 年 10 月 11 日起未进行身份验证。
{ "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" }
如需详细了解数据分析的组成部分,请参阅本页面上的查看服务账号数据分析。
查看服务账号数据分析
获得单个数据分析后,您可以查看其内容,以了解其突出显示的资源使用的模式。
数据分析的内容由其子类型确定。服务账号数据分析 (google.iam.serviceAccount.Insight
) 数据分析具有 SERVICE_ACCOUNT_USAGE
子类型。
SERVICE_ACCOUNT_USAGE
数据分析包含以下组成部分(不一定遵循以下顺序):
-
associatedRecommendations
:与数据分析相关联的任何建议的标识符。如果没有与数据分析相关联的建议,则此字段为空。 category
:IAM 数据分析的类别始终为SECURITY
。-
content
:报告上次对服务账号进行身份验证的时间。此字段包含以下组成部分:email
:服务账号的电子邮件地址。lastAuthenticatedTime
:服务账号最近进行身份验证的时间。如果服务账号没有任何记录的身份验证,则不包含此字段。serviceAccountId
:服务账号的唯一数字 ID。
-
description
:直观易懂的数据分析摘要。 -
etag
:数据分析的当前状态的唯一标识符。每次数据分析发生更改时,系统都会分配新的etag
值。要更改数据分析的状态,您必须提供现有数据分析的
etag
。使用etag
有助于确保仅在上次检索数据分析后没有任何更改的情况下执行所有操作。 -
insightSubtype
:数据分析子类型。 -
lastRefreshTime
:上次刷新数据分析的日期,它表示用于生成数据分析的数据的新鲜度。 -
name
:数据分析的名称,格式如下:projects/PROJECT_ID/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights/INSIGHT_ID
占位符具有以下值:
PROJECT_ID
:生成数据分析的项目的 ID。INSIGHT_ID
:数据分析的唯一 ID。
-
observationPeriod
:生成数据分析的时间段。用于生成数据分析的源数据结束于lastRefreshTime
,在lastRefreshTime
减observationPeriod
开始。 -
stateInfo
:数据分析被提出后,会经历多次状态转换:-
ACTIVE
:数据分析已生成,但尚未执行任何操作,或执行的操作并未更新数据分析状态。当底层数据发生更改时,系统会更新活跃数据分析。 -
ACCEPTED
:已根据数据分析执行某种操作。如果关联的建议标记为CLAIMED
、SUCCEEDED
或FAILED
,或数据分析被直接接受,则表示数据分析已被接收。如果数据分析处于ACCEPTED
状态,则数据分析内容无法更改。标记为已接受的数据分析会保留 90 天。
-
-
targetResources
:数据分析所适用的项目的完整资源名称 。例如//cloudresourcemanager.googleapis.com/projects/123456789012
。
将服务账号数据分析标记为 ACCEPTED
如果您根据有效数据分析执行操作,则可以将该数据分析标记为 ACCEPTED
。ACCEPTED
状态会通知 Recommender API 您已根据此数据分析执行操作,这有助于优化您的建议。
标记为 ACCEPTED
后,已接受的数据分析将保留 90 天。
gcloud
将
gcloud recommender insights mark-accepted
命令与数据分析 ID 搭配使用可将数据分析标记为 ACCEPTED
。
-
INSIGHT_ID
:您要查看的数据分析的 ID。如需查找此 ID,请列出项目中的数据分析。 PROJECT_ID
:您要管理数据分析的项目的 ID。-
ETAG
:数据分析版本的标识符。如需获取etag
,请执行以下操作:-
使用
gcloud recommender insights describe
命令获取数据分析。 -
在输出中查找并复制
etag
值,包括引号。例如"d3cdec23cc712bd0"
。
-
使用
gcloud recommender insights mark-accepted INSIGHT_ID \ --insight-type=google.iam.serviceAccount.Insight \ --project=PROJECT_ID \ --location=global \ --etag=ETAG
输出显示数据分析,现在状态为 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
如需详细了解数据分析的状态信息,请参阅本页面上的查看服务账号数据分析。
REST
Recommender API 的 insights.markAccepted
方法可将数据分析标记为 ACCEPTED
。
在使用任何请求数据之前,请先进行以下替换:
-
PROJECT_ID
:您要为其管理数据分析的项目的 ID。 -
INSIGHT_ID
:您要查看的数据分析的 ID。如果您不知道数据分析 ID,可在项目中列出数据分析进行查找。数据分析的 ID 是数据分析的name
字段中insights/
之后的所有内容。 -
ETAG
:数据分析版本的标识符。如需获取etag
,请执行以下操作:- 使用
insights.get
方法获取数据分析。 - 查找并复制响应中的
etag
值。
- 使用
HTTP 方法和网址:
POST https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights/INSIGHT_ID:markAccepted
请求 JSON 正文:
{ "etag": "ETAG" }
如需发送您的请求,请展开以下选项之一:
响应包含数据分析,其状态现在为 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" }
如需详细了解数据分析的状态信息,请参阅本页面上的查看服务账号数据分析。
后续步骤
- 查看其他可用的工具,了解服务账号使用情况。
- 使用建议中心查看和管理项目的所有建议,包括 IAM 建议。