Protected B のランディング ゾーンでカナダ政府のコンプライアンス要件に対応
Google Cloud Japan Team
※この投稿は米国時間 2022 年 4 月 7 日に、Google Cloud blog に投稿されたものの抄訳です。
クラウド環境を対象としたカナダ政府のセキュリティ ガイダンスには、クラウドのデータとワークロードを保護するための標準化されたセキュリティ管理手法の大枠が示されています。このセキュリティ ガイダンス、「Security Control Profile for Cloud-based GC Services(カナダ政府が実施するクラウドを基盤とした事業を対象としたセキュリティ管理の概要)」には、これとは別に公開されている「IT Security Risk Management: A Lifecycle Approach(IT セキュリティ リスクの管理: ライフサイクル アプローチ)(ITSG-33)」のセキュリティ管理の手法と概要も記載されています。
ITSG-33 では、Protected B / Medium Integrity / Medium Availability(PBMM)が、カナダ政府および国有企業の重要なコンプライアンス対応策とされています。
Google は、カナダ政府が求めるセキュリティの機能と手法を提供する取り組みの一環として、オープンソースの推奨事項をまとめました。推奨事項では、センシティブ データをクラウドに置けるように、Google Cloud の機能およびセキュリティ設定と、カナダ政府が定める Protected B に対する法的要件との対応付けを行っています。Google Cloud のランディング ゾーンを利用することで、大型プロジェクトで必要な、管理がしやすく、費用対効果に優れ、セキュリティが強化されたクラウド環境をカナダで利用できるようになります。
カナダの要件を満たすクラウド環境
Google Cloud の Protected B ランディング ゾーンは、さまざまな推奨事項を成文化したもので、Google Cloud プロジェクト、Identity Access Management(IAM)、ネットワーキング、命名規則、およびセキュリティ設定を、法的要件とベスト プラクティスに沿って確立することを目的としたものです。カナダの公共部門に携わる企業は、これをベースラインにすることで、柔軟性を高め、法的要件にスムーズに対応できるようになります。
Google Cloud は、基礎となる設定、ポリシー、フォルダ構造が付属書 4A - 概要 1(PBMM および ITSG-33)に適合するように正しく構成されることを目的とした Terraform ベースの Infrastructure as Code(IaC)テンプレートを GitHub で提供しています。
成文化された内在的セキュリティ対策
ランディング ゾーンは、デプロイが迅速に行え、管理がしやすく、組織でコストの低減を行える安全な環境を実現します。テンプレートを理解しやすいものにするために、Google は、特定のインフラストラクチャに依存しない HashiCorp のオープンソースの IaC ツール、Terraform を選択しました。Terraform の利用によって柔軟性が生まれ、組織内で DevSecOps の手法を採用できるようになります。IaC は修正、バージョン管理、変更管理、自動プロビジョニングも可能なので、セキュリティ上の基盤も整備されます。
テンプレートとランディング ゾーンの使用法は GitHub でご確認ください。
3 つのセキュリティ管理手法
ITSG-33 のドキュメントで述べられているセキュリティ管理手法は、実質的に 3 つのタイプに分類されます。
技術面のセキュリティ管理。ファイアウォールのような技術を用いて実装されます。
運用面のセキュリティ管理。手順書のような人的プロセスを用いて実装されます。
管理面のセキュリティ管理。IT セキュリティと IT セキュリティ リスクに注目したものです。
ランディング ゾーン テンプレートでは、コードで表現できる管理手法に焦点を当てています。取り扱う管理手法は、以下の主要なグループに分類されます。
アクセス制御(AC)
監査とアカウンタビリティ(AU)
構成管理(CM)
緊急時対応計画(CP)
識別と認証(IA)
リスク評価(RA)
システムおよびサービスの取得(SA)
システムと通信の保護(SC)
システムと情報の整合性(SI)
仕組み
ランディング ゾーンのデプロイ フェーズ
ランディング ゾーンのデプロイを行うには、組織管理者権限を持つユーザーが、Google Cloud(gcloud)CLI、JSON Query(jq)、および Terraform がインストールされたシェル ターミナルにアクセスする必要があります(Google Cloud の統合ターミナル Cloud Shell で行えます)。初期ブートストラップ スクリプトの一部として、プロジェクトが 1 つ作成されます。この Google Cloud プロジェクトでは、Infrastructure as Code の自動化機能を通じて、ランディング ゾーンのコア インフラストラクチャ、ネットワーク インフラストラクチャ、自動化パイプライン、コード リポジトリ、ロギングと保持された記録の集計機能、およびセキュリティ ポリシーの設定が行われます。設定が終了すると、IT と法的要件に関わるポリシーに従って、ワークロードのデプロイができるようになります。このとき、ランディング ゾーンのブートストラップで作られた Cloud Build と Cloud Source Repo(CICD)のパイプラインが利用される場合もあります。
Terraform のモジュールがいくつか使用されて、PBMM の要件を満たすために必要とされる管理手法が設定されます。
ランディング ゾーンのモジュール
ランディング ゾーンは、Google Cloud の組織ノード(デフォルト。下図参照)を使うか、フォルダをランディング ゾーンのルート ノードとして使うことで適用できるようになります。
組織構造
デプロイの方法
シェル環境に、前提条件として必要とされているものがインストールしておきます(Cloud Shell を使用可能)。
リポジトリのクローンを https://github.com/GoogleCloudPlatform/pbmm-on-gcp-onboarding で作成します。
リポジトリ内の README.MD に従って、該当する .auto.tfvars ファイルを更新します。
bash を使って、bootstrap.sh スクリプトを environments/bootstrap/ ディレクトリで実行します。スクリプトで、ブートストラップ リソースのデプロイを行おうとしているドメインとユーザーの入力が要求されます。
カナダでのサービス提供に関する取り組み
Google のランディング ゾーン テンプレートは、Canadian Centre for Cyber Security(CCCS)の定める要件を満たすために作成された既存の「30 日間のガードレール」を基礎にして拡張されたもので、これを利用することで、本番環境ワークロードに対してコンプライアンスに沿ったランディング エリアを迅速に確保できるようになります。デプロイの手順、および CCCS が定める要件への対応に関する詳細は、GitHub の Terraform ベースの Infrastructure-as-Code(IaC)テンプレートを参照してください。
参照:
- Google Cloud、公共部門カスタマー エンジニア Mike Craigen