agent-substrate / agent-substrate/substrate

ateapi needs better audit log

オープン
#1,582 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る
area/api-machinery area/observability area/security kind/feature
主要言語
Go
スター
1.8k
フォーク
316
平均マージ
2日 43分
マージ済み PR(30日)
287

説明

Some gaps of the current ateapi audit logs:

1. Denied requests are never logged. The auth interceptor runs before the logging interceptor, so any request that fails auth just disappears. I sent calls with no token, a garbage token, and a Google ID token. All three got Unauthenticated back. Not a single line showed up in either api server pod, not even at debug level.

1. Stream RPCs are never logged. There is no logging interceptor on the stream chain. Reflection calls with a valid token leave no trace.

1. The principal is not the person. kubectl-ate mints a token for the shared ate-client service account, so every operator shows up as system:serviceaccount:ate-system:ate-client. The GKE audit log does not help either since TokenRequest is a data access event and is off by default.

1. No decision field, no resource field. We only have err. Which atespace or actor was touched is buried inside the serialized request and the shape is different for every RPC.

1. We log secrets. Redaction only clears fields named env. The response of MintJWT is a live actor bearer token and it is written to the log in full. Container command and args are logged too.

1. Too noisy to be an audit log. The router and egress health checks call ListActors every two seconds. That is about 7k log lines an hour on an idle cluster, each with the full response body.

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。