SlideShare a Scribd company logo
Cloud Onr
Cloud OnAir
Cloud OnAir
Google Cloud で
セキュアにアプリケーションを
開発しよう
2019 年 3 月 7 日 放送
Cloud OnAir
本日の放送の位置づけ
GCP インフラ / サービス自体のセキュリティ
組織として適切に運用するための
セキュリティ
各アプリケーション / データを
適切に開発・運用するためのセキュリティ
責任共有モデルにおける
境界線
個別プロジェクトチームと
全社クラウド管理者の
境界線
このセミナーの
注力ポイント
Agenda
Cloud OnAir
1
3
2
4
5
Google Cloud のセキュリティ
権限管理
アプリケーション
データインフラ
まとめ
Cloud OnAir
Cloud OnAir
Google Cloud のセキュリティ
Google Cloud の
セキュリティ機能が評価され、
Forrester Research の
“Public Cloud Platform
Native Security, Q2 2018” レポートでリー
ダーに選出される
The Forrester Wave™: Public Cloud Platform Native Security Q2 2018. The
Forrester Wave™ is copyrighted by Forrester Research, Inc. Forrester and
Forrester Wave™ are trademarks of Forrester Research, Inc. The Forrester
Wave™ is a graphical representation of Forrester's call on a market and is
plotted using a detailed spreadsheet with exposed scores, weightings, and
comments. Forrester does not endorse any vendor, product, or service
depicted in the Forrester Wave. Information is based on best available
resources. Opinions reflect judgment at the time and are subject to change.
セキュリティがクラウドの長所に
エンタープライズでクラウド利用が増加している理由
1. アジリティの重要性(45 %)
2. セキュリティへの信頼(44 %)
3. 経費節減(34 %)
MIT Sloan Management Review の調査レポートによる
(回答者は 509 人以上の経営者と IT リーダー)
Cloud OnAir
徹底的な防御がデフォルトで ON
運用とデバイスのセ
キュリティ
ハードウェア インフラ サービス展開
アイデンティティ
ストレージ
サービス
インターネット通信
Google 独自設計のハードウェア
直接設計に関与してリスクを減らす
専用
チップ
専用
サーバ
専用
ストレージ
専用
ネットワーク
専用
データセンター
Proprietary + ConfidentialCloud OnAir
Cloud OnAir
“ Google はインフラを保護 ”
“ お客様はアプリケーションを保護 ”
責任共有モデル
PaaS
App
Engine
Big
Query
SaaS
Gmail Drive
IaaS
Compute
Engine
Cloud
Storage
コンテンツ
アクセスポリシー
利用
デプロイ
Web アプリのセキュリティ
アイデンティティ
運用
アクセスと認証
ネットワークセキュリティ
Guest OS, データとコンテンツ
監査ログ
ネットワーク
ストレージ+暗号化
安全なカーネルと IPC
ブート
ハードウェア
Google が管理
お客様が管理
クラウドセキュリティの責任は、お客様と Google で共有
https://cloud.google.com/security/incident-response/
Cloud OnAir
Cloud OnAir
権限管理
Cloud OnAir
Google Cloud 開発環境
VPC
Application
Storage
Google API
開発者アクセス
Web リクエスト
アクセス
Cloud OnAir
Google Cloud 開発環境
VPC
Application
Storage
Google API
開発者アクセス
Web リクエスト
アクセス
Cloud OnAir
Identity and Access Management (IAM)
誰が どういう操作を 何に対して どういう条件下で
Google アカウント
Google グループ
サービスアカウント
役割
組織 / フォルダ
プロジェクト
リソース
IP
時間
制御
内容
具体例
Cloud OnAir
IAM - グループに対して役割を割り当てる
ユーザ グループ 役割 リソース
プロジェクト A
プロジェクト B
インスタンス管理者
BigQuery ユーザ
太郎 データサイエンティスト
Cloud OnAir
IAM - サービスアカウント
● アプリケーションやサーバのための ID
● サービスアカウント自体もリソース
○ 人が 「サービスアカウントとして実行」
することもできる
● サービスアカウントによって使われる
キーは自動的に管理される
● ユーザがキーを作成し
ダウンロードすることも可能
○ その場合、キーの保存や
ローテーションなど、
適切な管理を徹底する https://cloud.google.com/iam/docs/understanding-service-accounts
Cloud OnAir
IAM - 役割と権限
権限の集合
compute.instances.delete
compute.instances.get
compute.instances.list
compute.instances.setMachineType
compute.instances.start
compute.instances.stop
役割
Instance Admin
命名規則
<サービス名>.<リソース>.<動詞>
API との関係
基本的にはメソッドと 1:1
Cloud OnAir
IAM - 3 種類の役割
Primitive roles
プロジェクト単位の権限セット
3 つのロール
1 サービス単位の権限セット
サービスごとに数はいろいろ
カスタムな権限セット
● オーナー
● 編集者
● 閲覧者
● <サービス名>管理者
● <サービス名>編集者
● <サービス名>閲覧者
など
● バケットの一覧は
取得できないが、特定の
バケットには書き込める
● GCE インスタンスは
作れるが外部IP は
付けられない
基本の役割 事前定義された役割 カスタムの役割
最小権限の原則: より細かい役割で必要最低限の権限のみ付与する
Cloud OnAir
リソース階層と IAM
● 上位で設定されたものは下位に継承される
● 権限委譲できる単位でフォルダを分ける
example.com
A 部 B 部
チーム Eチーム Dチーム C
Project HProject GProduct F
VM バケット データセット
組織
フォルダ
プロジェクト
リソース
Cloud OnAir
Cloud IAM Conditions Private Beta
● アクセスする際の属性が該当した時のみ
その役割が付与される
● Private Beta で設定可能な属性は下記
○ リソース属性
■ タイプ
● 例. google.cloud.compute.Instance
■ サービス
● 例. google.cloud.storage
■ 名前
● 例. projects/_/buckets/exampleco-site-assets-
○ リクエスト属性
■ 時間
■ 送信元 IP アドレス
https://cloud.google.com/iam/docs/conditions-overview
Cloud OnAir
Cloud OnAir
アプリケーション
Cloud OnAir
Google Cloud 開発環境
VPC
Application
Storage
Google API
開発者アクセス
Web リクエスト
アクセス
Cloud OnAir
セキュアなアプリケーション
VPC
Application
Cloud Load
Balancing
Container
Registry
Cloud Armor
Cloud Firewall
Rules
Identity-Aware
Proxy
Gateway
Container
Optimized OS
Shielded VM
CICP
Third Party ID
● 通信の制限
● WAF ● Identity ベース認証
● サードパーティID 認証
● セキュアなコンテナ用OS
● セキュアなVM
● コンテナイメージ脆弱性スキャン
● 信頼されたイメージのみデプロイ
Cloud OnAir
Firewall Rules
● ファイアウォール (許可 / 不許可ルール)
● ステートフル (コネクション単位)
● 柔軟なグルーピング方式: タグ
● 分散: ホストでの実施 → 輻輳ポイントが無い
FWFW
Compute
Engine
Compute
Engine
Compute
Engine
Red タグ Blue タグ
 まめ知識:ファイアウォールの
