gcpdiagをご存知でしょうか?
Google CloudのProjectに対し、静的解析をかけてリスクのある設定を警告してくれる優れものです。
特別な準備は不要で、お手軽に利用できます。
もっとも簡単なのは、Cloud Consoleから自身のProjectに対して実施する方法です。ユーザー側で何もすることなく、1行コマンドを叩くだけです。
さらに、無料で利用可能です!
こちらは、手元にあったProjectでかけてみた結果です。
$ gcpdiag lint --project=my-project --within-days=365
gcpdiag 🩺 0.55
Starting lint inspection (project: my-project)...
🔎 gcs/BP/2022_001: Buckets are using uniform access
- my-project/artifacts.my-project.appspot.com [ FAIL ]
it is recommend to use uniform access on your bucket
- my-project/my-project_cloudbuild [FAIL]
it is recommend to use uniform access on your bucket
- my-project/hoge [ OK ]
- my-project/fuga [ OK ]
Google recommends using uniform access for a Cloud Storage bucket IAM policy
https://cloud.google.com/storage/docs/access-
control#choose_between_uniform_and_fine-grained_access
https://gcpdiag.dev/rules/gcs/BP/2022_001
🔎 iam/SEC/2021_001: No service accounts have the Owner role
- my-project [ OK ]
Rules summary: 65 skipped, 1 ok, 1 failed
gcpdiagとは?
オープンソースのGoogle Cloudに対するテストスイートです。
今のところlint(linter...静的解析)しかコマンドはありませんが、今後、拡張されるのでは?と思っています。
$ gcpdiag help
gcpdiag 🩺 - Diagnostics for Google Cloud Platform
Usage:
gcpdiag COMMAND [OPTIONS]
Commands:
help Print this help text.
lint Run diagnostics on GCP projects.
version Print gcpdiag version.
対象のサービス群
コードから、現時点では以下のサービスを対象にしているようです。
- apigee
- bigquery
- cloudsql
- composer
- dataproc
- gae
- gcb
- gce
- gcf
- gcs
- gke
- iam
- vpc
まとめ
もっともありそうな使い方としては、インフラレイヤーの構築完了や、リリース前などのマイルストーンごとでの確認が考えられます。
また、定期的に実行することも望まれます。IaC環境が整っているProjectではCI/CDパイプラインに組み込んでリスクのある設定変更をすぐさまロールバックするようなことも可能です。
非常に簡単に使えるツールですので、積極的なご利用を!
リンク
https://gcpdiag.dev/
https://github.com/GoogleCloudPlatform/gcpdiag