MBAで覚えるDBREの大事なおしごと #dbts

2.3K Views

October 02, 19

スライド概要

徐々に日本でも認知されはじめた「Database Reliability Engineering(DBRE)」
その職域のなかでも特に重要なMonitoring, Backup, Audit, Auth
について、Yahoo! JAPANの取り組み事例を交えながら解説します

profile-image

2023年10月からSpeaker Deckに移行しました。最新情報はこちらをご覧ください。 https://speakerdeck.com/lycorptech_jp

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

MBAで覚える DBREの大事なおしごと 2019/09/25 1 db tech showcase 2019 佐藤 誠 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

2.

自己紹介 佐藤 誠 • ヤフー(株) • システム統括本部 • サービスプラットフォーム本部 • 業務 • 社内のDB/DataStore全般の導入支援 2 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

3.

本日の内容 今回は、ヤフーのデータベースシステムのうち、 Monitoring Backup アカウント管理 監査(audit) といった非機能部分にフォーカスして、 ご紹介していきたいと思います タイトルはそれぞれの頭文字を取って”M”B”A”です 3 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

4.

本日の内容 1. 2. 3. 4. 5. 4 Yahoo! JAPAN概要 DBRE “M” “B” “A” 6. おわりに Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

5.

Yahoo! JAPAN 利用者数 1日 5 9,300万 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved. ユニーク ブラウザ ※出所:Yahoo! JAPAN社内データ(2017年)

6.

巨大なデータプラットフォーム 2000 6000+ 50bn 1,000,000 DBs nodes objects Query/day NoSQL Object Storage RDB Hadoop 6 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved. DWH 4200 node 500 PB

7.

DBRE Database Reliability Engineering(DBRE) • 日本ではビズリーチさんがDBREチー ムを発足 • ブログ記事で発信するなど認知度が 上がってきている ※まだ和訳本ナシ 7 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

8.

DBRE Laine Campbell & Charity Majors氏が提唱 Percona live dublin 2017 8 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

9.

DBREの役割 Educator and Mentor (教育) Platform Builder (プラットフォーム構築) Force multiplier (戦力倍増/自動化) Operations Expert (運用エキスパート) t-shaped (深い専門領域+広い見識) 9 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

10.

DBRE領域の業務(ヤフーの場合) データベースの非機能要件 システムの構築運用 セキュリティ データベース予算管理 社内教育 10 Provisioning / Monitoring / Backup Audit / Authentication / Encryption アカウント管理 Counting 社内セミナー / 新卒・中途向け研修 データベース利用ガイドラインの作成 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

11.

今RDB何台くらいあるの? 11 PF バージョンなど DB数 ホスト数 Oracle(オンプレ) バージョン 11.2.0.4 12.1.0.2 12.2.0.1 260 1200台 (実機) MySQL V1(オンプレ) バージョン 5.6 5.7 340 1000台 (実機) MySQL DBaaS (プライベートクラウド) バージョン 5.7 1730 5200台 (仮想VM) Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

12.

DB Monitoring 可視化(FE) リポジトリ(BE) OS監視 Kanseito(内製) ミドルウェア (Oracle) AWR Warehouse ミドルウェア (MySQL) Uchiwa ストレージ ネットワーク 12 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

13.

DB Monitoring(3年前) 可視化(FE) OS監視 ミドルウェア (Oracle) ミドルウェア (MySQL) ストレージ ネットワーク 13 リポジトリ(BE) Nagios +内製ツール Nagios Nagios MRTG MRTG Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

14.

DB Monitoring(3年前) 可視化(FE) OS監視 ミドルウェア (Oracle) リポジトリ(BE) Nagios +内製ツール Nagios 3年も立つと大分変わる ミドルウェア Nagios Nagios(MySQL) / Zabbix / MRTGは(弊社では)絶滅が近い・・・ ストレージ ネットワーク 14 MRTG MRTG Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

15.

DB Monitoring 可視化(FE) OS監視 Kanseito(内製) ミドルウェア (Oracle) AWR Warehouse ミドルウェア (MySQL) ストレージ ネットワーク 15 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved. リポジトリ(BE)

16.

DB Monitoring 可視化(FE) リポジトリ(BE) OS監視 Kanseito(内製) ミドルウェア (Oracle) AWR Warehouse ミドルウェア • Enterprise manager:死活監視/リソース監視 (MySQL) • elasticsearch+kibanaでEMのメトリックデータを吸い出し、 ストレージ キャパシティプランニングに利用 ネットワーク 16 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

