CyberFix Note
防御・ハードニング

クラウドの設定ミスを仕組みで防ぐ。CSPMによる継続監視とIaCスキャン、ポリシーアズコードで公開バケットや全開放のセキュリティグループを作らせない設計

対象の目安: クラウド基盤の運用担当、SRE、情報セキュリティ担当 / 実務

アオイ・防御・運用担当
・ 約20分で読めます
クラウドの設定ミスを仕組みで防ぐ。CSPMによる継続監視とIaCスキャン、ポリシーアズコードで公開バケットや全開放のセキュリティグループを作らせない設計

クラウドの事故報告を読み比べると、侵入の入口が脆弱性の悪用ではなく設定だったという例が目立ちます。誰でも読めるようになっていたストレージ、管理用のポートを世界中へ開けたままのセキュリティグループ、必要以上の権限を持ったままのアクセスキー。どれもクラウド事業者の基盤の欠陥ではなく、利用者が決めた設定の結果です。

利用者と事業者の責任の境目は、次の記事で整理しています。本記事はその続きとして、利用者側の責任範囲で起きる設定ミスを、担当者の注意力ではなく仕組みで減らす設計を扱います。

あわせて読みたい

クラウドの責任共有モデルとガバナンス。IaaS/PaaS/SaaSで変わる責任範囲と設定ミスの所在

対象は、AWS、Azure、Google Cloudのいずれかでアカウントやサブスクリプションを運用している基盤の担当者と、情報セキュリティ担当です。設定ミスを「作らせない」「見つける」「直す」の3層に分け、それぞれに置く仕組みと、最小構成から始める導入の順序を示します。

設定ミスの5類型と3層の対策

最初に、防ぎたい設定ミスと、それぞれに効く仕組みを並べます。本記事で扱うのは次の5類型です。

類型典型的な状態作らせない(予防)見つける(検知)直す(是正)
公開ストレージバケットやコンテナが匿名で読めるアカウント単位の公開ブロック、IaCスキャンCSPMの公開設定の検出公開の停止と、アクセスログでの閲覧有無の確認
全開放のインバウンド0.0.0.0/0や::/0から管理用ポートへ到達できるIaCスキャン、組織ポリシーでの拒否CSPMのネットワーク設定の検出送信元の限定、踏み台やマネージドの接続手段への置き換え
過剰なIAMワイルドカードの権限、長期間使われていないキーIaCスキャン、権限境界CSPMとアクセス分析の機能権限の縮小、キーの無効化と棚卸し
無効なログ管理操作の記録が一部のリージョンや組織で取れていない組織単位でのログ設定の強制CSPMのログ設定の検出有効化と保管先の集約
暗号化の未設定保存時の暗号化やTLSの強制が設定されていないIaCスキャン、既定の暗号化設定CSPMの暗号化設定の検出暗号化の有効化、鍵管理の方針の適用

3層はどれか1つで足りるものではありません。予防の層を抜けた変更を検知の層が拾い、検知した結果を是正の層が期限つきで閉じる、という流れで初めて設定ミスの残存期間が短くなります。

設定ミスが生まれる3つの経路

仕組みを置く場所を決めるには、設定ミスがどこから入り込むかを知っておく必要があります。現場で多いのは次の3つの経路です。

1つ目は、コンソール操作の属人化です。管理画面から手で作ったリソースは、誰が何の意図でその値にしたのかが記録に残りにくく、レビューも通りません。作った本人が異動すると、公開設定やポートの開放が意図したものかどうかを誰も判断できなくなります。

2つ目は、環境のコピーです。検証環境の設定を本番へ複製する、別のプロジェクトのテンプレートを流用するといった作業で、検証の都合で緩めた設定がそのまま運ばれます。IaCを使っていても、緩い設定を含むモジュールを再利用すれば同じ問題が複数の環境へ広がります。

3つ目は、緊急対応の戻し忘れです。障害の切り分けのために一時的にポートを開ける、調査のために広い権限を付ける。対応が終わった時点で戻す手順が決まっていないと、一時的な変更が恒久的な設定になります。

3つとも、個人の注意だけでは防ぎきれません。コンソール操作にはデプロイ後の監視、環境のコピーにはデプロイ前のスキャン、戻し忘れには期限つきの例外管理を当てる、という対応関係で考えると、仕組みの置き場所が決まります。

