Submit Search
PostgreSQL監査
9 likes
7,852 views
Ayumi Ishii
PostgreSQL監査@PostgreSQLカンファレンス東京(2015.5.30)
Technology
Read more
1 of 20
Download now
Downloaded 68 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
More Related Content
PPTX
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
NTT DATA Technology & Innovation
PPTX
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
Ohyama Masanori
PPTX
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
NTT DATA Technology & Innovation
PDF
アーキテクチャから理解するPostgreSQLのレプリケーション
Masahiko Sawada
PPTX
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
NTT DATA Technology & Innovation
PPTX
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
NTT DATA Technology & Innovation
PDF
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
NTT DATA Technology & Innovation
PDF
AWSのログ管理ベストプラクティス
Akihiro Kuwano
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
NTT DATA Technology & Innovation
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
Ohyama Masanori
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
NTT DATA Technology & Innovation
アーキテクチャから理解するPostgreSQLのレプリケーション
Masahiko Sawada
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
NTT DATA Technology & Innovation
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
NTT DATA Technology & Innovation
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
NTT DATA Technology & Innovation
AWSのログ管理ベストプラクティス
Akihiro Kuwano
What's hot
(20)
PDF
Infrastructure as Code (IaC) 談義 2022
Amazon Web Services Japan
PDF
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
Amazon Web Services Japan
PDF
ビッグデータ処理データベースの全体像と使い分け
Recruit Technologies
PDF
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Amazon Web Services Japan
PPTX
Spring CloudとZipkinを利用した分散トレーシング
Rakuten Group, Inc.
PDF
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Masahito Zembutsu
PPTX
はじめてのElasticsearchクラスタ
Satoyuki Tsukano
PPTX
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
PDF
NTT DATA と PostgreSQL が挑んだ総力戦
NTT DATA OSS Professional Services
PDF
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化
kazuhcurry
PPTX
え!?データがオンプレにあるけどPower BI で BI したいの?
Yugo Shimizu
PDF
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
NTT DATA OSS Professional Services
PDF
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
PDF
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
Preferred Networks
PDF
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
Amazon Web Services Japan
PPTX
さくっと理解するSpring bootの仕組み
Takeshi Ogawa
PDF
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
PPTX
Python製BDDツールで自動化してみた
KeijiUehata1
PPTX
KeycloakでAPI認可に入門する
Hitachi, Ltd. OSS Solution Center.
PDF
ヤフー社内でやってるMySQLチューニングセミナー大公開
Yahoo!デベロッパーネットワーク
Infrastructure as Code (IaC) 談義 2022
Amazon Web Services Japan
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
Amazon Web Services Japan
ビッグデータ処理データベースの全体像と使い分け
Recruit Technologies
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Amazon Web Services Japan
Spring CloudとZipkinを利用した分散トレーシング
Rakuten Group, Inc.
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Masahito Zembutsu
はじめてのElasticsearchクラスタ
Satoyuki Tsukano
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
NTT DATA と PostgreSQL が挑んだ総力戦
NTT DATA OSS Professional Services
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化
kazuhcurry
え!?データがオンプレにあるけどPower BI で BI したいの?
Yugo Shimizu
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
NTT DATA OSS Professional Services
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
Preferred Networks
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
Amazon Web Services Japan
さくっと理解するSpring bootの仕組み
Takeshi Ogawa
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
Takuto Wada
Python製BDDツールで自動化してみた
KeijiUehata1
KeycloakでAPI認可に入門する
Hitachi, Ltd. OSS Solution Center.
ヤフー社内でやってるMySQLチューニングセミナー大公開
Yahoo!デベロッパーネットワーク
Ad
Similar to PostgreSQL監査
(20)
PDF
PostreSQL監査
NTT DATA OSS Professional Services
PDF
PostgreSQLの運用・監視にまつわるエトセトラ
NTT DATA OSS Professional Services
PDF
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
Shigeru Hanada
PDF
クラウドではじめるリアルタイムデータ分析 #seccamp
Masahiro NAKAYAMA
PDF
Azure Antenna はじめての Azure Data Lake
Hideo Takagi
PDF
そんな監視で大丈夫か?
Keiji Kamebuchi
PDF
シンプルでシステマチックな Oracle Database, Exadata 性能分析
Yohei Azekatsu
PDF
[社内勉強会]サクっと業務でつくったログ/データ調査環境(re:dash ☓ AWS Athena ☓ embulk)
Takahiro Moteki
PPTX
OSC2019 LT 運用レコメンドプラットフォーム開発におけるマイクロサービス構成の実現
Daisuke Ikeda
PDF
Cuto紹介資料
UNIRITA
PDF
hbstudy#06
tsakaguchi
PDF
Logにまつわるエトセトラ
leverages_event
PDF
INF-010_そのログ、ただ集めているだけではありませんか? ~IT 運用の世界にも Big Data の活用を!~
decode2016
PDF
実践で学んだLog Analytics
Tetsuya Odashima
PPTX
Domoによるモニタリングオートメーション
Taro Yoshioka
PDF
情報システムの性能マネジメントについて
Takashi Natsume
PDF
Fluentd casual
oranie Narut
PDF
PostgreSQL9.3新機能紹介
NTT DATA OSS Professional Services
PDF
Embulkを活用したログ管理システム
Akihiro Ikezoe
PPTX
Visual Studio App Centerで始めるCI/CD(iOS)
Shinya Nakajima
PostreSQL監査
NTT DATA OSS Professional Services
PostgreSQLの運用・監視にまつわるエトセトラ
NTT DATA OSS Professional Services
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
Shigeru Hanada
クラウドではじめるリアルタイムデータ分析 #seccamp
Masahiro NAKAYAMA
Azure Antenna はじめての Azure Data Lake
Hideo Takagi
そんな監視で大丈夫か?
Keiji Kamebuchi
シンプルでシステマチックな Oracle Database, Exadata 性能分析
Yohei Azekatsu
[社内勉強会]サクっと業務でつくったログ/データ調査環境(re:dash ☓ AWS Athena ☓ embulk)
Takahiro Moteki
OSC2019 LT 運用レコメンドプラットフォーム開発におけるマイクロサービス構成の実現
Daisuke Ikeda
Cuto紹介資料
UNIRITA
hbstudy#06
tsakaguchi
Logにまつわるエトセトラ
leverages_event
INF-010_そのログ、ただ集めているだけではありませんか? ~IT 運用の世界にも Big Data の活用を!~
decode2016
実践で学んだLog Analytics
Tetsuya Odashima
Domoによるモニタリングオートメーション
Taro Yoshioka
情報システムの性能マネジメントについて
Takashi Natsume
Fluentd casual
oranie Narut
PostgreSQL9.3新機能紹介
NTT DATA OSS Professional Services
Embulkを活用したログ管理システム
Akihiro Ikezoe
Visual Studio App Centerで始めるCI/CD(iOS)
Shinya Nakajima
Ad
PostgreSQL監査
1.
Copyright © 2015
NTT DATA Corporation 2015年5月30日 NTTデータ 基盤システム事業本部 石井愛弓 PostgreSQL監査 PostgreSQLアンカンファレンス@東京 2015/5
2.
2Copyright © 2015
NTT DATA Corporation 目次 • 監査とは • PostgreSQLの監査 • 監査の課題 • pg_audit紹介 • まとめ
3.
3Copyright © 2015
NTT DATA Corporation 監査とは 実際の業務が遵守すべきルールに則っているかどうかを、客観的に検証・指摘 する業務。 DBにおいては、不正アクセス・不正操作が無かったかどうか等の判断 を行う • 監査情報は、アクセス/操作ログ。 • 不正なログインをしていないか? • 重要な情報(クレジットカード情報等)を不正に抜き出していないか?… etc →ログは、部外者が閲覧や改ざんできないよう保護を行う。 ・ログを確実にとること ・ログが改ざんされないようにすること [DBの監査で重要なこと]
4.
Copyright © 2015
NTT DATA Corporation 4 PostgreSQL監査
5.
5Copyright © 2015
NTT DATA Corporation どのタイミングでログを出力すべきか? 項目 必要な設定 1 ログイン log_connections=on 2 ログアウト log_disconnections =on 3 DBオブジェクト(テーブル等)の作成、 変更 log_statement=ddl 4 DBオブジェクト(テーブル等)の参照、 更新 log_statement=all 5 設定ファイル(postgresql.conf)の変更 OSでの監査が必要。 =# CREATE TABLE test (id integer, name varchar); LOG: statement: CREATE TABLE test (id integer, name varchar);
6.
6Copyright © 2015
NTT DATA Corporation 監査で必要な情報は何か?(log_statement以外の項目) 1 いつ タイムスタンプ 2 だれが データベースユーザ名 3 どこから 接続元IP/接続元ホスト名 4 どのデータベースに データベース名 5 どんな処理をして コマンドタグ 6 どのような結果になっ たか SQLSTATE エラーコード
7.
7Copyright © 2015
NTT DATA Corporation log_line_prefixによる情報の取得 postgresql.conf にて log_line_prefix = ‘%t %u %h %d %i %e‘ 2015-05-19 15:21:37 JST hoge [local] postgres authentication 00000 タイムスタンプ ユーザ ホスト DB コマンドタグ エラーコード
8.
8Copyright © 2015
NTT DATA Corporation (参考)log_line_prefix エスケープ 効果 セッションのみ %a アプリケーション名 ○ %u ユーザ名 ○ %d データベース名 ○ %r 遠隔ホスト名、またはIPアドレス、およびポート番号 ○ %h 遠隔ホスト名、またはIPアドレス ○ %p プロセス識別子 × %t ミリ秒無しのタイムスタンプ × %m ミリ秒付きタイムスタンプ × %i コマンドタグ。セッションの現在のコマンド種類 ○ %e SQLSTATE エラーコード × %c セッションID。下記参照 × %l 各セッションまたは各プロセスのログ行の番号。1から始まりま す。 × %s プロセスの開始タイムスタンプ × %v 仮想トランザクションID(backendID/localXID) × %x トランザクションID (未割り当ての場合は0) × %q 何も出力しません。 非セッションプロセスではこのエスケープ以 降の出力を停止します。 セッションプロセスでは無視されます。 × %% %文字そのもの ×
9.
9Copyright © 2015
NTT DATA Corporation 一通りの監査をするための設定のまとめ ログイン/ログアウト、DBオブジェクトの参照の監査が必要な場合、 少なくとも以下の設定を実施する。 postgresql.conf • log_line_prefix = ‘%t %u %h %d %i %e‘ • log_connections=on • log_disconnections =on • log_statement=all
10.
Copyright © 2015
NTT DATA Corporation 1 監査の課題とpg_audit
11.
11Copyright © 2015
NTT DATA Corporation 監査におけるPostgreSQLの現在の課題の例 • テーブル単位、列単位で監査できない • 大規模データベースでは、監査する対象を絞り込まないと、ログ出力量 が大きくなってしまう • 監査対象のSQLを細かく指定(READのみ、FUNCTIONのみ等)できない • View、トリガ、doコマンド、PL/pgSQLの内部のコマンドが監査がで きない • ログで出力されるテーブル名にスキーマ名が修飾されない • 別スキーマの同名テーブルと区別できない
12.
12Copyright © 2015
NTT DATA Corporation そこで、pg_audit 2015/05 、pg_auditがcontribモジュールとしてコミットされた。(PostgreSQL9.5) 監査機能を充実させるためのモジュール • 詳細なログ出力 • テーブル単位、列単位監査 • トリガ等内部処理のログ取得 [インストール方法] $ make # make install shared_preload_libraries =‘pg_audit’ 5/29、revertされました。
13.
13Copyright © 2015
NTT DATA Corporation pg_audit紹介:ログの種類 • SESSIONログ • 細かい粒度で出力するログを設定できる(DDL, FUNCTION, MISC, READ, ROLE, WRITE, NONE, ALL) • テーブルのスキーマ名を取得できる • View、トリガ、doコマンド、PL/pgSQLの内部コマンドのログも取得で きる • OBJECTログ • OBJECT(テーブル、列)ごとにログを出力できる →必要な機能を持つ一方のログ、または両方のログを選んで、監査を実施で きる。 <ケース①> ü すべてのDDLをログ出力したい。 ü credit_cardテーブルは、SELECTもログ出力したい。 pg_audit.log = ‘ddl’ pg_audit.role = ‘audit_user’ =# GRANT ALL ON credit_card TO audit_user; コマンド の種類 ごと オブジェ クトごと
14.
14Copyright © 2015
NTT DATA Corporation pg_audit紹介:ログの中身① LOG: AUDIT: SESSION,8,1,READ,SELECT,,,"select * from test,test2;",<none> LOG: AUDIT: OBJECT,8,1,READ,SELECT,TABLE,public.test, <previously logged>,<previously logged> LOG: AUDIT: <ログの種類>, <statementID>, <substatementID>, <コマンドの種類1>, <コマンドの種類2>,<オブジェクトの種類>, <オブジェクト 名(スキーマ名付)>,<コマンド>,<パラメータ> postgres=# select * from test,test2; statementID:メイン文が発行されるごとに振られる連番。コネクション開始時は1。 substatementID:メイン文の中で、サブ文に振られる連番。最初は1。(関数使用時などは2,3と 続く) LOG: statement: select * from test,test2; ↑log_statementよりも、より詳細な情報が得られる。
15.
15Copyright © 2015
NTT DATA Corporation pg_audit紹介:ログの中身② postgres=# SELECT hoge(); LOG: AUDIT: SESSION,19,1,READ,SELECT,,,SELECT hoge();,<none> LOG: AUDIT: SESSION,19,2,FUNCTION,EXECUTE,FUNCTION,public.hoge,SELECT hoge2();,<none> LOG: AUDIT: SESSION,19,3,MISC,REINDEX,,, REINDEX INDEX test2_idx ;SELECT count(*) from test2;,<none> LOG: AUDIT: OBJECT,19,4,READ,SELECT,TABLE,public.test2, REINDEX INDEX test2_idx ;SELECT count(*) from test2;,<none> LOG: AUDIT: SESSION,19,4,READ,SELECT,TABLE,public.test2,<previously logged>,<previously logged> CREATE FUNCTION hoge () returns bigint AS $$ REINDEX INDEX test2_idx; SELECT count(*) from test2; $$language 'sql'; ① ② ④ ③ LOG: statement: SELECT hoge();
16.
16Copyright © 2015
NTT DATA Corporation pg_audit紹介:その他いろいろな設定 パラメータ 取りうる値 デフォル ト 説明 pg_audit.log DDL, FUNCTION, MISC, READ, ROLE, WRITE, NONE, ALL none 監査するSQL等の種類 pg_audit.role ユーザ名の文字列 “” 監査用ユーザを指定する。 pg_audit.log_catalog bool true pg_catalogのログを出力するか? pg_audit.log_level LOG, NOTICE, WARNING, ERRORな どログレベル各種 LOG リグレッションテストの際にNOTICEに してクライアントにログ出力する。そ れ以外はLOGなどでサーバログにて出 力する。 pg_audit.log_parameter bool false PreparedStatementのパラメータをログ に出力するか? pg_audit.log_relation bool false SESSIONログをリレーションごとに出 したい場合はtrue →select * from test, test2のとき、2つ 出すか、1つだすか? pg_audit.log_statement_o nce bool false OBJECTログとSESSIONログで同じ SQLのログを残す際に、共通となる部 分を繰り返し表示するかどうか(また はpreviously loggedとして省略する か)
17.
17Copyright © 2015
NTT DATA Corporation pg_auditを使ってもできないことの例 • スーパーユーザの監査 • SET文等でパラメータを変更しログを出さないようにする、など • OSユーザの監査 • postgresql.confの書き換えてログを出さないようにする、など
18.
18Copyright © 2015
NTT DATA Corporation pg_audit使いどころ まとめ • テーブル単位、列単位で監査したい • 監査対象のSQLを細かく指定したい(READのみ,FUNCTIONのみ等) • View, トリガ, doコマンド, PL/pgSQLの内部の処理を監査したい • テーブル名がスキーマ名で修飾されるようにしたい
19.
19Copyright © 2015
NTT DATA Corporation PostgreSQL監査まとめ • PostgreSQLの監査で、できること・できないことを知る • 必要に応じて、外部モジュールやOSのログと併せて、監査を行う OS PostgreSQL 外部モジュール
20.
Copyright © 2011
NTT DATA Corporation Copyright © 2015 NTT DATA Corporation
Download