Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GCPでセキュリティガードレールを作るための方法と推しテク

yu-yamada
January 24, 2021

 GCPでセキュリティガードレールを作るための方法と推しテク

July Tech Festa 2021 winter 登壇資料
#JTF2021w #GCP

パブリッククラウドでのセキュリティ担保の方法として、利便性を犠牲にはせずセキュリティを担保しようというガードレールという考え方があり、GoogleCloudではガードレールを設置するために以下のようなサービスを使うことが出来ます。
・SecurityCommandCenter
・CloudAssetInventory
・VpcServiceControls
本セッションではこれらのサービスの使い方や、GCPプロジェクトを作成したときにセキュリティ対策としてまずやったほうが良い設定などを紹介します。

yu-yamada

January 24, 2021
Tweet

More Decks by yu-yamada

Other Decks in Technology

Transcript

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

    View full-size slide

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

    View full-size slide

  3. 会社紹介

    View full-size slide

  4. 創業  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日時点) 

    ビジョン・

    ミッション


    View full-size slide

  5. 5
    選択・意思決定を支援する情報サービスを提供し、

    「まだ、ここにない、出会い。」を実現する。
    販促
    国内

    人材募集
    事業領域 主なサービスブランド

    View full-size slide

  6. 6
    リクルートには、ユーザーとクライアントという2つのお客様が存在します。

    企業と人(B to C)、企業と企業(B to B)、人と人(C to C)、すべての間に立ち、双方に
    とって最適なマッチングを図る「場」を提供しています。

    ユーザーとクライアントを新しい接点で結び、
    「まだ、ここにない、出会い。」の場を創造する。

    View full-size slide

  7. リクルートグループのうちメディア&ソリューション事業を推進する会社

    ※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
    国内

    販促

    リクルートテクノロジーズ
    リクルートコミュニケーションズ
    機能

    会社

    その他


    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  15. GCSバケットを
    選択

    View full-size slide

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

    View full-size slide

  17. 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

    View full-size slide

  18. VPCServiceControls

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide





  22. View full-size slide

  23. 機密オンプレ環境
    一般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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  28. Security Command Center

    View full-size slide







  29. View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide





  36. View full-size slide

  37. Cloud Asset Inventory

    View full-size slide





  38. View full-size slide






  39. View full-size slide






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

    View full-size slide





  41. View full-size slide









  42. View full-size slide






  43. View full-size slide






  44. View full-size slide

  45. 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
    }

    View full-size slide