デプロイ前に止めるIaCスキャン

IaC(Infrastructure as Code)でリソースを定義している場合、設定ミスはコードの段階で見つけられます。修正のコストが最も小さいのはこの段階です。

OWASPのInfrastructure as Code Security Cheat Sheetは、IaCの安全対策を開発と配布、デプロイ、実行時の段階に分けて整理しています。開発段階では、IDEのプラグインによる早期の検出、脅威モデリング、シークレットの管理、バージョン管理、最小権限、静的解析、依存関係の確認、コンテナイメージのスキャン、CI/CDへの組み込み、成果物への署名が挙がっています。デプロイ段階ではインベントリの管理と動的解析、実行時には変更ではなく作り直しで更新するイミュータブルな運用、ログ、監視、実行時の脅威検知が並びます。

OWASP Infrastructure as Code Security Cheat Sheetは、IDEプラグインの例としてTFLintやCheckov、シークレット検出の例としてtruffleHogやgit-secrets、GitGuardian、コンテナイメージのスキャンの例としてTrivyやClairなどを挙げています。デプロイ段階では、リソースへのタグ付けと記録によって、管理から外れたリソースが残るのを防ぐよう勧めています。

チェックシートの観点を、本記事の5類型に当てはめると、CIで見る項目は次のようになります。

観点CIで確認する内容
静的解析ストレージの公開設定、0.0.0.0/0や::/0を送信元にしたインバウンドの規則、保存時の暗号化、ログ設定の有無
最小権限ポリシー文書の中のワイルドカードのアクションとリソース、管理者相当のロールの付与
シークレットの管理コードや変数ファイルに書かれたアクセスキー、パスワード、接続文字列
インベントリの管理所有者や用途を示すタグの付与。持ち主の分からないリソースを作らせない
CI/CDへの組み込みスキャンの結果をプルリクエストに表示し、重大な項目はマージを止める

導入初期は、検出を表示するだけでマージは止めない設定から始めます。既存のコードに大量の指摘が出ると、担当者がスキャン自体を無効化する方向へ流れるためです。新しく追加するコードだけをブロックの対象にし、既存の指摘は是正の計画に載せて件数を減らしていきます。

シークレットの扱いは設定ミスと同じくらい事故につながりやすい部分です。保管と配布の方法は次の記事で扱っています。

あわせて読みたい

シークレット管理の実務。APIキー・認証情報をハードコードせず、Vaultやマネージドサービスで守りローテーションする

注意

IaCスキャンが見ているのはコードだけです。コンソールやCLIで直接変更した設定、IaCの管理外で作られたリソース、デプロイ後に書き換えられた値は対象に入りません。そうした変更のうち基準に反する設定は、次に述べるデプロイ後の監視で拾います。基準に反しない手動変更も含めてコードと実環境の差分(ドリフト)を把握するには、IaCツールのドリフト検出を別に組み合わせます。

CIへのセキュリティ検査の組み込み全般は、次の記事で整理しています。

あわせて読みたい

DevSecOps入門。CI/CDにセキュリティを組み込むSAST・DAST・SCA・シークレットスキャン

デプロイ後に見つけるCSPM

CSPM(Cloud Security Posture Management)は、稼働中のクラウド環境の設定を継続的に評価し、基準から外れた状態を検出する仕組みです。IaCを使っていない環境や、手作業の変更が混じる環境でも効くため、3層の中で最初に整えると効果が見えやすい層です。

判定の基準には、自社で項目を一から書き起こすのではなく、CISベンチマークのような公開された基準を採用することを勧めます。理由は3つあります。1つ目は、多くの組織が同じ基準で評価しているため、監査や取引先への説明で共通の言葉が使えることです。2つ目は、版が管理され、各項目に評価手順と是正手順が付いていることです。3つ目は、主要なクラウドの標準機能が、CISベンチマークに沿った評価をすでに備えていることです。自社固有の要件は、この基準の上に追加する形にします。

クラウド標準で使える評価の機能執筆時点の確認事項
AWSAWS Security Hub CSPMのセキュリティ標準、AWS ConfigSecurity Hub CSPMはCIS AWS Foundations Benchmark v5.0.0を標準としてサポートし、2025年10月に提供が告知されています
AzureMicrosoft Defender for CloudのFoundational CSPM(無料)Microsoft Cloud Security Benchmarkに基づく推奨事項とセキュアスコアを提供します。AWSやGoogle Cloudの環境も接続できます
Google CloudSecurity Command CenterのSecurity Health AnalyticsやCompliance Managerどちらが誤設定の検出を担うかは、階層と有効化の時期で変わります

