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 Slide

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

    View Slide

  3. 会社紹介

    View 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 Slide

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

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

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

    View Slide

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

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

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

    View 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 Slide

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

    View Slide



  9. View Slide

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

    View Slide

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

    View Slide

  12. View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  16. View Slide

  17. View Slide

  18. View Slide

  19. View Slide

  20. View Slide

  21. View Slide

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

    View Slide

  23. View Slide

  24. GCSバケットを
    選択

    View Slide

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

    View Slide

  26. 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 Slide

  27. View Slide

  28. VPCServiceControls

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  32. View Slide





  33. View Slide

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

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

    View Slide

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

    View Slide

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

    View Slide

  38. View Slide

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

    View Slide



  40. View Slide

  41. Security Command Center

    View Slide







  42. View Slide



  43. View Slide

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

    View Slide

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

    View Slide

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

    View Slide



  47. View Slide

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

    View Slide

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

    View Slide

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

    View Slide



  51. View Slide



  52. View Slide





  53. View Slide

  54. Cloud Asset Inventory

    View Slide





  55. View Slide






  56. View Slide






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

    View Slide



  58. View Slide

  59. View Slide





  60. View Slide









  61. View Slide






  62. View Slide




  63. View Slide



  64. View Slide






  65. View Slide




  66. View Slide




  67. View Slide


  68. View Slide

  69. 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 Slide



  70. View Slide




  71. View Slide

  72. まとめ

    View Slide

  73. View Slide

  74. View Slide