本页面介绍如何管理服务账号数据分析,即有关您的项目中过去 90 天内未进行身份验证的服务账号的发现结果。我们建议您停用或删除这些未使用的服务账号和密钥,因为它们会带来不必要的安全风险。
通过绑定到服务账号的 API 密钥进行身份验证的请求不会记录在服务账号使用情况指标中。因此,这些服务账号可能会被报告为未使用。
Google Cloud之外的 Google API 的身份验证活动(例如向 Google Workspace API 全网域委托权限)不会由活动分析器或服务账号数据洞见跟踪。如需跟踪这些身份验证活动,请使用 Cloud Monitoring 服务账号使用情况指标。
建议您在停用或删除服务账号之前,将服务账号洞见与 Cloud Monitoring 服务账号使用情况指标进行交叉对比。此方法可防止您移除正在 Google Cloud之外的 Google API 中使用的服务账号。
准备工作
-
启用 Recommender API。
启用 API 所需的角色
如需启用 API,您需要拥有
serviceusage.services.enable权限。如果您创建了项目,则可能已经通过 Owner 角色 (roles/owner) 获得了此权限。否则,您可以通过 Service Usage Admin 角色 (roles/serviceusage.serviceUsageAdmin) 获得此权限。了解如何授予角色。 - 可选:了解 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. was inactive. 4cfd82c3-7320-4dc6-9b67-ca0756bbd54c SECURITY ACTIVE 2022-05-24T07:00:00Z LOW SERVICE_ACCOUNT_USAGE Service account sa-2@my-project. was inactive. a627bed7-c8f4-4611-89c9-2a9a8618ca1b SECURITY ACTIVE 2022-05-24T07:00:00Z LOW SERVICE_ACCOUNT_USAGE Service account sa-3@my-project. was inactive. a922dd59-df0a-422d-a2a4-096195e1dae5 SECURITY ACTIVE 2022-05-24T07:00:00Z LOW SERVICE_ACCOUNT_USAGE Service account sa-4@my-project. 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. was inactive.",
"content": {
"serviceAccountId": "103185812403937829397",
"email": "sa-1@my-project.",
"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. was inactive.",
"content": {
"serviceAccountId": "105496400997178042131",
"email": "sa-2@my-project."
},
"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. 自 2020 年 10 月 11 日起未进行身份验证。
category: SECURITY content: email: sa-1@my-project. lastAuthenticatedTime: '2020-10-11T07:00:00Z' serviceAccountId: '103185812403937829397' description: Service account sa-1@my-project. 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。