Google Cloud が推奨セキュリティチェックリストを公開しました
ウィスキー、シガー、パイプをこよなく愛する大栗です。
Google Cloud が推奨するセキュリティチェックリスト「Google Cloud minimum viable secure platform(GCMVSP)」が公開されました。60 のセキュリティコントロールが段階的にまとめられており、すぐに使える Terraform コードも提供されています。
- Make security simpler: Introducing the Google Cloud recommended security checklist
- Google Cloud minimum viable secure platform
- GoogleCloudPlatform/ociso-solutions
Google Cloud recommended security checklist とは
Google Cloud の Office of the CISO とセキュリティの専門家が策定した、クラウド環境のセキュリティベースラインを構築するためのチェックリストです。
Minimum Viable Secure Product(MVSP) の原則に基づいており、組織の規模やユースケースに依存しない、普遍的に有益なセキュリティコントロールが整理されています。
4 つの設計思想
チェックリストは以下の 4 つの思想に基づいて設計されています。
| 思想 | 説明 |
|---|---|
| シンプル | 特定のアーキテクチャに依存しない、普遍的に有益なアクション |
| 拡張性 | ベーシック / 中級 / 上級の 3 段階で組織の成長に合わせて適用 |
| 自動化可能性 | 組織ポリシー実装のサンプルコード(Terraform)が GitHub で公開されており、参考にしながらデプロイ可能 |
| AI 対応 | Agentic AI などの先進技術を導入するための基盤コンポーネントを提供 |
チェックリストの構成
実装レベル
チェックリストは 3 段階の実装レベルに分かれています。
| レベル | 対象 | 説明 |
|---|---|---|
| ベーシック | 全ての組織 | Google Cloud を利用する全ての組織に推奨される基本的なセキュリティ原則 |
| 中級 | 基礎を超えた組織 | 基本的なセキュリティを実装済みで、追加のコントロールが必要な組織向け |
| 上級 | 高度な制御が必要な組織 | より厳格なセキュリティコントロールが求められる組織向け |
必要性に応じて、ベーシックから始めて段階的に適用していくことが推奨されています。
6 つのドメイン
60 のセキュリティコントロールは、以下の 6 つのドメインに分類されています。
| ドメイン | 概要 |
|---|---|
| 認証と認可 | ID ソースの定義、MFA、サービスアカウントキー管理、IAM ロール設計 |
| 組織 | ドメイン制限共有、リソースロケーション制限、サービス利用制限 |
| インフラストラクチャ | VM シリアルポート無効化、Shielded VM、IPv6 制御 |
| データ保護 | Uniform bucket-level access、Cloud SQL パブリック IP 制限、暗号化戦略 |
| ネットワーク セキュリティ | デフォルトネットワーク作成禁止、Private Google Access、Cloud Armor |
| モニタリング、ロギング、アラート | セキュリティ速報の購読、Essential Contacts、請求異常の監視 |
各カテゴリのコントロール
各カテゴリの全コントロールをレベル別に紹介します。
認証と認可(Authentication and authorization)
| レベル | コントロール | 説明 |
|---|---|---|
| ベーシック | ID の信頼できる情報源を定義する | Cloud Identity、既存 IdP からの同期、または Workforce Identity Federation を使用 |
| ベーシック | 冗長な管理者アカウントを作成する | 単一の Super Admin によるロックアウトリスクを回避(最大 20 アカウント) |
| ベーシック | 安全なパスワード ポリシーを適用する | 全ユーザーに強力で一意のパスワードを要求。パスワードマネージャーの利用を推奨 |
| ベーシック | 職務に基づくロールを使用する | 事前定義ロールやカスタムロールで最小権限を実現 |
| ベーシック | 外部サービス アカウント キーの作成をブロックする | iam.disableServiceAccountKeyCreation 制約で長期認証情報を制限 |
| 中級 | グループ内の外部メンバーを制限する | 組織外のアカウントが Google Groups に追加されるのを防止 |
| 中級 | 1 日のセッションの長さを設定する | Google Cloud サービスのセッションを最低でも1日ごとに期限切れに設定 |
| 中級 | 管理対象外の一般ユーザー向けアカウントを修復する | 組織管理外の個人アカウントを統合または削除 |
| 中級 | 専用の管理者と複数の関係者による承認を適用する | スーパー管理者アカウントを日常業務から分離し、複数の承認を必須化 |
| 中級 | すべての Google アカウントと Cloud Identity ユーザーに対して多要素認証を有効にする | 全 Google アカウントと Cloud Identity ユーザーに多要素認証を有効化 |
| 中級 | デフォルトの作成者ロールを取り消す | プロジェクトおよび課金アカウントクリエーターロールのデフォルト付与を削除 |
| 中級 | Privileged Access Manager を使用する | 特権アクセスに PAM を使用し、一般アクセスはアクセスグループで管理 |
| 中級 | デフォルトのサービス アカウントに対する IAM ロールの自動付与を無効にする | デフォルトサービスアカウントへの自動ロール付与を無効化 |
| 中級 | サービス アカウント キーをローテーションする | サービスアカウントキーを 90 日以内に最低1回ローテーション |
| 中級 | Workload Identity 連携を使用する | CI/CD やマルチクラウド環境からの認証に WIF を使用し、SA キーを排除 |
| 上級 | 特権管理者アカウントの自己復元をブロックする | スーパー管理者アカウントの自己復旧を無効化(既存顧客は設定を確認) |
| 上級 | 機密性の高いユースケースのアイドル セッション タイムアウトを設定する | センシティブなユースケースのアイドルセッションタイムアウトを 15 分に設定 |
| 上級 | 管理者に対してハードウェア セキュリティ キーを適用する | スーパー管理者に物理セキュリティキー(ハードウェアトークン)を配布 |
| 上級 | SSO 後の検証を有効にする | 外部 IdP 使用時に SSO 後の追加認証レイヤーを有効化 |
| 上級 | プリンシパル アクセス境界ポリシーを有効にする | アクセス境界を定義し、権限昇格攻撃を防止 |
組織(Organization)
| レベル | コントロール | 説明 |
|---|---|---|
| 中級 | 承認済みプリンシパルを制限する | ドメイン制限共有(iam.allowedPolicyMemberDomains)で組織内 ID のみを IAM に許可 |
| 上級 | リソースのロケーションを制限する | gcp.resourceLocations 制約で承認済みリージョンのみにリソースを作成・保存 |
| 上級 | リソース サービスの使用を制限する | gcp.restrictServiceUsage 制約で承認済みサービスのみを使用可能に制限 |
インフラストラクチャ(Infrastructure)
| レベル | コントロール | 説明 |
|---|---|---|
| ベーシック | VM シリアルポート アクセスを無効にする | compute.disableSerialPortAccess 制約でシリアルポートへの不正アクセスを防止 |
| ベーシック | IPv6 を無効にする(必要な場合を除く) | IPv6 外部サブネットを無効化して攻撃対象領域を削減 |
| ベーシック | Shielded VM 機能を有効にする | vTPM とインテグリティ監視を有効化してブートレベルの改ざんを検出 |
| ベーシック | GKE Autopilot を使用する | セキュリティ機能が組み込まれた Autopilot クラスターを使用 |
| ベーシック | GKE クラスタとノードに最小権限のアカウントを使用する | GKE クラスターとノードに最小権限のサービスアカウントを設定 |
| ベーシック | コントロール プレーンへのアクセスを制限する | DNS ベースエンドポイントでコントロールプレーンへのアクセスを制限 |
| ベーシック | Container-Optimized OS を使用する | 強化されたマネージド OS である COS を使用 |
| 中級 | VM に OS Login を適用する | Compute Engine への SSH アクセスに OS Login と 2 段階認証を適用 |
| 中級 | VM の外部 IP アドレスを制限する | 不要な Compute Engine インスタンスへのパブリック IP 付与を防止 |
| 中級 | Workload Identity Federation for GKE を使用する | GKE から Google Cloud API への認証に WIF を使用 |
| 中級 | 限定公開 GKE ノードを使用する | ノードにプライベート IP を使用してインターネット露出を削減 |
| 中級 | RBAC 向け Google グループを使用する | GKE のロールベースアクセス制御に Google Groups を使用 |
| 上級 | GKE Sandbox を有効にする | gVisor によるサンドボックスで信頼できないコードのカーネルアクセスを制限 |
| 上級 | Binary Authorization を適用する | 信頼済みコンテナイメージのみが GKE にデプロイされるよう強制 |
| 上級 | Confidential Google Kubernetes Engine ノードを使用する | Confidential GKE Nodes で実行中のデータを暗号化 |
| 上級 | GKE でカスタム認証局を実行する | 独自の認証局で証明書とキーを管理 |
| 上級 | Cloud KMS を使用して Kubernetes Secret を暗号化する | Cloud KMS マネージドキーで Kubernetes Secrets を暗号化 |
| 上級 | ノード ブートディスクに CMEK を使用する | カスタマー管理の暗号化キーでノードブートディスクを暗号化 |
データ保護(Data protection)
| レベル | コントロール | 説明 |
|---|---|---|
| ベーシック | 均一なバケットレベルのアクセスの使用 | ACL を無効化し IAM を唯一の権限管理に統一 |
| ベーシック | Cloud SQL のパブリック IP アドレスを制限する | sql.restrictPublicIp 制約でデータベースのインターネット直接公開を防止 |
| 中級 | Cloud Storage バケットへのパブリック アクセスをブロックする | allUsers / allAuthenticatedUsers への ACL・IAM 付与を組織全体でブロック |
| 中級 | BigQuery データセットへのアクセス権を確認する | 意図せず公開されている BigQuery データセットがないかを確認 |
| 上級 | マネージド暗号化戦略を作成する | Cloud KMS with Autokey や Cloud EKM で独自の暗号鍵を管理 |
ネットワーク セキュリティ(Network security)
| レベル | コントロール | 説明 |
|---|---|---|
| ベーシック | デフォルト ネットワークの作成をブロックする | compute.skipDefaultNetworkCreation で自動作成される VPC を抑制 |
| ベーシック | 限定公開の Google アクセスを有効にする | 外部 IP なしで Google Cloud サービスにアクセス |
| 中級 | Cloud Armor ポリシーを使用する | L3〜L7 のネットワーク保護を外部公開アプリに適用 |
| 中級 | アウトバウンド トラフィックを制限する | デフォルト全許可ではなく、必要な宛先のみ許可するポリシー |
| 中級 | SSH ポートと RDP ポートへのインバウンド アクセスを制限する | IAP 経由のアクセスに制限し、ブルートフォース攻撃を防止 |
| 上級 | VPC Service Controls を有効にする | データ漏洩防止の追加レイヤーとして分離境界を設定 |
モニタリング、ロギング、アラート(Monitoring, logging, and alerting)
| レベル | コントロール | 説明 |
|---|---|---|
| ベーシック | セキュリティに関する公開情報を購読する | 脆弱性情報と緩和策の通知を受信 |
| ベーシック | 重要な連絡先グループを構成する | 個人メールではなくグループエイリアスで重要通知を受信 |
| ベーシック | 請求の異常をモニタリングする | 急激な請求額の増加はセキュリティ侵害の指標 |
| 中級 | ファイアウォール ルール ロギングを有効にする | ファイアウォールルールの効果を監査・検証 |
| 中級 | Cloud Identity から監査ログを共有する | ユーザーログインイベント等を Google Cloud に集約 |
| 上級 | アクセスの透明性ログを有効にする | Google サポートスタッフによるアカウントアクセスを記録・監査 |
| 上級 | 長期保存のためにログをログシンクにエクスポートする | PCI・HIPAA 等のコンプライアンス要件に対応する長期ログ保存を設定 |
やってみる
チェックリストに含まれる組織ポリシーを Terraform で一括デプロイしてみます。サンプルのコードでは以下のポリシーが設定されます。
| リソース名 | ポリシー | 内容 |
|---|---|---|
| require_os_login | compute.managed.requireOsLogin | OS Login を強制 |
| vm_external_ip_access | compute.vmExternalIpAccess | VM への外部 IP 付与を全拒否 |
| skip_default_network_creation | compute.skipDefaultNetworkCreation | デフォルトネットワーク自動作成を無効化 |
| disable_serial_port_access | compute.disableSerialPortAccess | シリアルポートアクセスを無効化 |
対象のフォルダのポリシーは以下のように非アクティブになっています。

前提条件
- Google Cloud の組織(Organization)が存在すること
- 対象の組織、フォルダ、またはプロジェクトに対して Organization Policy Admin ロールを持つユーザーであること
- gcloud CLI、Terraform、Git CLI がインストール済みであること
$ gcloud --version
Google Cloud SDK 560.0.0
bq 2.1.29
core 2026.03.09
gcloud-crc32c 1.0.0
gsutil 5.36
$ terraform --version
Terraform v1.14.7
on darwin_arm64
+ provider registry.terraform.io/hashicorp/google v7.22.0
+ provider registry.terraform.io/hashicorp/google-beta v7.22.0
+ provider registry.terraform.io/hashicorp/local v2.5.2
+ provider registry.terraform.io/hashicorp/null v3.2.3
+ provider registry.terraform.io/hashicorp/time v0.12.1
現在の対象のポリシーは
リポジトリのクローン
まずは GitHub リポジトリをクローンします。
$ git clone https://github.com/GoogleCloudPlatform/ociso-solutions.git
$ cd ociso-solutions/gcmvsp
ファイル構成の確認
リポジトリの構成は以下のようになっています。
gcmvsp/
├── README.md
├── main.tf # 組織ポリシーの定義
├── providers.tf # プロバイダ設定
├── variables.tf # 変数定義
└── versions.tf # Terraform バージョン制約
変数ファイルの作成
terraform.tfvars ファイルを作成し、適用先のリソース階層を指定します。
$ cat terraform.tfvars
parent_id = "folders/123456789"
parent_id には組織、フォルダ、またはプロジェクトの ID を指定します。形式は以下の通りです。
| リソース | 形式 |
|---|---|
| 組織 | organizations/123456789 |
| フォルダ | folders/123456789 |
| プロジェクト | projects/project-id |
Google Cloud への設定であることを示すため providers.tf も記述しておきます。
provider "google" {
user_project_override = true
billing_project = "PROJECT_ID"
}
provider "google-beta" {
user_project_override = true
billing_project = "PROJECT_ID"
}
既存環境への適用時の注意
公式 README にも記載されていますが、既存のリソースが存在する環境に組織ポリシーを適用する場合は注意が必要です。以下の方法でリスクを軽減できます。
- Policy Simulator で組織ポリシーの変更をテスト
- ドライランモード でポリシーを作成して影響を事前確認
- Policy Simulator やドライランに対応していないレガシーポリシーは、重要度の低いプロジェクトやフォルダから段階的に適用
Terraform の実行
$ terraform init
$ terraform plan
$ terraform apply
terraform plan で適用される組織ポリシーの一覧を確認し、問題がなければ terraform apply で適用します。
適用後に組織ポリシーを確認すると対象のポリシーがアクティブになっています。

新規の組織であれば、リソースを作成する前にポリシーを適用することで、ガードレールとして機能させることができます。
さいごに
Google Cloud が推奨セキュリティチェックリスト(GCMVSP)を公開しました。
クラウドセキュリティにおいて「何から始めればよいか」は多くの組織が抱える課題ですが、このチェックリストはその疑問に対する明確な回答を提供しています。60 のコントロールが 3 段階のレベルに分類されているため、組織の成熟度に合わせて段階的に実装を進められる点が実用的です。
チェックリストだけでなく Terraform コードが GitHub でサンプルコードが提供されているので、必要なコントロールを IaC で組織に適用可能になり、すぐにインフラにコードとして適用できるため、セキュリティ対策の実装スピードが大幅に向上します。
State of Cloud Security Research では、約 80% の組織が過去 1 年間にクラウド環境でセキュリティインシデントを経験し、49% が 20 以上のセキュリティツールを使っているという結果が出ています。ツールの乱立による複雑さが課題になっている中で、CSP 自身が提供する体系的なチェックリストは、セキュリティの出発点として非常に心強いものだと思います。
Google Cloud を利用されている方は、まず ベーシックレベルのコントロールから確認してみてはいかがでしょうか。







