Oracle Cloud infrastructureでIAMのローカルユーザーでなく、同期済みユーザーを使用している場合のログオン情報はIDCS(identity Cloud Service)のレポートで参照することができます。
ここではIDCSからREST APIでJSON形式の監査ログを取り出し、OMC側にインポートすることで、以下のような既存のGUIでは表示されない情報や詳細な分析画面を作成する手順を紹介します。
IDCSにREST APIのアクセス可能な設定を追加する
クライアント資格証明をチェックし、"Identity Cloud Service管理者へのクライアント・アクセス権を付与します"の項目で、Identity Domain Administratorを追加する
以下の画面がポップアップされるのでクライアントIDとクライアント・シークレットをメモする。作成後、右上のアクティブ化を忘れずに実行する
REST APIでIDCSから監査ログを取得する
#IDCSからアクセストークンを取得する
curl -k -X POST -u "クライアントID:クライアント・シークレット" -H "Content-Type: application/x-www-form-urlencoded;charset=UTF-8" https://IDCSアドレス/oauth2/v1/token -d "grant_type=client_credentials&scope=urn:opc:idm:__myscopes__"
#実行例
クライアント・シークレット
curl -k -X POST -u "d05c80cfe7154be1ad7193ee92330123:0000000-0000-0000-0000-000000000000" -H "Content-Type: application/x-www-form-urlencoded;charset=UTF-8" https://idcs-baa6d43cf10d4f9128b9fa2a7b3a11dff.identity.oraclecloud.com/oauth2/v1/token -d "grant_type=client_credentials&scope=urn:opc:idm:__myscopes__"
#コマンドが成功するとアクセストークンが返ってくる
{"access_token":"アクセストークン(約4KB)","token_type":"Bearer","expires_in":3600}
#IDCSから監査ログを抽出する
curl -k -X GET -H "Content-Type:application/json" -H "Authorization: Bearer アクセストークン" "https://IDCSアドレス/admin/v1/AuditEvents?count=1000&sortBy=timestamp&sortOrder=descending&filter=eventId%20sw%20%22sso%22timestamp%20ge%20%開始時間%22and%20timestamp%20le%20%22終了時間%22&attributeSets=all"
#実行例
curl -k -X GET -H "Content-Type:application/json" -H "Authorization: Bearer アクセストークン " "https://idcs-baa6d43cf10d4f978b9fa2a7b3a11dee.identity.oraclecloud.com/admin/v1/AuditEvents?count=1000&sortBy=timestamp&sortOrder=descending&filter=eventId%20sw%20%22sso%22timestamp%20ge%20%222020-02-02T15:00:00.000Z%22and%20timestamp%20le%20%222020-02-03T15:00:00.0Z%22&attributeSets=all" > idcsaudit.json
※count(ログ件数)は最大1000まで。fileterは対象の監査ログの条件を指定することができる。URLエンコードでの記述が必要。日時はUTC。
詳しくは、IDCSのREST APIのドキュメントを参照
OMCにIDCSの監査ログをアップロード
IDCSのカスタム・パーサーをダウンロードする
https://github.com/western24/omc4oci/raw/master/IDCS_custom_logsource.zip
OMCに監査ログをアップロードする
idcsaudit.jsonファイルを以下のリンクを参考に手動でアップロードする
https://qiita.com/western24/items/1d00475d0f0b8c2bb0f9
※ログソースの関連付けでは、IDCS Custom Audit Logを選択する (IDCS Audit API Logsではない)
OMCによる分析
OMCは、IPアドレスから逆引きで国や都市の情報を引っ張ってくることができます。グループ化基準にClient Host CountryやClient Host Cityでどのロケーションからアクセスしてきたのかまでの特定が可能です。
OCIのIAMのローカルユーザーでログインした場合は、OCIのAudit側に出力されるので、OCIの監査ログと組み合わせて一つのダッシュボードとしてまとめるのも良いかもしれません。
Oracle Cloud Infrastructureの監査ログをOracle Management Cloudで分析する
Oracle Management Cloud関連の情報はこちら