📋

Google Cloudのトラブルシューティングツール「gcpdiag」を使って設定の検査をしてみた

2022/10/28に公開

はじめに

こんにちは、クラウドエースの中嶋です。
皆さんは、gcpdiag という OSS のツールがあるのはご存知ですか?
gcpdiag は、Google Cloud プロジェクトの設定の問題を検出してくれるツールです。

クラウド利用時に発生するセキュリティインシデントの多くは、クラウドサービスの構成・設定ミスが原因です
ですが、利用しているプロダクトやプロジェクトが多いとこのような構成・設定ミスに気付くのは、かなり大変です。

人手をかけず、自動で設定の問題を検出できたらどれだけ楽か…!
というわけで、今回は gcpdiag を使用して設定の問題を検出してみたいと思います。

gcpdiag とは

gcpdiag は、Google がお客様の問題に対応する中で遭遇してきた一般的な問題を検出するために作成されたものです。
オープンソース コミュニティの協力を得ながら Google が維持管理しています。
gcpdiag は、2022年6月頃に一般公開されました。まだ一般公開されてから日が浅いツールです。

以下ページに記載された一般的に問題となりやすい設定を検出することができます。
https://gcpdiag.dev/rules/index.html

gcpdiag の詳しい説明は、Google Cloud から公開されている以下記事に掲載されています。
ぜひ、併せてご確認ください。
https://cloud.google.com/blog/ja/topics/developers-practitioners/announcing-gcpdiag-open-source-troubleshooting-tool-google-cloud-platform

早速試す

Cloud Shell には gcpdiag がプリインストールされているようです。
インストールの手間も省けるので、今回は Cloud Shell で実行します。

ローカル環境でのインストール手順は、公式GitHubページに記載があります。
https://github.com/GoogleCloudPlatform/gcpdiag

実行コマンドは以下です。簡単ですね。
検査したいプロジェクトのプロジェクトIDを使用して実行します。

gcpdiag lint --project=PROJECT_ID

なにやら Docker イメージを取得してきているようで。
1

早速テストを実行してもらえたようです。
2

ほとんどが[OK]ですが、一部リソースでは[FAIL]が返されています。
出力結果にも表示されている以下URLからどんなルールを違反しているのか確認してみます。
https://gcpdiag.dev/rules/gcs/BP/2022_001/index.html

4

「Cloud Storage バケットの IAM ポリシーに均一なアクセスを使用することを推奨しています。」とあります。
均一なバケットレベルのアクセスが有効化されていないバケットがあるのでしょう。

以下コマンドで均一なバケットレベルのアクセスのステータスを確認してみます。

gsutil uniformbucketlevelaccess get gs://BUCKET_NAME

5

2つのバケットは均一なバケットレベルのアクセスが無効になっており、
1つのバケットは均一なバケットレベルのアクセスが有効になっていますね。
1つのバケットは均一なバケットレベルのアクセスが有効になっているのに[FAIL]が返されていますね。なぜでしょう。。

試しに明示的にすべてのバケットで均一なバケットレベルのアクセスを有効にします。

6

テストを再実行してみます。
???[FAIL]が返されています。意図しない動作ですね🤔

7

その後も、明確な原因が特定できなかったので gcpdiag のGitHubに Issue を作成しておきました。

まとめ

今回は、Google Cloud プロジェクトでの設定の問題を検出してくれるツール「gcpdiag」を試してみました。
gcpdiag は、Cloud Shell に プリインストールされていたり、コマンドもシンプルだったりで、使い心地はとても良かったです。

ただ、意図しない動作をした部分や検出できるルールの数が少ないのは、少し残念に思いました。
まだツールが公開されてから数ヶ月しか経ってないという部分もあるので、今後の gcpdiag 成長に期待したいと思っています!
gcpdiag がより使いやすく、便利なツールに進化することを願います🙏

Discussion