星期六, 4月 02, 2022

GCP IAM Service Account 使用狀況確認小記

GCP IAM Service Account 使用狀況確認小記


先說一下為何會有這篇小記的產生

在雲端平台的使用上, 有的時候為了讓程式或是服務可以運作, 就會在 IAM 使用 Service Account 或是在 Service Account 建立 Key 的方式來進行驗證以及授權.


因為資安或是稽核的需求, 就會想要知道這把 Key 或是 Service Account 有沒有被好好使用.

AWS 那邊如果你有建立 Access Key, 他會在 Console 上面直接顯示 Last used 時間, 所以可以很快速判斷這把 Key 最近有沒有被執行, 可不可以汰除掉 :p


先說結論: 

目前 GCP 的 Service Account 已經有相關的介面可以直接觀察了 :)


登入到 GCP console -- > 點選 IAM & Admin -- > 點選 Service Account 到 Service Account 介面


點選 要觀察的 Service Account 名稱  -- > 點選 METRICS



這邊其實就可以觀察到 Key 是否驗證的相關 Traffic

  • 但是實際上拉大查詢的時候, 會發現還是只能向前查詢一段時間, 推測是 45 天

  • 所以如果要支援較長時間的查詢, 可能就是相關的資訊要放到 BQ 或是 GCS, 然後再來進行查詢, 想法上是 Log 那邊建立一個 Sink 再來進行處理.


那如果想要使用 gcloud 的方式來查詢呢?

可能就是透過 gcloud policy-intelligence query-activity 來進行查詢


但是有些先決條件

  • Policy Analyzer API 要啟用

  • 如果要查詢 Service account last authentication 要有 policyanalyzer.serviceAccountLastAuthenticationActivities.query 權限

  • 如果要查詢 SA key Last authentication 要有 policyanalyzer.serviceAccountKeyLastAuthenticationActivities.query 權限


使用以下指令方式查詢, 以查詢 Key 上次驗證活動為例


# gcloud  policy-intelligence  query-activity  --activity-type serviceAccountKeyLastAuthentication  --project YOUR_PROJECT_ID --limit 50


  • 請置換自己的 Project ID

  • limit 預設是 1000,  可以自行指定

  • query-activity 可以使用

    • The activity type that you want to list. To list the most recent usage times for your service accounts, use serviceAccountLastAuthentication. To list the most recent usage times for your service account keys, use serviceAccountKeyLastAuthentication.


輸出範例如下


---

activity:

  serviceAccountKey:

    fullResourceName: //iam.googleapis.com/projects/image-compress/serviceAccounts/image-compress-pi@image-compress.iam.gserviceaccount.com/keys/cd37d020ba56f30b542670c6a972786223e980ae

    projectNumber: '527189235921'

    serviceAccountId: '102432402153160195216'

activityType: serviceAccountKeyLastAuthentication

fullResourceName: //iam.googleapis.com/projects/image-compress/serviceAccounts/image-compress-pi@image-compress.iam.gserviceaccount.com/keys/cd37d020ba56f30b542670c6a972786223e980ae

observationPeriod:

  endTime: '2022-03-30T07:00:00Z'

  startTime: '2021-01-28T08:00:00Z'


趁還沒有忘記的時候先記下來


~ enjoy it



Reference


沒有留言: