本文說明 Security Command Center 中的威脅發現項目類型。威脅偵測工具偵測到雲端資源中可能存在威脅時,就會產生威脅發現項目。如需可用威脅發現項目的完整清單,請參閱威脅發現項目索引。
總覽
Pod 的 defaultKubernetes 服務帳戶用於存取叢集中的密鑰物件。除非您使用 Role 物件或 ClusterRole 物件明確授予存取權,否則 default Kubernetes 服務帳戶不應有權存取 Secret 物件。
Event Threat Detection 是這項發現項目的來源。
下列應變計畫可能適用於這項發現,但也可能影響作業。 請仔細評估調查期間收集到的資訊,找出解決問題的最佳方式。
回應方式
如要回應這項發現項目,請按照下列步驟操作:
找出存取權範圍:
- 在發現項目 JSON 中,記下
finding.resourceName的值。 這表示發生存取行為的 Kubernetes 命名空間或資源。 - 請記下
resource.sourceProperties.affectedResources.gcpResourceName的值。這是所存取 Kubernetes 密鑰的完整資源名稱。
- 在發現項目 JSON 中,記下
調查 Cloud 稽核記錄:
- 前往 Google Cloud 控制台的「Logs Explorer」。
篩選記錄,找出對 Kubernetes 密鑰執行的特定動作。使用下列篩選條件:
resource.type="k8s_cluster" protoPayload.methodName=~"io\.k8s\.core\.v1\.secrets\..*"在產生調查結果的時間前後,尋找具有
protoPayload.methodName值的項目,例如io.k8s.core.v1.secrets.get和io.k8s.core.v1.secrets.list。這些記錄可提供更多背景資訊,瞭解存取密鑰的使用者或項目,以及執行的動作。使用下列記錄篩選器,檢查角色型存取權控管 (RBAC) 的變更 (Pod 必須進行這項變更,才能存取密鑰):
resource.type="k8s_cluster" protoPayload.methodName:"io\.k8s\.authorization\.rbac\.v1\..*"具體來說,請尋找含有
methodName的記錄,其中包含io.k8s.authorization.rbac.v1.roles.create/update或io.k8s.authorization.rbac.v1.rolebindings.create/update。
檢查 Google Kubernetes Engine RBAC 設定:
- 前往 Google Cloud 控制台的「Kubernetes Engine」部分。
- 前往叢集並選取「物件瀏覽器」。
- 展開
rbac.authorization.k8s.io群組。 - 檢查
finding.resourceName中所識別命名空間內的Role和RoleBinding物件 (以及ClusterRole/ClusterRoleBinding,如適用)。 - 找出在
secrets上授予get或list權限的角色。 - 找出將命名空間中的
default服務帳戶 (或其他服務帳戶) 與授予密鑰存取權的角色建立關聯的RoleBinding。
修正權限過多的問題:
- 如果
default服務帳戶已獲准存取密鑰,但您並非有意授予這項權限,請更新Role或RoleBinding,移除這些權限。 - 遵循最小權限原則。只授予服務帳戶運作所需的最低必要權限。請勿使用
default服務帳戶執行需要特定權限的工作負載,而應建立專屬的服務帳戶。 - 您可以使用
kubectl edit role [ROLE_NAME]或kubectl edit rolebinding [ROLE_BINDING_NAME]修改 RBAC 資源。後續步驟
- 瞭解如何在 Security Command Center 中處理威脅調查結果。
- 請參閱威脅發現項目索引。
- 瞭解如何透過 Google Cloud 控制台查看發現項目。
- 瞭解產生威脅發現項目的服務。
- 如果