設定を変更しても、すでに存在する
接続は切断されません。
Cloud Firewall
Rules
Source:
● IP レンジ
● サブネット
● サービスアカウント
● タグ
Target:
● ネットワーク内
インスタンス
● サービスアカウント
● タグ
プロトコル、ポート
Cloud OnAir
Shielded VMs Beta
rootkit や bootkit なども防御する
セキュリティコントロールにより堅牢化された 
仮想マシン
特権の昇格、リモート攻撃、悪意ある内部者などの
高度な脅威から VM を保護
セキュアで測定可能なブート、仮想 TPM(Trusted
Platform Module)、UEFI ファームウェア、および
完全性の監視により、ワークロードが信頼され、
検証可能であることを保証
改ざん防止のために証明書を使用し VM の完全性を
検証
Cloud OnAir
Container Optimized OS
● Google Compute Engine, Kubernetes Engine で利用可能なセキュア・軽量 OS
○ Chromium OS ベース
○ 最低限のプロセスのみ動作
○ ブート時、ブートイメージの改ざんチェック
○ 大部分が read only もしくは ephemeral fs
○ コンテナは sandbox で動作
○ AppArmor によるプロセス制限
○ サービス listen ポートの最小化
○ 自動 OS アップデート
Cloud OnAir
2019 年 2 月 11 日にコンテナランタイム “runc” に、
ホスト上の root 権限を取得できてしまう脆弱性が
見つかったが、Container Optimized OS では
この脆弱性による悪用は不可能だったため、
特別なアクションを必要としなかった。
コンテナランタイム “runc” の脆弱性 (CVE-2019-5736)
“Ubuntu ノードのみが影響を受けます。
COS ノードは影響を受けません。 ”
https://cloud.google.com/kubernetes-engine/docs/security-bulletins#february-11-2019-runc
Cloud OnAir
Container Registry 脆弱性スキャン Beta
Container Registry 脆弱性ス
キャンは、CI / CD
パイプラインの早い段階で
セキュリティ上の脆弱性を
特定
Ubuntu、Debian、Alpine のパッケージにある
脆弱性を特定
常時更新されるデータベースにより、スキャンが
常に最新であることを保証
検出可能な脆弱性を拡張するために、
既存のツールをプラグインすることが可能
Cloud OnAir
Binary Authorization Beta
Binary Authorization は、
信頼されたコンテナ
イメージのみを GKE 上に
デプロイすることを
保証するセキュリティ
コントロール機能
検証済みイメージのみが、ビルドリリース
プロセスと統合可能
Kubernetes Engine にデプロイする前に
シグネチャの検証を強制することが可能
開発中に、信頼された認証局により署名された
イメージが必要となる
Cloud OnAir
App Engine Standard 環境や、
Cloud Load Balancing (HTTPS) に
アクセスする際の認証・認可を
提供する。
認証情報を持たないユーザが
アクセスした際は、Google
アカウントのログイン画面が表示される。
当該ユーザが権限を持っていた場合に
リソースへのアクセスを許可する。
Identity-Aware Proxy (IAP)
Cloud OnAir
様々なサードパーティの Identity を
使った認証を、アプリケーションに簡単
に組み込むことができる。
広く使われている Firebase を
ベースに構築されており、
二要素認証や多くの認証手法
(Social, OIDC, SAML 等) と
Client / Server SDK を提供する。
CICP (Cloud Identity for Customers and Partners) Beta
Customer
and partner
user accounts
CICP
Your application
https://cloud.google.com/identity-cp/
Cloud OnAir
Cloud Armor
ユースケース
● インフラに対する DDoS 攻撃対策
● IP ブラックリスト/ホワイトリスト
● 地域 (Geo) ベースのアクセス制限 Beta
● SQLi / XSS 防御 Alpha
● カスタムルールの作成 Alpha
● Stackdriver による証跡
スケーラブルな DDoS 対策 / WAF
https://cloud.google.com/armor/
Cloud OnAir
Cloud OnAir
Demo
Cloud OnAir
Cloud OnAir
データインフラ
Cloud OnAir
Google Cloud 開発環境
VPC
Application
Storage
Google API
開発者アクセス
Web リクエスト
アクセス
Cloud OnAir
セキュアなデータインフラ
VPC
Compute
Engine
Cloud
Storage
Cloud
Storage
Unauthorized ProjectProduction Project
Stackdriver
Key
Management
Service
CSEK
VPC Service
Controls
● 監査ログ
● VPC 内フローログ
● 暗号鍵の持ち込み
● 暗号鍵の管理 ● データの不正利用・漏洩防止
BigQuery
Cloud OnAir
VPC Service Controls Beta
GCP サービス内の
データ
境界線外の
VPC
境界線内の
VPC ネットワーク
VM to
GCP service
GCP service
to
GCP service
サービス境界線
● 権限があってもアクセスできない
サービス境界線を定義
● サービス境界線内では通常の
API アクセスが可能
● 境界線をまたぐ API コールを止め、
不正なデータの移動を防ぐ
○ 認証情報漏洩時の不正利用防止
○ 悪意ある内部ユーザのデータ
持ち出し防止
https://cloud.google.com/vpc-service-controls/
Cloud OnAir
Access Context Manager Beta
GCP サービス内の
データ
境界線内の
VPC ネットワーク
サービス境界線
細かなアクセス要件 (Access Level) を
設定することでサービス境界線を
またいだアクセスを許可できる。
Access Levels は Access Context
Manager で組織単位で設定可能
● デバイス、OS
● IP アドレス
● IAM ユーザ、サービスアカウント
Access Context Manager
Access Policy
Access Level
Access Level
AND
AND...
https://cloud.google.com/access-context-manager/docs/overview
Cloud OnAir
Google Cloud における暗号化
デフォルトで
全てのデータを暗号化
Google Cloud への接続は、
TLS 暗号化が必須 データはチャンクに
分割され、それぞれが
異なる暗号鍵で暗号化
データ暗号化キーは、
キー暗号化キーで
ラップ
暗号化されたチャンクと、
ラップされた暗号化キーは、Google
のストレージインフラ
全体に分散
データ暗号化キー
Data Encryption Key
(DEK)
キー暗号化キー
Key Encryption Key
(KEK)
Cloud OnAir
キー暗号化キー (KEK) のオプション
Customer-supplied encryption keys
(CSEK)
デフォルトの Google マネージドキー Customer-managed encryption keys
(CMEK)
Google による自動的な管理 きめ細やかなカスタマーによる管理
Key
Management Service (KMS)
何も設定しない場合に用いられる。
鍵は Google 内部で自動的に管理され、
リソースへのアクセス時には自動的かつ
透過的に暗号化・復号化が行われる。
Cloud KMS を使って鍵を生成する。
この鍵はカスタマーによって管理 (生成、
ローテーション、破棄など ) できる。
プロジェクトから独立しているため、
鍵の管理者と利用者を分離することが
可能。
API コール時にカスタマーの所有する
Base64 でエンコードされた AES-256 を
指定することができる。
指定された鍵は Google Cloud において
メモリ上で使われ、ストレージに
書き込まれることはない。
https://cloud.google.com/security/encryption-at-rest/
Cloud OnAir
VPC Flow Logs
● VPC 内部の通信フローのログを取得
○ Source / Destination IP, Port,
IANA Protocol Number
○ 各種メトリクス
○ 外部への通信もログ可能
■ VM - VM
■ VM - External
○ 5 秒間の統計値
○ 有効にしてもパフォーマンスへ
影響なし
https://cloud.google.com/vpc/docs/using-flow-logs
Cloud OnAir
以下の監査ログが Stackdriver Logging で参照可能
Cloud Audit Logging
Admin Activity
Logs
System Event Logs Data Access Logs Access Transparency
Logs
概要 リソースの
作成/削除/変更
設定の変更
Compute Engine の
システムベント
例. ライブマイグレーション
リソース情報の取得
データの読み書き
Google サポートや
エンジニアのアクセス
デフォルト オン オン オフ (除 BigQuery) オフ
保持期間 400 日 400 日 30 日 30 日
課金 無償 無償 有償 有償
利用可能 全ユーザ 全ユーザ 全ユーザ Enterprise サポート
4 以上の Development
/ Production roles
Cloud OnAir
監査ログの管理と保存
Google Cloud Storage (GCS) で保存
● 長期保存のため GCS へ
エクスポート可能
● バケットロック機能を使用して保持
ポリシーを設定し、削除や上書きを
防止
● 保持ポリシーのロックによって不変
ストレージを作成可能
一度ロックすると元に戻せません
https://cloud.google.com/storage/docs/bucket-lock
1 つのプロジェクトで集中管理
● 複数のプロジェクトがある時、ログ
を管理用のプロジェクトに
収集・監査
プロジェクト A
プロジェクト B
管理者プロジェクト
BigQuery
Cloud
Storage
Cloud OnAir
Access Transparency Logs
お客様のデータに
アクセスした手段や
理由を記録し表示
Google エンジニアによる
GCP 上の顧客データに対する
操作の記録を
企業のユーザ様へ​
ほぼリアルタイムでアクセスできるよう
API や UI を提供します
Google Cloud では、契約上の義務を
履行するために必要な場合以外の
理由でお客様のデータに
アクセスすることはありません。 https://cloud.google.com/access-transparency/
Cloud OnAir
Cloud OnAir
Demo
Cloud OnAir
Cloud OnAir
まとめ
Cloud OnAir
まとめ
Google Cloud セキュリティ
アプリケーション データインフラ権限管理
 グループを使って
