[Oracle Cloud] OKE の Audit Log を確認してみた

# はじめに

OKE では、最近のアップデートで、Kubernetes API Service の Log が Audit に表示されるようになりました。リリースノートはこちら。
https://docs.cloud.oracle.com/en-us/iaas/releasenotes/changes/a89a7913-bba7-4622-80fd-c493b1a35b65/

どんな感じのログが表示されるか確認してみましょう。



# Audit のパラメータ

Audit の画面で、検索 KEYWORDS を入力できます。次の物を入力すると、絞り込みが出来ることがわかりました。

- OKE に関するイベント : `OKE API Server Admin Access`
- Deployment の作成削除などに関するイベント : `apps.v1.deployments`

![1595038560631.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/53da36b2-3f4c-ce42-1c40-065a56c4c42b.png)



なお、時間の指定にも若干コツが必要です。選択肢は30分ごとになっており、端数は提供されていません。

![1595039533255.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/2f255319-af72-4db8-d99d-41a6cf265201.png)



細かな端数を入力することも可能ですが、操作にコツが必要です。普通にキーボード上で入力するのとはちょっと違います。まず、変更したい文字を1文字マウスで選択して

![1595039633005.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/5245a36c-5b90-1453-c56c-71be49dff0f1.png)



入力したい文字を入力すれば、変更できます

![1595039665271.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/a1268d83-79ca-99c2-ff34-61b9d01a3bff.png)



# Deoloyment Delete

Deployment を削除したときの、Event Name は `apps.v1.deployments.delete	` として見えてきます。

![1595036349408.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/151853e4-0c5a-d54e-d9c5-18e3a2d356d3.png)



詳細な内容を見ていきましょう。次のものが確認できます。

- eventTime : イベントが発生した時間
- data.resourceId : OKE クラスタの OCID
- data.identity.principalName : User の OCID
- data.identity.userAgent : kubectl 上の操作なのか、プログラム上での操作なのか、というのがざっくりわかる
- data.request.path : Request の対象
- data.request.action : Request の操作タイプ
- data.request.status : Request した結果の Status 

```
{
  "eventType": "apps.v1.deployments.delete",
  "cloudEventsVersion": "0.1",
  "eventTypeVersion": "2.0",
  "source": "OKE API Server Admin Access",
  "eventId": "684ea840-9746-4d9b-94b4-99b9e60640c2",
  "eventTime": "2020-07-18T01:30:14.028Z",
  "contentType": "application/json",
  "data": {
    "eventGroupingId": "684ea840-9746-4d9b-94b4-99b9e60640c2",
    "eventName": "apps.v1.deployments.delete",
    "compartmentId": "ocid1.compartment.oc1..aaaaaaaalxxd67fpsduvby7s3cj2ykm3bbl4myg37atkky27ipvfxv5iepda",
    "compartmentName": "testcompartment01",
    "resourceName": "",
    "resourceId": "ocid1.cluster.oc1.ap-tokyo-1.aaaaaaaaae2gkzjuguytqyrwhbtggnbzmm3geyjwhaytinlehc3tmzdggizt",
    "availabilityDomain": null,
    "freeformTags": null,
    "definedTags": null,
    "identity": {
      "principalName": "ocid1.user.oc1..aaaaaaaadrqej7fxvbzbw7h6i7eddjxqgqn5jlaxwelgk7kmwo2gj4lmxxua",
      "principalId": null,
      "authType": "Native",
      "callerName": null,
      "callerId": null,
      "tenantId": "ocid1.tenancy.oc1..aaaaaaaasurxdp6xanscptpkod7jmfe6wyi7hiwo5idollgw7lyjn6bixyzq",
      "ipAddress": null,
      "credentials": "",
      "userAgent": "kubectl/v1.18.5 (linux/amd64) kubernetes/e6503f8",
      "consoleSessionId": null
    },
    "request": {
      "id": "684ea840-9746-4d9b-94b4-99b9e60640c2",
      "path": "/apis/apps/v1/namespaces/default/deployments/cowweb",
      "action": "DELETE",
      "parameters": null,
      "headers": null
    },
    "response": {
      "status": "200",
      "responseTime": "2020-07-18T01:30:14.036Z",
      "headers": null,
      "payload": null,
      "message": ""
    },
    "stateChange": null,
    "additionalDetails": null
  }
}
```



# Deployment Create

Deployment を作成したときの、Event Name は `apps.v1.deployments.create` として見えてきます。

![1595038089107.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/109e0021-c87b-6da7-ca79-5a945dfae88c.png)



詳細な内容を見ていきましょう。次のものが確認できます。

- eventTime : イベントが発生した時間
- data.resourceId : OKE クラスタの OCID
- data.identity.principalName : User の OCID
- data.identity.userAgent : kubectl 上の操作なのか、プログラム上での操作なのか、というのがざっくりわかる
- data.request.path : Request の対象
- data.request.action : Request の操作タイプ
- data.request.status : Request した結果の Status 



```
{
  "eventType": "apps.v1.deployments.create",
  "cloudEventsVersion": "0.1",
  "eventTypeVersion": "2.0",
  "source": "OKE API Server Admin Access",
  "eventId": "8d4ad06a-35b2-45b3-a1ff-6a4fba9904b4",
  "eventTime": "2020-07-18T02:04:30.278Z",
  "contentType": "application/json",
  "data": {
    "eventGroupingId": "8d4ad06a-35b2-45b3-a1ff-6a4fba9904b4",
    "eventName": "apps.v1.deployments.create",
    "compartmentId": "ocid1.compartment.oc1..aaaaaaaalxxd67fpsduvby7s3cj2ykm3bbl4myg37atkky27ipvfxv5iepda",
    "compartmentName": "testcompartment01",
    "resourceName": "",
    "resourceId": "ocid1.cluster.oc1.ap-tokyo-1.aaaaaaaaae2gkzjuguytqyrwhbtggnbzmm3geyjwhaytinlehc3tmzdggizt",
    "availabilityDomain": null,
    "freeformTags": null,
    "definedTags": null,
    "identity": {
      "principalName": "ocid1.user.oc1..aaaaaaaadrqej7fxvbzbw7h6i7eddjxqgqn5jlaxwelgk7kmwo2gj4lmxxua",
      "principalId": null,
      "authType": "Native",
      "callerName": null,
      "callerId": null,
      "tenantId": "ocid1.tenancy.oc1..aaaaaaaasurxdp6xanscptpkod7jmfe6wyi7hiwo5idollgw7lyjn6bixyzq",
      "ipAddress": null,
      "credentials": "",
      "userAgent": "kubectl/v1.18.5 (linux/amd64) kubernetes/e6503f8",
      "consoleSessionId": null
    },
    "request": {
      "id": "8d4ad06a-35b2-45b3-a1ff-6a4fba9904b4",
      "path": "/apis/apps/v1/namespaces/default/deployments",
      "action": "POST",
      "parameters": null,
      "headers": null
    },
    "response": {
      "status": "201",
      "responseTime": "2020-07-18T02:04:30.284Z",
      "headers": null,
      "payload": null,
      "message": ""
    },
    "stateChange": {
      "previous": {
        "requestObject": null
      },
      "current": {
        "responseObject": null
      }
    },
    "additionalDetails": null
  }
}
```



# 参考URL

https://docs.cloud.oracle.com/en-us/iaas/Content/ContEng/Tasks/contengmonitoringoke.htm