AWSのドキュメントによると、Security Hub CSPMはCIS AWS Foundations Benchmark v5.0.0のLevel 1とLevel 2でCIS Security Software Certificationを受けており、複数の版の標準を同時に有効化できます。

Azureでは、Microsoft LearnがFoundational CSPMについて、2026年10月27日から新しいAzureサブスクリプションでは既定で有効にならず、利用者が有効化を選ぶ方式に変わると案内しています。無料での提供は続き、すでに有効なサブスクリプションはそのまま維持されます。これから作るサブスクリプションは、作成の手順に有効化を組み込んでおく必要があります。

Google Cloudでは、Security Health Analyticsが公開されたバケットを示すPUBLIC_BUCKET_ACLや、広く開いたファイアウォール規則を示すOPEN_FIREWALLといった検出項目を持ち、CISがその項目とCIS Google Cloud Foundations Benchmarkの対応づけを認証しています。一方で、Security Command CenterのStandard階層を新しく有効化した組織ではSecurity Health Analyticsは使えず、Compliance Managerで誤設定を評価するよう案内されています。自組織でどちらが動いているかを、管理画面で確かめてから運用を設計します。

メモ

AWSのS3は、2023年4月から新しく作るバケットでS3ブロックパブリックアクセスを有効にし、ACLを無効にした状態を既定にしています。この変更は既存のバケットには適用されていません。古いアカウントほど、既定の変更より前に作られたバケットが残っている可能性があるため、棚卸しの対象から外さないようにします。

検知の結果は、アカウントごとに個別に見るのではなく、組織の管理用アカウントやテナントへ集約します。アカウントが増えるたびに見る場所が増える構成では、新しいアカウントが監視の対象から漏れます。組織単位で新規のアカウントやサブスクリプションに自動で監視を適用する設定を、最初に確認しておきます。

ポリシーアズコードで例外を明文化する

予防の層のもう1つの柱が、組織単位のガードレールです。個々のリソースのコードを検査するのではなく、組織全体で「この設定は作れない」と決めて、クラウドのAPIの段階で拒否します。

代表的な仕組みは、AWS OrganizationsのサービスコントロールポリシーとS3のアカウント単位のブロックパブリックアクセス、Azure Policyの拒否の効果、Google Cloudの組織ポリシーです。Google Cloudには、Cloud Storageの公開アクセスを防ぐstorage.publicAccessPreventionという制約があります。こうしたガードレールもコードとして管理し、変更はプルリクエストを通して行います。汎用のポリシーエンジンであるOpen Policy Agent(OPA)を使って、IaCの計画結果に独自の規則を当てる構成もあります。

ガードレールを置くと、正当な理由で例外が必要になる場面が必ず出ます。静的サイトの配信用に公開するバケット、取引先との接続のために特定の送信元へ開けるポートなどです。ここで例外を口頭やチャットで承認すると、理由と期限が記録に残らず、戻し忘れと同じ経路で穴が残ります。例外もコードとして書き、次の項目を必須にします。

  • 対象のリソースの識別子と、除外する規則の名前
  • 例外が必要な業務上の理由
  • 責任者の名前または所属
  • 有効期限。変更のない期間も定期実行の検査で期限切れを検出し、CIを失敗させて責任者へ通知する
  • 承認者。プルリクエストのレビューで、例外のファイルだけはセキュリティ担当の承認を必須にする

期限つきの例外は、緊急対応の戻し忘れへの対策にもなります。障害対応で一時的にポートを開ける場合も、例外のファイルに期限を書いてから開ける運用にすると、期限の到来が戻す作業の起点になります。

過剰なIAMの問題は、ガードレールだけでは解決しません。権限の設計の考え方は、次の記事にまとめています。

あわせて読みたい

最小権限の原則(Least Privilege)。なぜ権限を絞ることが最強の防御の一つなのか

NIST SP 800-210は、クラウドシステムのアクセス制御の考え方をIaaS、PaaS、SaaSのサービスモデルごとに整理した文書です。ガードレールで何を拒否するかを決める際に、自組織の方針を外部の枠組みと照らし合わせる材料になります。

最小構成から始める導入順序

3層をまとめて整えようとすると、検出の量と調整の手間で止まります。リスクの大きい順に、次の順序で進めます。

  1. 1

    全アカウントの公開ストレージと全開放のセキュリティグループを棚卸しする

    組織配下のすべてのアカウント、サブスクリプション、プロジェクトを対象に、匿名で読めるストレージと、0.0.0.0/0やIPv6の::/0から到達できるインバウンドの規則を洗い出します。管理用のポート(SSHやRDP)とデータベースのポートを優先します。意図した公開かどうかを持ち主に確認し、意図しないものは閉じます。持ち主が分からないリソースが見つかった場合は、タグ付けの規則が機能していない兆候として記録します。

  2. 2

    公開を拒否するガードレールを組織単位で置く

    棚卸しで意図した公開だけが残った状態で、アカウント単位の公開ブロックや組織ポリシーを有効にします。S3ではアカウント単位とバケット単位の設定のうち最も制限の強い組み合わせが適用されるため、アカウント単位で公開をブロックすると、例外を記録してもそのアカウント内のバケットは公開できません。意図した公開が残るアカウントでは、公開用のバケットを別のアカウントへ分けるか、バケット単位の設定で管理するかを先に決め、そのうえで例外として記録します。順序を逆にすると、稼働中のサイトが止まる恐れがあります。

  3. 3

    管理操作のログを全体で有効にする

    AWSのCloudTrail、Azureのアクティビティログ、Google CloudのCloud Audit Logsの取得範囲と保管先を確認し、組織単位で集約します。CloudTrailのイベント履歴は過去90日分の管理イベントを参照できますが、それより長く継続して残すには証跡かCloudTrail Lakeのイベントデータストアの作成が必要です。Google Cloudのデータアクセスの監査ログは、BigQueryを除いて既定では無効です。設定ミスが見つかったときに、いつ誰が変えたのかを後から確認できる状態を先に作ります。

    あわせて、ストレージのオブジェクトの読み取りを記録するログも確認します。管理操作のログだけでは、公開中に外部から読まれたかどうかは分かりません。CloudTrailのデータイベントは既定では記録されず、Cloud StorageのCloud Audit Logsは公開オブジェクトへのアクセスを記録しないため、Google Cloudでは使用状況ログ(usage logs)の利用を検討します。何が記録の対象になるかはサービスごとに異なるため、機密性の高いデータを置くストレージから順に確かめます。

  4. 4

    CSPMを有効にしてベースラインを決める

    標準機能のCSPMを有効にし、CISベンチマークまたは各クラウドの推奨ベンチマークを評価の基準にします。最初からすべての項目を追わず、5類型に該当する項目を重大度の高い順に対処の対象とします。

  5. 5

    IaCスキャンをCIへ組み込む

    表示のみの設定で始め、新しく追加するコードから順にブロックの対象へ切り替えます。既存の指摘は是正の計画に載せ、件数の推移を追います。

  6. 6

    例外の管理をコードへ移す

    棚卸しとガードレールの段階で記録した例外を、期限と責任者つきのファイルへ移し、期限切れを検出する仕組みを入れます。

ログの集約と保管の設計は、次の記事で扱っています。

あわせて読みたい

ログ管理の基本。何を・どこまで・どれだけ残すか

検知から是正までの運用

CSPMは、検出結果を誰かが閉じるまでが仕事です。検出が溜まり続ける状態は、監視していないのと変わりません。運用を始める前に次を決めておきます。

是正の運用で先に決めておくこと

  • 検出の担当者をアカウントやプロジェクトの持ち主に割り当てる方法。タグの所有者情報から自動で振り分けるか
  • 重大度ごとの是正の期限。公開ストレージと全開放のインバウンドは最優先にする
  • 期限を過ぎた検出の上長やセキュリティ担当への引き上げの経路
  • 自動是正の範囲。業務への影響と戻し方を事前に確かめた操作に限る。公開の停止も配信中のサイトを止めうるため、対象と依存関係を確認してから自動化し、それ以外は人が判断する
  • 公開ストレージを閉じたあとに、アクセスログで外部からの閲覧の痕跡を調べる手順と、個人データが含まれていた場合の報告の判断者
  • 検出の件数、平均の是正日数、期限切れの件数、例外の件数を定期的に報告する先

自動是正は便利ですが、意図した公開を止めて業務に影響を出すことがあります。例外の記録が整ってから、対象を絞って有効にします。

公開ストレージが見つかった場合は、閉じて終わりにせず、公開されていた期間と、その間の外部からの読み取りの痕跡を調べます。読み取りを記録するログが取れていなければ調べようがないため、ログの有効化を導入の早い段階に置いています。ただし、S3のサーバーアクセスログのようにベストエフォートで配信されるログもあり、記録が見つからないことを閲覧がなかった証拠として扱うことはできません。個人データが含まれていた場合は、漏えいのおそれとして社内の報告の手順に乗せ、法務や個人情報保護の担当者とともに、個人情報保護委員会への報告と本人への通知が必要な事態に当たるかを速やかに確認します。

要求の出どころを確認する

3層の設計は、社内の判断だけで決めるより、外部の要求に紐づけて説明したほうが予算と人手を確保しやすくなります。参照先を整理しておきます。

AWS Well-Architected FrameworkのSecurity Pillarは、設計原則としてセキュリティのベストプラクティスの自動化や追跡可能性の維持を挙げています。Azure Well-Architected Frameworkのセキュリティの柱と、Google Cloudのセキュリティのベストプラクティスのページも、それぞれのクラウドでの推奨事項をまとめています。IaCとCSPMの導入を、クラウド事業者自身の推奨に沿った取り組みとして説明できます。

国内では、ISMAP(政府情報システムのためのセキュリティ評価制度)が、政府機関が調達するクラウドサービスのセキュリティを評価し、登録する制度として運用されています。ISMAPはクラウドサービスの提供者側を評価する制度ですが、政府機関や自治体を顧客に持つ事業者では、利用者としての設定管理も取引先から確認される場面があります。

米国では、CISAのSCuBA(Secure Cloud Business Applications)プロジェクトが、Microsoft 365とGoogle Workspaceの安全な構成の基準(Secure Configuration Baselines)と、それに沿っているかを確認する無償のツールとしてScubaGearとScubaGogglesを公開しています。SCuBAのページは、連邦機関向けの拘束的運用指令であるBOD 25-01とも関連づけられています。IaaSではなくSaaSの設定が対象ですが、基準を決めてツールで継続的に確認するという考え方は、本記事の3層と同じです。

コンテナとKubernetesへの広げ方

クラウドの設定を3層で管理できるようになったら、同じ考え方をコンテナとKubernetesのマニフェストへ広げます。OWASPのチェックシートもコンテナイメージのスキャンをIaCの安全対策の一部に含めています。特権コンテナの禁止やネットワークポリシーの既定の拒否など、Kubernetes固有の項目は次の記事で整理しています。

あわせて読みたい

Kubernetesクラスタのセキュリティ設定の基礎

あわせて読みたい

コンテナ(Docker)セキュリティの基礎と実務で効く守り方

まとめ

クラウドの設定ミスは、担当者の注意力に頼るほど再発します。作らせない層にIaCスキャンと組織単位のガードレール、見つける層にCISベンチマークを基準にしたCSPM、直す層に期限と責任者を持つ是正と例外の管理を置くと、設定ミスが残る期間を短くできます。

最初の一歩は、全アカウントの公開ストレージと全開放のセキュリティグループの棚卸しです。ここで見つかった意図しない公開を閉じ、意図した公開を例外として記録するだけでも、次に置くガードレールとCSPMの土台になります。記事の内容は執筆時点(2026年9月23日)に確認した各クラウドの公式ドキュメントとガイドラインに基づきます。機能名や提供の条件は更新されるため、設計の際は各クラウドの最新のドキュメントを確認してください。

出典・参考

この記事をシェア

関連する記事

防御・ハードニング

最小権限の原則(Least Privilege)。なぜ権限を絞ることが最強の防御の一つなのか

必要最小限の権限だけを与える「最小権限の原則」を、なぜ効くのか(侵害時の被害局所化・横展開の抑止)という原理から噛み砕き、過剰権限の典型例とRBAC・ジャストインタイム権限・定期棚卸しといった実践、ゼロトラストとの関係までを実務目線で整理します。