最終確認: 2026年5月
AGWA 試験の対象となる AWS サービスを、プレーンな Terraform を使用して構築します。1 ブロックずつ、それぞれ試験ドメインに関連付けられています。同じコードが OpenTofu でも動作します。
このラボの終わりまでに、Google Workspace管理者なら誰もが理解すべきGCP側の基盤(Cloud Identity APIの有効化、プロジェクトスコープで作成されたIAMグループ、ビューアーロールにバインドされたグループ、組織レベルの監査イベントを専用のロギングバケットにルーティングするCloud Audit Logsシンク)を、プレーンなTerraformでプロビジョニングできるようになります。AGWA試験がテストするCloud Identity + Audit Logsの境界をなす4つのブロックです。
これらのスニペットを単一のmain.tfにドロップし、terraform initを実行してから、terraform applyをステップバイステップで実行してください。
注: AGWAの試験内容のほとんどは、googleプロバイダーを介して直接Terraform化できないWorkspace管理コンソール(Gmailルーティング、ドライブ共有ポリシー、モバイルデバイス管理、コンテキストアウェアアクセス)にあります。googleworkspaceプロバイダーは存在しますが、ドメイン全体の委任を持つWorkspaceスーパー管理者サービスアカウントが必要であり、これはラボの範囲外です。
>= 1.5 または OpenTofu >= 1.6。your-project-idとyour-org-idを置き換えてください。ラボの範囲ではすべて無料です。
Workspace製品自体はシートあたりで課金されます(Business Starterで約6ドル/ユーザー/月、Enterpriseで最大約30ドル/ユーザー/月)— これはラボの範囲外です。以下の基盤は無料です。
Cloud Identity、IAM、およびCloud Logging APIを有効にします。
terraform {
required_version = ">= 1.5"
required_providers {
google = { source = "hashicorp/google", version = "~> 6.0" }
}
}
provider "google" {
project = "your-project-id" # REPLACE
region = "us-central1"
}
locals {
labels = {
project = "certlabpro-agwa"
managed_by = "terraform"
}
}
resource "google_project_service" "cloudidentity" {
service = "cloudidentity.googleapis.com"
disable_on_destroy = false
}
resource "google_project_service" "logging" {
service = "logging.googleapis.com"
disable_on_destroy = false
}Cloud Identity Groupsは、Google WorkspaceグループのGCP側のミラーです — これらは同じIDディレクトリに存在し、group-email@your-domain.comという同じ形式でアドレス指定可能です。AGWA試験では、この「単一窓口」のIDモデルがテストされます。Workspaceでプロビジョニングされたユーザーは、GCPでIAMバインディングを取得するのと同じIDです。
セキュリティグループdev-readers@your-domain.comを作成します。your-org-idをCloud Identity顧客IDに置き換えてください(gcloud organizations list → directoryCustomerIdフィールドで確認できます)。
このリソースにはドメイン所有権が必要です — your-domain.comを制御し、組織スコープでCloud Identity APIが有効になっていない限り、失敗します。実際のドメインなしで手早くラボを行う場合は、このステップをスキップし、ステップ3で既存のIAM IDを使用してください。
resource "google_cloud_identity_group" "dev_readers" {
display_name = "dev-readers"
description = "Lab Cloud Identity group for the AGWA walkthrough"
parent = "customers/your-org-id" # REPLACE — find via `gcloud organizations list`
group_key {
id = "dev-readers@your-domain.com" # REPLACE with your Workspace domain
}
labels = {
"cloudidentity.googleapis.com/groups.discussion_forum" = ""
}
initial_group_config = "WITH_INITIAL_OWNER"
depends_on = [google_project_service.cloudidentity]
}Workspace管理者は、GCPの権限をWorkspaceグループに定期的に割り当てます — AGWAが推奨するパターンは「グループにロールを付与し、Workspaceでメンバーシップを管理する」です。ステップ2で作成したdev-readersグループを、現在のプロジェクトのroles/viewerにバインドします。Workspace管理者がdev-readers@your-domain.comに追加したユーザーは、即座にこのGCPプロジェクトのViewer権限を継承します。削除されたユーザーは権限を失います。
IAMのmemberフィールドのgroup:プレフィックスに注目してください — これはグループIDをバインドするための正規の構文です。AGWA試験がテストする他のプレフィックスには、user:(個人)、serviceAccount:(サービスアカウント)、domain:(ドメイン内のすべてのユーザー)があります。
data "google_project" "current" {}
resource "google_project_iam_member" "dev_readers_viewer" {
project = data.google_project.current.project_id
role = "roles/viewer"
member = "group:${google_cloud_identity_group.dev_readers.group_key[0].id}"
}AGWA試験では、Cloud Audit Logsのスコープがテストされます。管理者アクティビティログは常にオンで無料です。データアクセスログはデフォルトでオフであり、通常通り課金されます。システムイベントログは常にオンで無料です。ポリシー拒否ログ(VPC-SCによる拒否)は常にオンで無料です。
デフォルトの_Requiredおよび_Defaultバケットとは別の、audit-eventsという名前の専用ロギングバケットを作成し、IAM関連のすべての監査ログをそこにルーティングするログシンクを作成します。これにより、コンプライアンスチームは_Defaultの運用ログとは別の保持期間を持つことができます — これは「監査ログの保持期間がインシデント対応期間よりも長くなるようにする」というAGWA推奨のパターンです。
resource "google_logging_project_bucket_config" "audit" {
project = data.google_project.current.project_id
location = "global"
retention_days = 400 # 13 months — typical compliance ask
bucket_id = "audit-events"
depends_on = [google_project_service.logging]
}
resource "google_logging_project_sink" "audit_sink" {
name = "certlabpro-agwa-audit-sink"
destination = "logging.googleapis.com/${google_logging_project_bucket_config.audit.id}"
filter = "logName:\"cloudaudit.googleapis.com\" AND protoPayload.serviceName=\"iam.googleapis.com\""
unique_writer_identity = true
}terraform destroyですべてが破棄されます。Cloud Identityグループは破棄されます(Cloud Identityからのみ削除され、実際のWorkspaceグループだった場合は25日以内に管理コンソールから復元できます)。IAMバインディングは解除され、グループメンバーはすぐにViewer権限を失います。ロギングバケット + シンクはクリーンに破棄されます。400日間の保持期間は、ログがそこに着地している間にのみ意味があります。
AGWAは、googleプロバイダーを介して直接Terraform化できないWorkspace管理者インターフェースを対象としています。具体的には、Gmailルーティングルール/スパムフィルタ/DMARC/DKIM/SPF、ドライブ共有のデフォルト/共有ドライブ/ラベル、Meet録画ポリシー、カレンダールームのプロビジョニング、モバイルデバイス管理(詳細設定+基本設定)、Chromeブラウザポリシー、コンテキストアウェアアクセスポリシー(google_access_context_manager_*を介したTFインターフェースはありますが、組織スコープに存在しCloud Identity Premiumが必要です)、Vault保持ルール、eDiscoveryエクスポート、およびより広範なWorkspace管理コンソールの設定ツリーなどです。
Workspace自体内のユーザー/グループ/組織単位/ドメイン/ロール割り当てのためのgoogleworkspace Terraformプロバイダーは存在しますが、ドメイン全体の委任を持つサービスアカウントとスーパー管理者のsubjectが必要であり、手軽なラボの範囲外です。
私たちはCloud Identity Groups + IAM + Audit Logsのプリミティブに焦点を当てます。これらはWorkspaceとGCP間の文書化された境界であり、すべてのWorkspace管理者が習得すべき部分だからです。Workspace内部の管理パターン(Gmail / Drive / Meet / mobile / Chrome)については、プレイブックとEditorialのセクションで概念的な表面をカバーしています。