17.

DB Monitoring 可視化(FE) リポジトリ(BE) OS監視 Kanseito(内製) ミドルウェア (Oracle) AWR Warehouse ミドルウェア (MySQL) ストレージ • OSのログ、DBのログをelasticsearchに流し込んでGrafanaで可視化 • Grafanaは全社に開放。DBAと開発者が同じ数値をみて目線を合わせる ネットワーク 17 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

18.

DB Monitoring 可視化(FE) リポジトリ(BE) OS監視 Kanseito(内製) ミドルウェア (Oracle) ストレージのモニタリングはGrafana+influxdb • AWR Warehouse • ネットワークのモニタリングはGrafana+Prometheus ミドルウェア • どちらも時系列DB (MySQL) ストレージ ネットワーク 18 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

19.

Oracle Enterprise Manager 19 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

20.

Oracle Kibana+elasticsearch 20 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

21.

Oracle Kibana+elasticsearch • EMだと、メトリックを集約して表示、というのができないので、 • こちらをキャパシティープランニングに使う 21 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

22.

Oracle EM/Kibana/AWRWarehouse kibana セルフサービス で自己参照 アプリ チームA DB EMサーバ AWRデータ アプリ チームB BI Publisher 自動レポート (定型グラフ等) AWRデータ DB EM DB AWRデータ メール サーバ DB 全社DBA 22 メール配信 (自動) 必要に応じて分析 • 見える化を強化、ただ、全体的に古くなってきた感 • EM13.3使ってみたい • Grafana+Prometheus使ってみたい Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

23.

MySQL Grafana 監視メトリックのデモ • MetricViewer 23 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

24.

MySQL Grafana • slow-query-summary 24 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

25.

MySQL コンポーネント sensu rabbitmq uchiwa Redis grafana elasiticsearch 25 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

26.

ストレージ Grafana+InfluxDB 26 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

27.

ネットワーク Grafana+Prometheus 27 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

28.

ネットワーク Grafana+Prometheus ちなみにネットワークのPrometheus活用事例は Slideshareにありますので興味ありましたら是非 28 https://www.slideshare.net/techblogyahoo/prometheus-148831678 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

29.

DB Monitoring OS/DBだけでなく、ストレージ、ネットワークの監視もしっかり出 来るようにしておく事が重要 DB寄りでない業務 • OSSの選定 • pluginの組み込みや開発 • 非DBコンポーネントの運用 は新しいスキルを身につける絶好の機会 なにより、楽しい UIがかっこいいとやる気が出る 29 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

30.

本日の内容 1. 2. 3. 4. 5. 30 Yahoo! JAPAN概要 DBRE “M” “B” “A” 6. まとめ Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

31.

Backup/BCP Bの話、いうことでここではBackup/BCPをまとめて扱います • • • • Backupは、「取れて当たり前」「誰にも褒められない」 「取れていない場合」凄く怒られる ポジティブに評価されない とにかくお金がかかる このハードな業務に、 どう対処していけば良いのか 31 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

32.

Backup/BCP Backupの大事なポイント • システムのRTO/RPOを設定しよう • Buckup手段を知ろう • Buckup製品を使おう(Oracleのみ) • Backup/Recoveryトレーニングを定期的に実施しよう 32 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

33.

Backup/BCP RTO/RPOをどこにするか、を意識してBackupの設計をする • RTO(Recovery Time Objective):目標復旧時間 • RPO(Recovery Point Objective):目標復旧ポイント 33 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

34.

Backup/BCP 例1)ショッピングの受注受付DB • 30分止まると売上が○○億減る • 停止時間はできるだけ短く • 受注データの消失は許されない、ただ、受注ログは残っているた め、論理的にデータを戻すことは可能 RTO=30分以内/RPO=極力消失させたくないが、戻す事も可 30分以内に確実に復旧、かつ停止時間を極小化したい ⇒ DataGuardを自動FOかつ最大パフォーマンスモードで運用 34 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

35.

Backup/BCP 例2)社内の購買データ管理システム • 業務時間中に動いていれば問題なし • 1日程度であれば停止OK • 入力データが消えたとしても、最悪前日分に戻せれば問題なし RTO=1日/RPO=1日前に戻せればOK ⇒ デイリーのRMANで十分 35 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

36.

RTOとRPO sec PXC MultiMaster R T O : 目 標 復 旧 時 間 min Mysql Master/Slave Replica Oracle RMAN/expdp day MySQL Slave tar保存 Mysqldump XtraBackup day 36 Oracle DataGuard 自動FO min Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved. sec RPO:目標復旧ポイント