役割を管理する
 必要最小限の権限を
割り当てる
あらゆるレイヤーにおいて、徹底的な防御がデフォルトで ON
責任共有モデル
 セキュリティに関する 
サービスを活用する
 脆弱性の発見・対策
 意図したアクセスに
 限定する
 データへのアクセスや 
移動を適切に制限する
 ポリシーに沿った
暗号化を選択する
 ログを活用する
Cloud
IAM
Container
Registry
Cloud
Armor
Cloud Firewall
Rules
Identity-Aware
Proxy
Stackdriver
Key Management
Service
VPC Service
Controls

More Related Content

[Cloud OnAir] Google Cloud でセキュアにアプリケーションを開発しよう 2019年3月7日 放送

  • 1. Cloud Onr Cloud OnAir Cloud OnAir Google Cloud で セキュアにアプリケーションを 開発しよう 2019 年 3 月 7 日 放送
  • 2. Cloud OnAir 本日の放送の位置づけ GCP インフラ / サービス自体のセキュリティ 組織として適切に運用するための セキュリティ 各アプリケーション / データを 適切に開発・運用するためのセキュリティ 責任共有モデルにおける 境界線 個別プロジェクトチームと 全社クラウド管理者の 境界線 このセミナーの 注力ポイント
  • 3. Agenda Cloud OnAir 1 3 2 4 5 Google Cloud のセキュリティ 権限管理 アプリケーション データインフラ まとめ
  • 4. Cloud OnAir Cloud OnAir Google Cloud のセキュリティ
  • 5. Google Cloud の セキュリティ機能が評価され、 Forrester Research の “Public Cloud Platform Native Security, Q2 2018” レポートでリー ダーに選出される The Forrester Wave™: Public Cloud Platform Native Security Q2 2018. The Forrester Wave™ is copyrighted by Forrester Research, Inc. Forrester and Forrester Wave™ are trademarks of Forrester Research, Inc. The Forrester Wave™ is a graphical representation of Forrester's call on a market and is plotted using a detailed spreadsheet with exposed scores, weightings, and comments. Forrester does not endorse any vendor, product, or service depicted in the Forrester Wave. Information is based on best available resources. Opinions reflect judgment at the time and are subject to change.
  • 6. セキュリティがクラウドの長所に エンタープライズでクラウド利用が増加している理由 1. アジリティの重要性(45 %) 2. セキュリティへの信頼(44 %) 3. 経費節減(34 %) MIT Sloan Management Review の調査レポートによる (回答者は 509 人以上の経営者と IT リーダー)
  • 7. Cloud OnAir 徹底的な防御がデフォルトで ON 運用とデバイスのセ キュリティ ハードウェア インフラ サービス展開 アイデンティティ ストレージ サービス インターネット通信
  • 9. Cloud OnAir “ Google はインフラを保護 ” “ お客様はアプリケーションを保護 ” 責任共有モデル
  • 10. PaaS App Engine Big Query SaaS Gmail Drive IaaS Compute Engine Cloud Storage コンテンツ アクセスポリシー 利用 デプロイ Web アプリのセキュリティ アイデンティティ 運用 アクセスと認証 ネットワーク��キュリティ Guest OS, データとコンテンツ 監査ログ ネットワーク ストレージ+暗号化 安全なカーネルと IPC ブート ハードウェア Google が管理 お客様が管理 クラウドセキュリティの責任は、お客様と Google で共有 https://cloud.google.com/security/incident-response/
  • 12. Cloud OnAir Google Cloud 開発環境 VPC Application Storage Google API 開発者アクセス Web リクエスト アクセス
  • 13. Cloud OnAir Google Cloud 開発環境 VPC Application Storage Google API 開発者アクセス Web リクエスト アクセス
  • 14. Cloud OnAir Identity and Access Management (IAM) 誰が どういう操作を 何に対して どういう条件下で Google アカウント Google グループ サービスアカウント 役割 組織 / フォルダ プロジェクト リソース IP 時間 制御 内容 具体例
  • 15. Cloud OnAir IAM - グループに対して役割を割り当てる ユーザ グループ 役割 リソース プロジェクト A プロジェクト B インスタンス管理者 BigQuery ユーザ 太郎 データサイエンティスト
  • 16. Cloud OnAir IAM - サービスアカウント ● アプリケーションやサーバのための ID ● サービスアカウント自体もリソース ○ 人が 「サービスアカウントとして実行」 することもできる ● サービスアカウントによって使われる キーは自動的に管理される ● ユーザがキーを作成し ダウンロードすることも可能 ○ その場合、キーの保存や ローテーションなど、 適切な管理を徹底する https://cloud.google.com/iam/docs/understanding-service-accounts
  • 17. Cloud OnAir IAM - 役割と権限 権限の集合 compute.instances.delete compute.instances.get compute.instances.list compute.instances.setMachineType compute.instances.start compute.instances.stop 役割 Instance Admin 命名規則 <サービス名>.<リソース>.<動詞> API との関係 基本的にはメソッドと 1:1
  • 18. Cloud OnAir IAM - 3 種類の役割 Primitive roles プロジェクト単位の権限セット 3 つのロール 1 サービス単位の権限セット サービスごとに数はいろいろ カスタムな権限セット ● オーナー ● 編集者 ● 閲覧者 ● <サービス名>管理者 ● <サービス名>編集者 ● <サービス名>閲覧者 など ● バケットの一覧は 取得できないが、特定の バケットには書き込める ● GCE インスタンスは 作れるが外部IP は 付けられない 基本の役割 事前定義された役割 カスタムの役割 最小権限の原則: より細かい役割で必要最低限の権限のみ付与する
  • 19. Cloud OnAir リソース階層と IAM ● 上位で設定されたものは下位に継承される ● 権限委譲できる単位でフォルダを分ける example.com A 部 B 部 チーム Eチーム Dチーム C Project HProject GProduct F VM バケット データセット 組織 フォルダ プロジェクト リソース
  • 20. Cloud OnAir Cloud IAM Conditions Private Beta ● アクセスする際の属性が該当した時のみ その役割が付与される ● Private Beta で設定可能な属性は下記 ○ リソース属性 ■ タイプ ● 例. google.cloud.compute.Instance ■ サービス ● 例. google.cloud.storage ■ 名前 ● 例. projects/_/buckets/exampleco-site-assets- ○ リクエスト属性 ■ 時間 ■ 送信元 IP アドレス https://cloud.google.com/iam/docs/conditions-overview
  • 22. Cloud OnAir Google Cloud 開発環境 VPC Application Storage Google API 開発者アクセス Web リクエスト アクセス
  • 23. Cloud OnAir セキュアなアプリケーション VPC Application Cloud Load Balancing Container Registry Cloud Armor Cloud Firewall Rules Identity-Aware Proxy Gateway Container Optimized OS Shielded VM CICP Third Party ID ● 通信の制限 ● WAF ● Identity ベース認証 ● サードパーティID 認証 ● セキュアなコンテナ用OS ● セキュアなVM ● コンテナイメージ脆弱性スキャン ● 信頼されたイメージのみデプロイ
  • 24. Cloud OnAir Firewall Rules ● ファイアウォール (許可 / 不許可ルール) ● ステートフル (コネクション単位) ● 柔軟なグルーピング方式: タグ ● 分散: ホストでの実施 → 輻輳ポイントが無い FWFW Compute Engine Compute Engine Compute Engine Red タグ Blue タグ  まめ知識:ファイアウォールの 設定を変更しても、すでに存在する 接続は切断されません。 Cloud Firewall Rules Source: ● IP レンジ ● サブネット ● サービスアカウント ● タグ Target: ● ネットワーク内 インスタンス ● サービスアカウント ● タグ プロトコル、ポート
  • 25. Cloud OnAir Shielded VMs Beta rootkit や bootkit なども防御する セキュリティコントロールにより堅牢化された  仮想マシン 特権の昇格、リモート攻撃、悪意ある内部者などの 高度な脅威から VM を保護 セキュアで測定可能なブート、仮想 TPM(Trusted Platform Module)、UEFI ファームウェア、および 完全性の監視により、ワークロードが信頼され、 検証可能であることを保証 改ざん防止のために証明書を使用し VM の完全性を 検証
  • 26. Cloud OnAir Container Optimized OS ● Google Compute Engine, Kubernetes Engine で利用可能なセキュア・軽量 OS ○ Chromium OS ベース ○ 最低限のプロセスのみ動作 ○ ブート時、ブートイメージの改ざんチェック ○ 大部分が read only もしくは ephemeral fs ○ コンテナは sandbox で動作 ○ AppArmor によるプロセス制限 ○ サービス listen ポートの最小化 ○ 自動 OS アップデート
  • 27. Cloud OnAir 2019 年 2 月 11 日にコンテナランタイム “runc” に、 ホスト上の root 権限を取得できてしまう脆弱性が 見つかったが、Container Optimized OS では この脆弱性による悪用は不可能だったため、 特別なアクションを必要としなかった。 コンテナランタイム “runc” の脆弱性 (CVE-2019-5736) “Ubuntu ノードのみが影響を受けます。 COS ノードは影響を受けません。 ” https://cloud.google.com/kubernetes-engine/docs/security-bulletins#february-11-2019-runc
  • 28. Cloud OnAir Container Registry 脆弱性スキャン Beta Container Registry 脆弱性ス キャンは、CI / CD パイプラインの早い段階で セキュリティ上の脆弱性を 特定 Ubuntu、Debian、Alpine のパッケージにある 脆弱性を特定 常時更新されるデータベースにより、スキャンが 常に最新であることを保証 検出可能な脆弱性を拡張するために、 既存のツールをプラグインすることが可能
  • 29. Cloud OnAir Binary Authorization Beta Binary Authorization は、 信頼されたコンテナ イメージのみを GKE 上に デプロイすることを 保証するセキュリティ コントロール機能 検証済みイメージのみが、ビルドリリース プロセスと統合可能 Kubernetes Engine にデプロイする前に シグネチャの検証を強制することが可能 開発中に、信頼された認証局により署名された イメージが必要となる
  • 30. Cloud OnAir App Engine Standard 環境や、 Cloud Load Balancing (HTTPS) に アクセスする際の認証・認可を 提供する。 認証情報を持たないユーザが アクセスした際は、Google アカウントのログイン画面が表示される。 当該ユーザが権限を持っていた場合に リソースへのアクセスを許可する。 Identity-Aware Proxy (IAP)
  • 31. Cloud OnAir 様々なサードパーティの Identity を 使った認証を、アプリケーションに簡単 に組み込むことができる。 広く使われている Firebase を ベースに構築されており、 二要素認証や多くの認証手法 (Social, OIDC, SAML 等) と Client / Server SDK を提供する。 CICP (Cloud Identity for Customers and Partners) Beta Customer and partner user accounts CICP Your application https://cloud.google.com/identity-cp/
  • 32. Cloud OnAir Cloud Armor ユースケース ● インフラに対する DDoS 攻撃対策 ● IP ブラックリスト/ホワイトリスト ● 地域 (Geo) ベースのアクセス制限 Beta ● SQLi / XSS 防御 Alpha ● カスタムルールの作成 Alpha ● Stackdriver による証跡 スケーラブルな DDoS 対策 / WAF https://cloud.google.com/armor/
  • 35. Cloud OnAir Google Cloud 開発環境 VPC Application Storage Google API 開発者アクセス Web リクエスト アクセス
  • 36. Cloud OnAir セキュアなデータインフラ VPC Compute Engine Cloud Storage Cloud Storage Unauthorized ProjectProduction Project Stackdriver Key Management Service CSEK VPC Service Controls ● 監査ログ ● VPC 内フローログ ● 暗号鍵の持ち込み ● 暗号鍵の管理 ● データの不正利用・漏洩防止 BigQuery
  • 37. Cloud OnAir VPC Service Controls Beta GCP サービス内の データ 境界線外の VPC 境界線内の VPC ネットワーク VM to GCP service GCP service to GCP service サービス境界線 ● 権限があってもアクセスできない サービス境界線を定義 ● サービス境界線内では通常の API アクセスが可能 ● 境界線をまたぐ API コールを止め、 不正なデータの移動を防ぐ ○ 認証情報漏洩時の不正利用防止 ○ 悪意ある内部ユーザのデータ 持ち出し防止 https://cloud.google.com/vpc-service-controls/
  • 38. Cloud OnAir Access Context Manager Beta GCP サービス内の データ 境界線内の VPC ネットワーク サービス境界線 細かなアクセス要件 (Access Level) を 設定することでサービス境界線を またいだアクセスを許可できる。 Access Levels は Access Context Manager で組織単位で設定可能 ● デバイス、OS ● IP アドレス ● IAM ユーザ、サービスアカウント Access Context Manager Access Policy Access Level Access Level AND AND... https://cloud.google.com/access-context-manager/docs/overview
  • 39. Cloud OnAir Google Cloud における暗号化 デフォルトで 全てのデータを暗号化 Google Cloud への接続は、 TLS 暗号化が必須 データはチャンクに 分割され、それぞれが 異なる暗号鍵で暗号化 データ暗号化キーは、 キー暗号化キーで ラップ 暗号化されたチャンクと、 ラップされた暗号化キーは、Google のストレージインフラ 全体に分散 データ暗号化キー Data Encryption Key (DEK) キー暗号化キー Key Encryption Key (KEK)
  • 40. Cloud OnAir キー暗号化キー (KEK) のオプション Customer-supplied encryption keys (CSEK) デフォルトの Google マネージドキー Customer-managed encryption keys (CMEK) Google による自動的な管理 きめ細やかなカスタマーによる管理 Key Management Service (KMS) 何も設定しない場合に用いられる。 鍵は Google 内部で自動的に管理され、 リソースへのアクセス時には自動的かつ 透過的に暗号化・復号化が行われる。 Cloud KMS を使って鍵を生成する。 この鍵はカスタマーによって管理 (生成、 ローテーション、破棄など ) できる。 プロジェクトから独立しているため、 鍵の管理者と利用者を分離することが 可���。 API コール時にカスタマーの所有する Base64 でエンコードされた AES-256 を 指定することができる。 指定された鍵は Google Cloud において メモリ上で使われ、ストレージに 書き込まれることはない。 https://cloud.google.com/security/encryption-at-rest/
  • 41. Cloud OnAir VPC Flow Logs ● VPC 内部の通信フローのログを取得 ○ Source / Destination IP, Port, IANA Protocol Number ○ 各種メトリクス ○ 外部への通信もログ可能 ■ VM - VM ■ VM - External ○ 5 秒間の統計値 ○ 有効にしてもパフォーマンスへ 影響なし https://cloud.google.com/vpc/docs/using-flow-logs
  • 42. Cloud OnAir 以下の監査ログが Stackdriver Logging で参照可能 Cloud Audit Logging Admin Activity Logs System Event Logs Data Access Logs Access Transparency Logs 概要 リソースの 作成/削除/変更 設定の変更 Compute Engine の システムベント 例. ライブマイグレーション リソース情報の取得 データの読み書き Google サポートや エンジニアのアクセス デフォルト オン オン オフ (除 BigQuery) オフ 保持期間 400 日 400 日 30 日 30 日 課金 無償 無償 有償 有償 利用可能 全ユーザ 全ユーザ 全ユーザ Enterprise サポート 4 以上の Development / Production roles
  • 43. Cloud OnAir 監査ログの管理と保存 Google Cloud Storage (GCS) で保存 ● 長期保存のため GCS へ エクスポート可能 ● バケットロック機能を使用して保持 ポリシーを設定し、削除や上書きを 防止 ● 保持ポリシーのロックによって不変 ストレージを作成可能 一度ロックすると元に戻せません https://cloud.google.com/storage/docs/bucket-lock 1 つのプロジェクトで集中管理 ● 複数のプロジェクトがある時、ログ を管理用のプロジェクトに 収集・監査 プロジェクト A プロジェクト B 管理者プロジェクト BigQuery Cloud Storage
  • 44. Cloud OnAir Access Transparency Logs お客様のデータに アクセスした手段や 理由を記録し表示 Google エンジニアによる GCP 上の顧客データに対する 操作の記録を 企業のユーザ様へ​ ほぼリアルタイムでアクセスできるよう API や UI を提供します Google Cloud では、契約上の義務を 履行するために必要な場合以外の 理由でお客様のデータに アクセスすることはありません。 https://cloud.google.com/access-transparency/
  • 47. Cloud OnAir まとめ Google Cloud セキュリティ アプリケーション データインフラ権限管理  グループを使って 役割を管理する  必要最小限の権限を 割り当てる あらゆるレイヤーにおいて、徹底的な防御がデフォルトで ON 責任共有モデル  セキュリティに関する  サービスを活用する  脆弱性の発見・対策  意図したアクセスに  限定する  データへのアクセスや  移動を適切に制限する  ポリシーに沿った 暗号化を選択する  ログを活用する Cloud IAM Container Registry Cloud Armor Cloud Firewall Rules Identity-Aware Proxy Stackdriver Key Management Service VPC Service Controls