Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved
ファイルサーバの⽼朽化対応
7
オフィス
Internet
共有ドライブ
全社ファイルサーバ
(OmniOS)
移⾏⽤マシン
(win10)
共有ドライブ
G:
Z:
robocopy
ü きっかけは、2019年より計画していたファイルサーバの⽼朽化対応に伴う移⾏プロジェクトでした。
(計画当初は、事業継続性や運⽤管理⾯での検討が中⼼でした)
※ネットワークドライブとして割り当てたドライブ同⼠をrobocopyコマンドでデータ移⾏を実施。
8.
Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved
コロナ禍によるリモートワークへの移⾏
8
ü 2020年3⽉にフルリモートでの業務が開始、バーチャルオフィスなどを活⽤した新しい働き⽅に移⾏しました。
【参考】 oViceをバーチャルオフィスにしてみた
https://www.creationline.com/lab/38590
Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved
コードネーム: HARUMAKIとは
20
ü 今回構築したログ監査システムのプロジェクト名であり、システム名になります。
⾊々な種類の具材(ログ)を収集し
分析できるプラットフォームとして活躍してほしい︕
という期待を込めてカラッと揚げちゃいました
Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved
セキュアで安全な接続⽅式
22
ü 当時、唯⼀AWSだけがプライベート接続が可能であったため、AWS上にElastic Cloudを構築しました。
(AWS東京リージョンに3AZ構成としています)
【参考】 Elastic Cloudへプライベート接続を試してみた
https://www.creationline.com/lab/35952
Elastic Cloud
Region (@ap-northeast-1)
AWS Cloud
AWS Cloud
AWS PrivateLink
Private
link
endpoint
Logstash
IP
filtering
利⽤者
Region (@ap-northeast-1)
23.
Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved
スケールアウト可能なアーキテクチャ
23
ü Kafkaを挟むことで、Consumerの性能追加や新しいログの要件追加にも容易に対応できるようになっています。
Kafka
Filebeat
(Producer)
Logstash
(Consumer)
Topic A
Logstash
(Consumer)
!
!
!
Drive
Activity
Log
Consumer Group
Drive
Activity
Log
Google Drive
(Reports API)
"
#
$
%
新しいクラウド
サービスのログ
Producer Topic B
追加拡張
Log
24.
Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved
悩み続けたETL処理の配置
24
ü Filebeat Moduleを採⽤したことで加⼯処理をLogstashに集約できなくなってしまいましたが(笑)
Google Drive
(Reports API)
Google Workspace
Module
output kafka
Filebeat
Kafka
google_workspace
(Topic)
Logstash
input kafka
input kafka
output elasticsearch
output s3
Elasticsearch
ingest pipeline
(google workspace
drive)
S3
Archive
(Bucket)
25.
Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved
全体のシステムアーキテクチャ図
25
ü クラウド、サーバレス、セキュア、CICD、データドリブンをコンセプトとしたアーキテクチャとなっています。
notification
※ Elastic Stack: 7.12.1
Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved
originating_app_idとは (1/2)
30
ü ドライブ監査ログには、「何のアプリからアクセスされたのか」を⽰すアプリIDが記録されます。
31.
Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved
originating_app_idとは (1/2)
31
ü GoogleのAPI実⾏サイトでappIdを⼊⼒して[EXECUTE]すると、アプリの詳細を確認できます。
{
"kind": "drive#app",
"id": "19570130570",
"name": "Slack",
"shortDescription": "Slack is where work happens",
"longDescription": "",
"supportsCreate": false,
"supportsImport": false,
"supportsMultiOpen": false,
"supportsOfflineCreate": false,
"installed": false,
"authorized": false,
"hasDriveWideScope": false,
"useByDefault": false,
"productUrl": "https://gsuite.google.com/marketplace/app/detail/19570130570",
"productId": "ljbkkbbbcalchmohbdlkjabljkgpmjkg",
"primaryMimeTypes": [
"application/vnd.google-apps.drive-sdk.19570130570"
]
}
32.
Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved
原因はSlackアプリ
32
ü SlackにGoogle Driveに保存されたドキュメントのリンクを張って[接続]すると
SlackbotがGoogle Driveに接続し、Slack AppとしてGoogle Driveが追加されます。
33.
Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved
定期的にダウンロードのログが出るようになります
33
ü 初回に4件、以降は不定期に1件ずつログが出⼒されていました。
❶Slackにリンクを貼り付けたタイミングで
4件ログが出ます。
❷数時間おき、不定期にログが出ます。
Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved
海外からの⼤量ダウンロードの調査を踏まえ
37
ü 管理者による監査だけでは限界を感じたため、ドライブ利⽤者⾃⾝で監査できる仕組みを導⼊しました。
利⽤した機能
1. Single sign-on (SAML, OIDC, Kerberos)
2. Kibana Spaces
3. Field and document level security
4. Role-based access control
ü ダッシュボードを操作することでデータ分析の基礎知識が⾝に付く
ü ⾃⾝の操作が詳細に記録されていることを認識することで不正防⽌の抑⽌効果になる
ü 管理者だけでは発⾒できない業務観点での違和感に気づく可能性が⾼まる
【期待する効果】
38.
Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved
⾃⼰監査機能の実装イメージ図
38
ü Google認証でシングルサインオンすることで⾃⼰監査を実現しています。
Google認証 Google Drive
Elasticsearch
Filebeat Logstash
Kibana
User A
ドライブ利⽤
ログ取り込み
Kibana利⽤
【凡例】
Drive
Access
Get Reports API
Ingest
Search
Single sign-on
Login
• KibanaのログインアカウントはGoogle Driveの操作アカウントと同⼀
• Kibanaで検索できるログはログインに使⽤した⾃アカウントのみに制御
• Kibanaにログインすると上記の制限がされたロールが適⽤
• Kibanaにログインすると⾃⼰監査専⽤のKibana Spaceが適⽤
39.
Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved
Google Driveを操作したユーザ名
39
ü 「user.name」というフィールドにGoogleアカウントの@より前の部分がユーザ名として記録されます。
40.
Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved
⾃分の操作ログしか検索できないようにするには...
40
ü ロールに設定するGranted documents queryでユーザ名での検索可能ドキュメントの制御をします。
(下記の設定をするとuser.nameが「h-hibino」のログしか検索にかからなくなります)
41.
Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved
でも、固定値にするわけにはいかないので...
41
ü Kibanaにログインしたユーザによって、ログインに使⽤したユーザ名を拾えるようにします。
(「_user.username」というテンプレートをロールクエリに組み込むことで実現します)
42.
Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved
Google認証でログインすると...
42
ü Googleアカウントの@より前の部分がKibanaのユーザ名となります。
【参考】 Kibana SpacesとField and Document Level Securityを使ってSelf Auditしちゃうぞ︕
https://www.creationline.com/lab/elastic/43851
43.
Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved
Kibana Spacesを使ったアクセス制御
43
ü ⾃⼰監査に必要なKibanaの機能のみに絞ることで閲覧可能なダッシュボードを提供することができます。
Copyright ⓒ2021 CREATIONLINE,INC. All Rights Reserved
当初はドライブ監査ログ以外のログも...
46
ü ドライブ監査ログはほぼリアルタイムですが、他の監査ログではログの発⽣から出⼒までに遅れがあります。
Filebeat取得対象
特にログイン、SAMLで最⼤数時間の遅延