37.

Backup手段(Oracle Zero Data Loss Recovery Appliance 37 スタンバイ 機利用 費用 リカバリ時間(RTO) データロス(RPO) 数千万~ 数億円 ○ リカバリ(仮想Full image)1h~数日 ○ ほぼなし(リアルタイム REDO転送 世代/遠隔地 ◎~○ なし(最大可用性 ほぼなし(最大パ フォーマンス 遠隔地 ○ (Active DataGuard DataGuard (Replication) 数千万~ 数億円 ◎ 切替(6秒~数分) RMAN+ アーカイブログ ¥0~1000万円台 nfsやNWスイッチ代 △ ○ リカバリ(full+差分) ほぼなし(アーカイブロ 3h~数日 グのあるところまで expdp / impdb ¥0~1000万円台 nfsやNWスイッチ代 △ -△ Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved. - 世代/遠隔地 世代 -

38.

Backup手段(Oracle Zero Data Loss Recovery Appliance 費用 リカバリ時間(RTO) データロス(RPO) 数千万~ 数億円 ○ リカバリ(仮想Full image)1h~数日 スタンバイ 機利用 ○ ほぼなし(リアルタイム REDO転送 ◎~○ ○ DataGuard 数千万~ ◎ なし(最大可用性 (Active 数億円 切替(6秒~数分) ほぼなし(最大パ (Replication) • バックアップやDGだけCloudに組むという選択肢もある DataGuard フォーマンス 世代/遠隔地 世代/遠隔地 遠隔地 • Database Cloud Service (DBCS)でDGを組む △ ○ • Oracle Database Backup Service でRMANをとる 1Tあたり 4,752円/月 ¥0~1000万円台 リカバリ(full+差分) ほぼなし(アーカイブロ 世代 RMAN+ アーカイブログ expdp / impdb 38 nfsやNWスイッチ代 ¥0~1000万円台 nfsやNWスイッチ代 3h~数日 グのあるところまで △ -△ Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved. - -

39.

Backup手段(MySQL バックアッ プ運用 データロス(RPO) Slave Replica ◎ 切替(数分以内) ○~◎ ほぼなし ○ バイナリログが転送されていれ ば 遠隔地 - Slaveを停止し てtarで固める ○ リカバリ3h~数日 △ ○ 最新バックアップ以降はロスト 世代/遠隔地 フル フル/差分/ 増分 Xtrabuckup mysqldump 39 スタンバ 世代/遠隔地 イ機利用 リカバリ時間(RTO) ○ リカバリ(full+差分)3h~数 日 Mysqldumpより高性能 △ リカバリ(full+差分)3h~数 日 ○ ほぼなし バイナリログがあれば - 世代 ○ ほぼなし バイナリログがあれば - 世代 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved. フル/差分/ 増分

40.

Backup手段(MySQL スタンバ 世代/遠隔地 イ機利用 バックアッ プ運用 リカバリ時間(RTO) データロス(RPO) Slave Replica ◎ 切替(数分以内) ○~◎ ほぼなし ○ バイナリログが転送されていれ ば 遠隔地 - Slaveを停止し てtarで固める ○ リカバリ3h~数日 △ ○ 最新バックアップ以降はロスト 世代/遠隔地 フル ○ ○ フル/差分/ リカバリ(full+差分)3h~数 ほぼなし 世代 増分 Xtrabuckup 日 • Mysqlはあまり選択肢がない バイナリログがあれば Mysqldumpより高性能 Replicaとフルバックアップ。差分バックアップは出来るが使われない △ ○ リカバリ(full+差分)3h~数 フル/差分/ • 有償ツールなどの市場もない ほぼなし 世代 mysqldump 日 増分 バイナリログがあれば • Yoku0825さんの資料が参考になる ↓ 40 MySQLのバックアップ運用について色々 https://www.slideshare.net/yoku0825/mysql-45256389 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

41.

Backup Appliance製品(Oracleのみ Zero Data Loss Recovery Appliance DataDomain StoreOnce 41 ※シェアのある専用アプライアンスのみ NetApp SnapManager for Oracle / Cohesity などもある Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

42.

Backup Appliance製品(Oracleのみ Zero Data Loss Recovery Appliance DataDomain StoreOnce 42 • • • • • • RMANとシームレスな連携 データ圧縮 重複排除 差分があったところだけ転送する WAN越しで性能が出る ※シェアのある専用アプライアンスのみ 複数拠点、ネットワーク上にちらばるBackup機器統合に向く NetApp SnapManager for Oracle / Cohesity などもある Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

43.

Backup Appliance製品(Oracleのみ Backup Applianceに統合 RMAN RMAN RMAN RMAN RMAN 43 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved. RMAN

44.

Backup/BCP の設計 • そのサービスにとって本当に必要なものは何かをしっかり議論する • RTO/RPOを過剰に設定すると大幅なコスト増 • RTO/RPO要件を満たしていないBackupは無意味 • どんどん伸びるBackup時間への対策 • • • • 44 手段や設定は適切か(フル、差分、パラレル時間帯 Applianceの活用 Backup先のストレージ性能は十分か Backup用ネットワークの性能は足りているか(共用、占有、1G/10G (1Gでは足りない要件が増えている Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

45.

Backup/Recoveryトレーニング 半期ごとにチーム全員が実施しています Oracle 45 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

46.

Backup/Recoveryトレーニング 半期ごとにチーム全員が実施しています MySQL 46 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

47.

Backup/Recoveryトレーニング • 定期的なトレーニングは絶対に実施した方が良い • 全員が対応出来る状態にしておく • 手順書が有効であることをチェック • 47 障害対応のスピードと品質を上げるために必要 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

48.

Backup/Recoveryトレーニング • 定期的なトレーニングは絶対に実施した方が良い • 全員が対応出来る状態にしておく • 手順書が有効であることをチェック • 障害対応のスピードと品質を上げるために必要 障害時の対応は、かなり精神を削られるため、 冷静かつ機械的に対処できるよう、常日頃から障害対応訓練を実施するこ とが大切 48 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

49.

“B”のまとめ Backupの大事なポイント • システムのRTO/RPOを設定しよう • Buckup手段を知ろう • Buckup製品を使おう(Oracleのみ) • Backup/Recoveryトレーニングを定期的に実施しよう データロスト時のリスクをよく話し合った上で、 そのサービス要件に合ったBackupの仕組みを、過不足ない 形で提供する 49 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

50.

“A” ここでは”A”についての話となります Authentication ・・・ユーザー認証について Account management ・・・アカウント、権限管理 Audit ・・・監査 50 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

51.

ユーザー認証のルール サービスでDDLを実行しない場合(デフォルト No 51 ユーザー ユーザー例 用途 備考 1 オブジェクト所持ユーザ アプリケーション名_OBJ オブジェクトの所有者 Create session権限を つけない 2 アプリケーションユーザ アプリケーション名_USR 1のデータ操作ユーザー オブジェクトを持たな い。すべて1をGrant 3 サービス運用者 個人アカウント 社内アカウントと同じ名前にする メンテナンスやデータ確認時な どに使用するユーザー DDLを実行できない 4 DBA作業者 SYS/SYSDBAなど OS認証でDBサーバから作業する DBA作業用 DDLの実行はこちらで Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

52.

ユーザー認証のルール サービスでDDLを実行する場合(希望者のみ No 52 ユーザー ユーザー例 用途 1 アプリケーション& オブジェクト所持ユーザ アプリケーション名_USR 2 サービス運用者 個人アカウント 社内アカウントと同じ名前にする メンテナンスやデータ確認時な どに使用するユーザー 3 DBA作業者 SYS/SYSDBAなど OS認証でDBサーバから作業する DBA作業用 備考 フルコントロール Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved. DDLを実行できる

53.

ユーザー管理が結構大変 ユーザーが増減するケース No 1 53 ユーザー オブジェクト所持ユーザ 増えるとき 減るとき 機能追加や、分割 機能の削除 2 アプリケーションユーザ 同上 同上 別アプリケーションの利用を許可する 場合 3 サービス運用者 サービス担当が変わるとき 社員、業務委託の入社/異動 サービス担当が変わるとき 社員、業務委託の退社/異動 4 DBA作業者 なし なし Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

54.

ユーザー管理が結構大変 ユーザーが増減するケース No 1 54 ユーザー オブジェクト所持ユーザ 増えるとき 減るとき 機能追加や、分割 機能の削除 2 アプリケーションユーザ 同上 同上 別アプリケーションの利用を許可する 場合 3 サービス運用者 サービス担当が変わるとき 社員、業務委託の入社/異動 サービス担当が変わるとき 社員、業務委託の退社/異動 4 DBA作業者 なし なし ヤフープロパー社員の異動が多く 業務委託の着任、離任も頻繁 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

55.

アカウント管理ツール 内製のアカウント管理ツールで自動化を推進 アカウント/ロールの追加・変更・削除は画面から 登録でき、自動反映 55 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

56.

アカウント管理ツール アカウント作成時の付与ロールなども細かく指定できる 56 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

57.

アカウント台帳機能 4半期ごとにアカウント、オブジェクトの追加削除をチェッ クし、承認する仕組み 57 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

58.

アカウント管理ツール 内製で機能を作り込み、アカウント申請/台帳管理といった、 必要だが退屈な作業を自動化する 申請、承認が発生する部分なので、社内のワークフロー システムと連携する必要がある 内製は、継続的な開発コストはかかるが、社内システム連携 や、こまかな自動化を実現するには都合が良い 58 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

59.

監査 弊社ではYID、顧客データ、クレジットカード情報等々 セキュアなデータを多く扱っていて 以下のルールを満たす監査運用を行っている • • • 59 J-SOX内部監査 PCI-DSS 社内のDB運用ルール Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

60.

監査 弊社ではYID、顧客データ、クレジットカード情報等々 セキュアなデータを多く扱っていて 以下のルールを満たす監査運用を行っている • J-SOX内部監査 財務報告に係るITシステムが、ユーザーに不利益な変更がなされたり、 •不正な処理が紛れ込んでいないか監視するためアクセス、データ更新、プ PCI-DSS ログラム変更の証跡をとる • 社内のDB運用ルール 60 システム例:財務システム、購買システム、売上管理システム等 弊社の場合だとYDNのシステムもJ-SOX対象 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

61.

監査 弊社ではYID、顧客データ、クレジットカード情報等々 セキュアなデータを多く扱っていて 以下のルールを満たす監査運用を行っている • J-SOX内部監査 • PCI-DSS カードデータを保存してビジネスをしたい会社は、PCI-DSSの認証を取り、セ •キュアにカードデータを取り扱っていることを示す必要がある 社内のDB運用ルール DBでは、カードデータにアクセスする問い合わせを全て記録する 61 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

62.

監査 弊社ではYID、顧客データ、クレジットカード情報等々 セキュアなデータを多く扱っていて 以下のルールを満たす監査運用を行っている • • • 62 J-SOX内部監査 データベース運用管理細則/ログ管理細則 厳しいルールで運用 PCI-DSS 社内のDB運用ルール なる Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

63.

監査 2013年のデータ漏洩事件 この反省から、全社を挙げてセキュリティ対策を実施 63 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

64.

監査の要件 • 原則として、全てのアクセスログを記録すること • • ワークフローに対応している(アクセス申請・承認) 大量アクセスも捌ける(準リアルタイム監査) ただし、記録対象の機密の程度に応じ、ログの量、パフォーマンスを考慮して成功または失敗のどちらかのみ取得することを許容 社内のワークフローに対応させるため自社開発 DB全てのアクセスログを取る! 64 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

65.

統合監査モード 12cから統合監査モード(Unified Auditing)を選択できる 標準監査 監査ログがOSに、 ファイルで出力される 標準監査 監査ログがDB内、 SYSAUX.unified_audit_trail表に書き込まれる 監査 unified_audit_trail 監査ログ(file アクセス 65 アクセス Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

66.

統合監査モード 12cから統合監査モード(Unified Auditing)を選択できる 標準監査 監査ログがOSに、 ファイルで出力される 標準監査 監査ログがDB内、 SYSAUX.unified_audit_trail表に書き込まれる 秒間5000ログあたりで性能影響が出始める (標準監査だと秒間1000ログが限界 監査 unified_audit_trail 監査ログ(file アクセス 66 アクセス Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

67.

監査の要件 しかし・・・・ 原則として、全てのアクセスログを 記録すること 67 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

68.

監査の要件 しかし・・・・ 高負荷で、監査ログ取るのが不可能なDBが存在する 原則として、全てのアクセスログを その場合、セキュリティリスク受容をして監査ログ未取 記録すること 得の状態で運用するが、対応期限がある 68 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

69.

監査の要件 • ソフトウェアベンダーさんが監査ツールの営業に来たことがあったが・・・ リアルタイム監査なんて聞いたことがない アプリケーションアカウントの監査ログは出さない 出すのは管理者アカウントの監査ログだけ 69 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

70.

監査の要件 • 懇意にしているコンサルさんにも聞いてみた 統合監査の場合、 5000qpsくらいが性能限界かと~ 70 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

71.

よく考えてみると 実は、DBと監査、相性が悪すぎる • プーリングセッション無し • プーリングあり、キャッシュシステムあり (Redis/memcachedなど) で見てみましょう 71 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

72.

プーリングセッション無し 1.ログイン 監査log insert(login) 監査log insert(logoff) 2.ログオフ 3.Select操作 4.Update操作 72 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved. 監査log insert(select) 監査log insert(update)

73.

プーリングセッション無し 1.ログイン 監査log insert(login) 監査log insert(logoff) 2.ログオフ えっ、監査って 監査log insert(select) select操作でinsertが発生するの? 4.Update操作 監査log insert(update) キャッシュから結果返しても?? DBの良いところが全部死ぬ・・・これでは性能も出ない 3.Select操作 73 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

74.

プーリング/キャッシュシステムあり 監査log insert(login) 監査log insert(logoff) Pooling session開始/終了時のみ connection pooling 1.ログイン 2.ログオフ redis 3.1. Select操作 3.2. Select操作 キャッシュ あり キャッシュ なし 4.Update操作 74 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved. 監査log insert(3.2. select) 監査log insert(4. update)

75.

プーリング/キャッシュシステムあり 監査log insert(login) 監査log insert(logoff) Pooling session開始/終了時のみ connection pooling 1.ログイン 2.ログオフ この場合、監査ログは、 redis • 3.2. 3.1. select/4. updateの操作でしか出ない Select操作 キャッシュ • プーリングありだと、ログインログオフは正確に取れない 監査log insert(3.2. select) あり • キャッシュシステムだけで返した場合も キャッシュ 3.2. Select操作 なし 監査log insert(4. update) DBに到達してないため監査ログは出ない 4.Update操作 75 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

76.

監査の要件 DBの監査は正確性に欠くのはわかった しかし・・・・ 原則として、全てのアクセスログを 記録すること ただし、記録対象の機密の程度に応じ、ログの量、パフォーマンスを考慮して成功または失敗の どちらかのみ取得することを許容 76 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

77.

監査の要件 ただし、記録対象の機密の程度に応じ、ログの 量、パフォーマンスを考慮して成功または失敗の どちらかのみ取得することを許容 操作の成功は取らなくていい・・・・ =監査ログほぼ出なくなる この要件を踏まえて監査仕様を整理しよう 77 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

78.

監査ポリシーを刷新 DBのパフォーマンスを考慮して、一部取得しないことを許容 ユーザー 78 ログイン/ログオフ 失敗 成功 Select成功 失敗 Insert/update deleteほかの操作 失敗 アプリケーショ 取得しないことを許 容 ンユーザ 必須 取得しないことを 必須 許容 取得しないことを許容 サービス運用 必須 者 必須 必須 必須 必須 必須 DBA作業者 必須 必須 必須 必須 必須 必須 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved. 必須

79.

監査ポリシーを刷新 DBのパフォーマンスを考慮して、一部取得しないことを許容 ユーザー ログイン/ログオフ 失敗 成功 Select成功 失敗 Insert/update deleteほかの操作 アプリケーショ 取得しないことを許 容 ンユーザ 必須 取得しないことを 必須 許容 取得しないことを許容 サービス運用 必須 者 必須 必須 必須 必須 • DBアクセスのほとんどを占めるであろう、 必須 必須 必須 必須 必須 DBA作業者 アプリケーションアカウントの正常なselect操作のみを除外した DBの監査負荷を下げつつ、それ以外のアクセスは監査出来る 79 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved. 失敗 必須 必須 必須

80.

“A”のまとめ ユーザー認証、アカウント管理、監査 それぞれ一筋縄ではいかない • 社内のルール遵守 • 承認系システムへの連携 • セキュリティ組織との関わり、監査要件の理解と施行 ヤフーでも長い間苦労してきましたし、現状もベストとは言いがた いです。セキュリティをしっかり担保しつつも、常に使いやすくな るよう改善を続けていくことが大事 80 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

81.

おわりに あらためて、 今回は、Monitoring Backup BCP アカウント管理 監査 といった非機能部分について、DBREの業務領域と捉えヤフーのケースを ご紹介しました。ご参考になれば幸いです 実際DBAではない、非機能部分の開発や運用の比重が上がってきており それは今後より強くなっていくように感じています そこで「DBRE」という職域が認知され、興味をもつ人が増えていくといいな と思います 81 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.

82.

EOP 82 Copyright © 2019 Yahoo Japan Corporation. All Rights Reserved.