tencent cloud

Tencent Kubernetes Engine

クラスター審査

PDF
フォーカスモード
フォントサイズ
最終更新日: 2023-04-28 15:30:11
説明:
ログサービスCLSはTKE Serverlessクラスターによって生成されたすべての審査、イベントデータに無料サービスを2021年12月31日まで提供します。ログセットの自動作成を選択するか、または既存のログセット内でログトピックの自動作成を選択してください。

概要

クラスター審査はKubernetes Auditがkube-apiserverに対して生成したポリシーの設定が可能なJSON構造ログの記録保存および検索機能に基づきます。本機能はkube-apiserverに対するアクセスイベントを記録し、順番にユーザー、管理者またはシステムコンポーネントがクラスターに影響を与えるイベントを記録します。

機能のメリット

クラスター審査機能はmetricsとは異なる別のクラスター監視ディメンションを提供します。クラスター審査を有効化すると、Kubernetesは毎回クラスター操作に対する審査ログを記録することができます。各審査ログはJSON形式の構造化レコードで、メタデータ(metadata)、リクエスト内容(requestObject)および応答内容(responseObject)の3つの部分が含まれます。このうち、メタデータ(誰が開始したリクエストであるか、どこから開始されたか、アクセスのURIなどのリクエストのコンテキスト情報が含まれます)は必ず存在し、リクエストおよび応答内容が存在するかどうかは審査レベルで決まります。ログによって以下の内容を理解することができます。
クラスター内で発生したイベント。
イベントの発生時間および発生オブジェクト。
イベントのトリガー時間、トリガー位置および観察点。
イベントの結果および後続の処理行動。

審査ログ事例の閲覧

{
"kind":"Event",
"apiVersion":"audit.k8s.io/v1",
"level":"RequestResponse",
"auditID":0a4376d5-307a-4e16-a049-24e017******,
"stage":"ResponseComplete",
// 何が起きたか
"requestURI":"/apis/apps/v1/namespaces/default/deployments",
"verb":"create",
// 誰が開始したか
"user":{
"username":"admin",
"uid":"admin",
"groups":[
"system:masters",
"system:authenticated"
]
},
// どこで開始されたか
"sourceIPs":[
"10.0.6.68"
],
"userAgent":"kubectl/v1.16.3 (linux/amd64) kubernetes/ald64d8",
// 何が起きたか
"objectRef":{
"resource":"deployments",
"namespace":"default",
"name":"nginx-deployment",
"apiGroup":"apps",
"apiVersion":"v1"
},
// どのような結果か
"responseStatus":{
"metadata":{
},
"code":201
},
// 具体的な情報をリクエストして返す
"requestObject":Object{...},
"responseObject":Object{...},
// いつ開始/終了したか
"requestReceivedTimestamp":"2020-04-10T10:47:34.315746Z",
"stageTimestamp":"2020-04-10T10:47:34.328942Z",
// リクエストが受信/拒絶された原因は何か
"annotations":{
"authorization.k8s.io/decision":"allow",
"authorization.k8s.io/reason":""
}
}

TKE Serverlessクラスターの審査ポリシー

審査レベル(level)

一般的なログと異なり、Kubernetes審査ログのレベルはよりverbose設定に近く、記録情報の詳細度を示すために使用されます。計4つのレベルがあります。以下の表の内容をご参照ください。
パラメータ
説明
None
記録しません。
Metadata
リクエストのメタデータ(ユーザー、時間、リソース、操作など)を記録します。リクエストおよび応答のメッセージボディは含まれません。
Request
メタデータ以外に、リクエストメッセージボディが含まれます。応答のメッセージボディは含まれません。
RequestResponse
すべての情報を記録します。メタデータおよびリクエスト、応答のメッセージボディが含まれます。

審査段階(stage)

ログの記録は異なる段階で発生します。以下の表の内容をご参照ください:
パラメータ
説明
RequestReceived
リクエストを受信すると記録する。
ResponseStarted
watchのような長時間接続リクエストのみ、リターンメッセージヘッダの送信が完了した後に記録します。
ResponseComplete
リターンメッセージが全て送信完了した後に記録します。
Panic
内部サーバーにエラーが発生し、リクエストが完了していません。

監査ポリシー

TKE Serverlessはデフォルトでリクエストを受信して審査ログを記録し、且つ大部分の操作はRequestResponse レベルの審査ログに記録されます。ただし以下のような状況が存在する場合があります。
get、listおよびwatchはRequestレベルのログを記録します。
secretsリソース、configmapsリソースまたはtokenreviewsリソースに対するリクエストはMetadataレベルで記録されます。
以下のリクエストはログの記録を行いません。
system:kube-proxyが送信したendpointsリソース、servicesリソースまたはservices/statusリソースを監視するリクエスト。
system:unsecuredが送信した kube-systemネームスペース内の configmapsリソースに対するgetリクエスト。
kubeletが送信したnodesリソースまたはnodes/statusリソースに対するgetリクエスト。
system:kube-controller-managersystem:kube-schedulerまたはsystem:serviceaccount:endpoint-controllerが送信したkube-system ネームスペース内のendpointsリソースに対するgetおよびupdate リクエスト。
system:apiserverが送信した namespaces リソース、namespaces/statusリソースまたはnamespaces/finalizeリソースに対するgetリクエスト。
/healthz*/versionまたは /swagger*にマッチングするURLに対して送信されるリクエスト。

操作手順

クラスター審査を有効化する

注意
クラスター審査の機能を有効化するにはkube-apiserverを再起動する必要があります。頻繁にオンオフしないことをお勧めします。
1. TKEコンソールにログインします。
2. 左側ナビゲーションバーの運用保守機能管理を選択し、「機能管理」ページに進みます。
3. 「機能管理」ページ上方でリージョンを選択し、「Serverlessクラスター」タイプを選択します。
4. 下方のクラスターリストでクラスター審査を有効化したいクラスターを見つけ、右側操作バーで設定をクリックします。
5. ポップアップした「機能設定」ウィンドウで、「クラスター審査」機能右側の編集をクリックします。下図に示すとおりです。

6. クラスター審査の有効化にチェックを入れ、審査ログを保存するログセットおよびログトピックを選択します。ログセットの自動作成を選択することを推奨します。下図に示すとおりです。

7. OKをクリックしてクラスター審査機能を有効化します。

ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック