Google Cloud审核服务帐户使用情况

时间:2018-03-21 11:24:17

标签: google-cloud-platform service-accounts

我在Google Cloud项目上有一些旧的服务帐户。我想知道它们是否仍在使用,或者我可以安全地删除它们。有没有办法看到它们上次使用的时间?也许多久一次?

我想我可以删除密钥并希望没有任何破坏,但这似乎有点不确定。有更好的解决方案吗?

3 个答案:

答案 0 :(得分:1)

目前,Google云平台中没有工具可以列出使用服务帐户密钥的位置,使用最后时间或使用频率的方式。但是,使用GCloud command line,您可以使用创建日期(通常是创建服务帐户的日期 - 默认密钥)和密钥的到期日列出所有服务帐户密钥(在您的项目中)

$ gcloud iam service-accounts键列表--iam-account [IAM_account] --project [projectName]

您可以验证旧User-managed Service account的密钥是否尚未过期 - 因此,它们可能仍在使用中。

如果删除运行实例仍在使用的服务帐户,则实例可能会开始失败。但是,您可以与Google Cloud platform team联系,以帮助将已删除的服务帐户重新添加回您的项目。

答案 1 :(得分:0)

选中https://cloud.google.com/logging/docs/audit/

gcloud logging read "logName=(projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Factivity
  OR projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fsystem_events
  OR projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fdata_access)

或在线https://console.cloud.google.com/home/activity

gcloud返回带有IP地址的YAML!我看到了SQL连接活动。

答案 2 :(得分:0)

我按照两步流程删除或停用 gcp 项目中的服务帐号:

  1. 列出未使用的服务帐号
gcloud recommender insights list \
    --insight-type=google.iam.serviceAccount.Insight \
    --location=global \
    --filter=insightSubtype=SERVICE_ACCOUNT_USAGE \
    --project <PROJECT_ID> --format=json | jq -r '.[]|select(.content.lastAuthenticatedTime == null)|.content.email, .lastRefreshTime' | paste -d, - - | sort -t, -k1 -k2 > /tmp/unused-sa.csv
  1. 禁用(或删除)未使用的帐户
cat /tmp/unused-sa.csv | cut -d, -f1 | while read line; do
    echo "$line"
    gcloud --project <PROJECT_ID> iam service-accounts disable "$line"
done