コンテンツに移動
コンプライアンス

Google Cloud CLI の Terraform 用ポリシー ガードレール プレビュー版に関するお知らせ

2022年5月30日
Google Cloud Japan Team

※この投稿は米国時間 2022 年 5 月 19 日に、Google Cloud blog に投稿されたものの抄訳です。

Terraform は人気の高いオープンソースの Infrastructure as Code(IaC)ツールで、今や世界中のあらゆる規模の組織で使用されています。デベロッパーとしてローカルで使用する場合でも、複雑な CI / CD パイプラインを運営するプラットフォーム管理者として使用する場合でも、Terraform なら Google Cloud 上にインフラストラクチャを簡単にデプロイできます。

このたび、クライアント側のツールである gcloud beta terraform vet についてお知らせできることをうれしく思います。このツールは追加料金なしで利用でき、インフラストラクチャのデプロイや既存のインフラストラクチャ パイプラインに対するポリシー検証を可能にします。今回のリリースにより、Terraform の google および google-beta プロバイダの任意のリソースに対するポリシーを記述できるようになります。すでに GitHub で Terraform Validator を使用している場合は、移行手順に沿って、この新機能をお試しください。

課題

Terraform を使用したインフラストラクチャの自動化は、アプリケーションを提供するために組み合わせて使用するインフラストラクチャやサービスのデプロイを自動化することで、アジリティを向上させるとともに、エラーを減少させます。

企業は、継続的デリバリーを実装することで、より迅速にアプリケーションを開発し、変更に素早く対応することができます。インフラストラクチャに対する変更はありふれたもので、多くの場合、頻繁に起こります。特に、複数のビジネス ユニットにまたがり、自動化された方法でリクエストを迅速かつ効率的に処理するインフラストラクチャについては、その変更のすべてを監視することが困難になる場合があります。組織で Terraform をスケールするにつれて、構成ミスやヒューマン エラーが生じるリスクが高まります。人の手で構成の変更を記述すると、インフラストラクチャの脆弱性修正に要する時間が延び、組織がコンプライアンス上または予算上のリスクにさらされかねません。組織が大規模に、安全に、費用対効果の高い方法で迅速に行動するには、ポリシー ガードレールが必要です。そしてガードレールを設けるのが開発プロセスの早い段階であればあるほど、将来の監査における問題を回避することができます。

ソリューション

gcloud beta terraform vet は、Terraform の構成にガードレールとガバナンスを提供し、組織のポリシー違反となる Google Cloud リソースの構成ミスを減らすことができます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/CLI_Terraform_Validation_preview.max-900x900.jpg

gcloud beta terraform vet を使用すると、以下のようなメリットがあります。  

  • アプリケーション開発のあらゆる段階で組織のポリシーを適用する

  • ポリシー検証を自動化し、手動によるエラーを排除する

  • デプロイ前のチェックによるフェイル ファストを実践する

新機能

CAI ベースの制約を作成できることに加え、Terraform の google および google-beta プロバイダの任意のリソースに対するポリシーを記述できるようになりました。この機能は、Terraform Validator の既存のユーザーから GitHub で受け取ったフィードバックをもとに追加されました。この機能を利用するには、今すぐ gcloud beta terraform vet に移行してください。

ポリシー検証の主なユースケース

プラットフォーム チームは、インフラストラクチャ CI / CD パイプライン(計画段階と適用段階の間)にガードレールを簡単に追加して、クラウドにデプロイする前にインフラストラクチャに対するすべてのリクエストを検証することができます。これにより、デプロイ前のチェック中に、エンドユーザーに違反したポリシーを知らせるエラー メッセージが送信されるようになり、プラットフォーム チームが関与する場面が削減されます。

アプリケーション チームと開発者は、組織の中央ポリシー ライブラリに対して Terraform の構成を検証し、開発プロセスの早い段階で構成ミスを特定できます。CI / CD パイプラインに送信する前に、Terraform の構成が組織のポリシーを遵守していることを簡単に確認できるため、時間と労力を節約できます。

セキュリティ チームは、組織全体のすべてのチームがポリシー違反を特定・防止するために使用する一元化されたポリシー ライブラリを作成できます。個々のポリシーについては、組織の構造に応じて、セキュリティ チームまたは他の信頼できるチームが、会社のニーズまたはコンプライアンス要件に応じて必要なものを追加することが可能です。

使ってみる

ポリシー ガードレールの利用を開始する方法については、クイックスタートに詳細な手順が記載されています。ここではプロセスの概要を簡単に見ていきます。

1. まず、ポリシー ライブラリのクローンを作成します。ポリシー ライブラリには、スタート用のサンプル制約テンプレートバンドルが含まれています。これらの制約テンプレートは、制約が使用するロジックを指定するものです。

2. 制約を policies/constraints フォルダに追加します。これは適用するポリシーを表すものです。たとえば、IAM ドメイン制限の制約により、IAM ポリシー メンバーが「gserviceaccount.com」ドメイン所属のものに限られるようになります。他のサンプルについては、サンプル制約をご覧ください。

読み込んでいます...

3. Terraform plan を生成し、JSON フォーマットに変換します

読み込んでいます...

4. terraform-tools という名前の gcloud コンポーネントをインストールします

読み込んでいます...

5. gcloud beta terraform vet を実行します

読み込んでいます...

6. 最後に、結果を表示します。ポリシー チェックに違反した場合は、次の出力が表示されます。

合格:

読み込んでいます...

失敗: 合格時よりも出力が長くなります。以下は抜粋です。

読み込んでいます...

フィードバック

この機能の活用法や、Google で実施できる改善のアイデアについて、ご意見をお待ちしています。


- Terraform プロダクト マネージャー Arslan Saeed
- ソフトウェア エンジニア / TL Stephen Lewis

投稿先