Slide 1

Slide 1 text

GCPで セキュリティガードレールを 作るための方法と推しテク July Tech Festa 2021 winter 株式会社リクルート データ推進室  #jtf2021w_b

Slide 2

Slide 2 text

山田 雄(Yamada Yu) @nii_yan 社会人歴 20年ぐらい データエンジニア/セキュリティエンジニア (データ/セキュリティ基盤の開発・運用) AWS/GCP/BigData/Mail/Hadoop...

Slide 3

Slide 3 text

会社紹介

Slide 4

Slide 4 text

創業  1960年3月31日  「大学新聞広告社」としてスタート グループ
 従業員数  49,370名     (2020年3月31日時点) 連結売上高  23,994億円    (2019年4月1日~2020年3月31日) 
 EBITDA
  3,251億円     (2019年4月1日~2020年3月31日) 
 グループ
 企業数  366社       (子会社および関連会社、2020年3月31日時点) 
 ビジョン・
 ミッション


Slide 5

Slide 5 text

5 選択・意思決定を支援する情報サービスを提供し、
 「まだ、ここにない、出会い。」を実現する。 販促 国内
 人材募集 事業領域 主なサービスブランド

Slide 6

Slide 6 text

6 リクルートには、ユーザーとクライアントという2つのお客様が存在します。
 企業と人(B to C)、企業と企業(B to B)、人と人(C to C)、すべての間に立ち、双方に とって最適なマッチングを図る「場」を提供しています。
 ユーザーとクライアントを新しい接点で結び、 「まだ、ここにない、出会い。」の場を創造する。

Slide 7

Slide 7 text

リクルートグループのうちメディア&ソリューション事業を推進する会社
 ※2012/10 中核事業会社・機能会社に分社 → 2021/4「リクルート」として統合予定
 7 リクルート
 ホールディングス リクルートキャリア リクルート住まいカンパニー リクルートライフスタイル リクルートジョブズ リクルートマーケティングパートナーズ リクルートスタッフィング スタッフサービス・ホールディングス メディア &
 ソリューション事業(SBU) (株)リクルート
 人材派遣事業(SBU)
 RGF Staffing B.V.
 HRテクノロジ― 事業(SBU)
 RGF OHR USA, Inc.
 その他海外派遣グループ会社 Indeed,Inc.
 Glassdoor,Inc.
 RGF International Recruitment
 リクルートマネジメントソリューションズ
 国内
 HR 国内
 販促
 リクルートテクノロジーズ リクルートコミュニケーションズ 機能
 会社
 その他


Slide 8

Slide 8 text

クラウド・セキュリティの概念

Slide 9

Slide 9 text

● ●

Slide 10

Slide 10 text

◯:ユーザ管理範囲 Iaas Paas Faas コンテンツ ◯ ◯ ◯ アクセスポリシー ◯ ◯ ◯ 利用 ◯ ◯ ◯ デプロイ ◯ ◯ - Webアプリのセキュリティ ◯ ◯ - アイデンティティ ◯ - - 運用 ◯ - - アクセスと認証 ◯ - - ネットワークセキュリティ ◯ - - データとコンテンツ ◯ - - GuestOS ◯ - - 監査ログ - - - ネットワーク - - - ストレージ - - - カーネル - - - ブート - - - ハードウェア - - -

Slide 11

Slide 11 text

◯:ユーザ管理範囲 Iaas Paas Faas コンテンツ ◯ ◯ ◯ アクセスポリシー ◯ ◯ ◯ 利用 ◯ ◯ ◯ デプロイ ◯ ◯ - Webアプリのセキュリティ ◯ ◯ - アイデンティティ ◯ - - 運用 ◯ - - アクセスと認証 ◯ - - ネットワークセキュリティ ◯ - - データとコンテンツ ◯ - - GuestOS ◯ - - 監査ログ - - - ネットワーク - - - ストレージ - - - カーネル - - - ブート - - - ハードウェア - - -

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

利便性とのトレードオフ ガードレール 利便性 セキュリティ 利便性 セキュリティ

Slide 14

Slide 14 text

利用者 管理者 権限外の操作を出来なくするなど のガードレール設置 各種リソースの操作 レールから外れた操作の と

Slide 15

Slide 15 text

GCPプロジェクトのおすすめ初期設定

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

ログのタイプ 保存日数 管理アクティビティ 400日 データアクセス 30日 システムイベント 400日 ポリシー拒否 30日

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

GCSバケットを 選択

Slide 25

Slide 25 text

BigQueryを選択 注)プロジェクト内でBQに対する操作を行ってない(ログ が無い)場合、BigQueryが選択出来ません 何かしら操作をしてからシンク設定をしてください

Slide 26

Slide 26 text

https://cloud.google.com/blog/ja/products/gcp/help-keep-your-google-cloud-service-account-keys-safe #macでの設定の場合 # 以下の設定をすることで 'private_key','private_key_id'の文言が入ったファイルが commit 出来なくなる brew install git-secrets git secrets --add 'private_key' --global git secrets --add 'private_key_id' --global

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

VPCServiceControls

Slide 29

Slide 29 text

機密データありプロジェクト vpc-sc BigQuery Cloud Storage Firewall Compute Engine

Slide 30

Slide 30 text

vpc-sc BigQuery Cloud Storage ProjectA ProjectC Cloud Functions ProjectB Cloud Spanner ProjectD

Slide 31

Slide 31 text

vpc-sc BigQuery Cloud Storage ProjectA ProjectB xxx.xxx.xxx.1/32 xxx.xxx.xxx.2/32 [email protected] [email protected]

Slide 32

Slide 32 text

No content

Slide 33

Slide 33 text

● ○ ○ ●

Slide 34

Slide 34 text

機密オンプレ環境 一般GCP環境 機密GCP環境 ProjectA ProjectB vpc-sc accessLevelの設定 basic: conditions: - ipSubnetworks: - XXX.XXX.XX.2/32 - XXX.XXX.XX.3/32 - members: - serviceAccount:[email protected] accessLevelの設定 basic: conditions: - ipSubnetworks: - 分析ユーザのアドレス BigQuery Cloud Storage BigQuery GCSのIAMで外部から は書込みのみを許可 Compute Engine Compute Engine

Slide 35

Slide 35 text

ProjectA VPC Compute Engine ProjectB vpc-sc Cloud Storage Cloud NAT

Slide 36

Slide 36 text

標準ProjectB vpc-sc BigQuery 機密Project vpc-sc BigQuery 標準ProjectA BigQuery ブリッジ

Slide 37

Slide 37 text

標準ProjectB vpc-sc BigQuery 機密Project vpc-sc BigQuery 標準ProjectA BigQuery ブリッジ

Slide 38

Slide 38 text

No content

Slide 39

Slide 39 text

木本 貴光(Kimoto Takamitsu) 社会人歴 6年 主にインフラ周り 直近は、クラウドセキュリティ関連や 監視基盤の刷新などを行う 以前はデータサイエンティストやってました

Slide 40

Slide 40 text

● ●

Slide 41

Slide 41 text

Security Command Center

Slide 42

Slide 42 text

● ● ○ ● ● ○

Slide 43

Slide 43 text

● ●

Slide 44

Slide 44 text

詳細は料金を参照(特にプレミアム) レガシー ● Security Command Center APIによるデータ転送量 ● 検出に利用されるログ量 などに基づく スタンダード 無料 プレミアム 以下のうち金額が大きい方の 5% ● 契約した Google Cloud の年間費用額 ● 現在の実際の Google Cloud の費用の年換算額

Slide 45

Slide 45 text

Security Health Analytics FWの設定不備やCIS ベンチマークにそっ た検出 使用可能 使用可能 一部制限あり 使用可能 Cloud Anomaly Detection Compute系の異常な 行動(ex. 乗っ取り) クレデンシャル漏洩 使用可能 使用可能 一部制限あり 使用可能 Event Threat Detection Stackdriver のログ から不正攻撃の踏み 台になっていないか などの自動検出 使用可能 使用不可 使用可能 Web Security Scanner Webアプリの脆弱性 スキャン 使用可能 使用可能 一部制限あり 使用可能 Container Threat Detection コンテナに対する 攻撃の検出 使用可能 使用不可 使用可能

Slide 46

Slide 46 text

OPEN_SSH_PORT ファイアウォールが、一般的なアクセスを許可するオープ ン SSH ポートを持つように構成されている プレミアム・ スタンダード OPEN_MYSQL_PORT ファイアウォールが、一般的なアクセスを許可するオープ ン MYSQL ポートを持つように構成されている プレミアム BUCKET_LOGGING_DISA BLED ロギングが有効になっていないストレージ バケットがある プレミアム

Slide 47

Slide 47 text

● ○

Slide 48

Slide 48 text

プロジェクトで フィルタリング可 各種セキュリティ ベンチマークとの対応

Slide 49

Slide 49 text

改善手順も提供される 重大度は CRITICAL/HIGH/MEDIUM/LOW/ UNSPECIFIED

Slide 50

Slide 50 text

これらの情報は、Cloud Asset Inventoryによる(詳細後述)

Slide 51

Slide 51 text

● ●

Slide 52

Slide 52 text

● ●

Slide 53

Slide 53 text

● ○ ● ●

Slide 54

Slide 54 text

Cloud Asset Inventory

Slide 55

Slide 55 text

● ○ ● ○

Slide 56

Slide 56 text

● ● ● ● ●

Slide 57

Slide 57 text

● ● ● ● ● 今回は上 3 つ の機能を紹介

Slide 58

Slide 58 text

● ●

Slide 59

Slide 59 text

No content

Slide 60

Slide 60 text

● ○ ● ●

Slide 61

Slide 61 text

● ○ ● ○ ● ● ○ ●

Slide 62

Slide 62 text

● ○ ○ ● ●

Slide 63

Slide 63 text

● ● ●

Slide 64

Slide 64 text

● ●

Slide 65

Slide 65 text

● ○ ● ○ ●

Slide 66

Slide 66 text

● ○ ●

Slide 67

Slide 67 text

● ● ●

Slide 68

Slide 68 text

Slide 69

Slide 69 text

func DetectOpenSSHFirewall (change *models.CloudAssetInventoryChange ) (bool, error) { if change.Asset.AssetType != "compute.googleapis.com/Firewall" { return false, nil } var fw Firewall if err := json.Unmarshal(change.Asset.Resource, &fw); err != nil { return false, errors.Wrap(err, "failed to unmarshal Firewall resoruce data") } if fw.Data.Disabled || fw.Data.Direction == "EGRESS" { return false, nil } return fw.IsInternetFacing () && fw.IsSSHPortOpen (), nil }

Slide 70

Slide 70 text

● ●

Slide 71

Slide 71 text

● ○ ●

Slide 72

Slide 72 text

まとめ

Slide 73

Slide 73 text

No content

Slide 74

Slide 74 text

No content