अंतिम समीक्षा: मई 2026
साधारण Terraform के साथ AGWA परीक्षा के AWS संसाधनों को बनाएं — एक समय में एक ब्लॉक, प्रत्येक परीक्षा डोमेन से जुड़ा हुआ। यही कोड OpenTofu पर भी काम करता है।
इस लैब के अंत तक आप सादे टेराफॉर्म के साथ, GCP-साइड सब्सट्रेट प्रोविज़न कर चुके होंगे जिसे हर Google Workspace एडमिन को समझना चाहिए — Cloud Identity API सक्षम हो जाएगी, प्रोजेक्ट स्कोप पर एक IAM समूह बनाया जाएगा, समूह को व्यूअर भूमिका से जोड़ा जाएगा, और एक क्लाउड ऑडिट लॉग सिंक संगठन-स्तर के ऑडिट इवेंट्स को एक समर्पित लॉगिंग बकेट में रूट करेगा। चार ब्लॉक; Cloud Identity + ऑडिट लॉग्स की सीमा जिसे AGWA परीक्षा में परखा जाता है।
स्निपेट्स को एक main.tf में डालें, terraform init चलाएँ, फिर terraform apply को चरण-दर-चरण चलाएँ।
ध्यान दें: AGWA की अधिकांश परीक्षा सामग्री Workspace एडमिन कंसोल (जीमेल राउटिंग, ड्राइव शेयरिंग नीतियां, मोबाइल डिवाइस प्रबंधन, संदर्भ-जागरूक एक्सेस) में रहती है, जिसे google प्रदाता के माध्यम से सीधे टेराफॉर्म नहीं किया जा सकता है। googleworkspace प्रदाता मौजूद है लेकिन इसके लिए डोमेन-व्यापी डेलिगेशन के साथ एक Workspace सुपर-एडमिन सेवा खाते की आवश्यकता होती है — जो एक लैब के दायरे से बाहर है।
>= 1.5 या OpenTofu >= 1.6।your-project-id और your-org-id को बदलें।लैब के दायरे में सभी निःशुल्क:
Workspace उत्पाद स्वयं प्रति-सीट बिल करता है (बिजनेस स्टार्टर के लिए ~$6/उपयोगकर्ता/माह तक, एंटरप्राइज के लिए ~$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 समूह Google Workspace समूहों का GCP-साइड मिरर हैं — वे एक ही पहचान निर्देशिका में रहते हैं और उसी group-email@your-domain.com प्रारूप के माध्यम से संबोधित किए जा सकते हैं। AGWA परीक्षा इस सिंगल-पेन-ऑफ़-ग्लास पहचान मॉडल का परीक्षण करती है: Workspace में प्रोविज़न किया गया एक उपयोगकर्ता वही पहचान है जिसे GCP में IAM बाइंडिंग मिलती है।
हम एक सुरक्षा समूह dev-readers@your-domain.com बनाते हैं। your-org-id को अपनी Cloud Identity ग्राहक आईडी से बदलें (gcloud organizations list → directoryCustomerId फ़ील्ड के माध्यम से पाएँ)।
इस संसाधन को डोमेन स्वामित्व की आवश्यकता है — यह विफल हो जाएगा जब तक कि आप your-domain.com को नियंत्रित नहीं करते हैं और org स्कोप पर Cloud Identity API सक्षम नहीं करते हैं। एक वास्तविक डोमेन के बिना एक त्वरित लैब के लिए, इस चरण को छोड़ दें और चरण 3 में एक मौजूदा IAM पहचान का उपयोग करें।
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 एडमिन नियमित रूप से Workspace समूहों को GCP अनुमतियाँ असाइन करते हैं — AGWA-अनुशंसित पैटर्न है समूहों को भूमिकाएँ प्रदान करना, Workspace में सदस्यता प्रबंधित करना। हम चरण 2 से dev-readers समूह को वर्तमान प्रोजेक्ट में roles/viewer से बाँधते हैं। जिस किसी भी Workspace एडमिन द्वारा उन्हें dev-readers@your-domain.com में जोड़ा जाता है, वह तुरंत इस GCP प्रोजेक्ट पर व्यूअर की भूमिका विरासत में प्राप्त कर लेता है। जिसे हटा दिया जाता है वह इसे खो देता है।
IAM member फ़ील्ड पर group: उपसर्ग पर ध्यान दें — यह एक समूह पहचान को बाँधने के लिए आधिकारिक सिंटैक्स है। अन्य उपसर्ग जिनका 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 अस्वीकृति) हमेशा चालू और निःशुल्क होते हैं।
हम audit-events नामक एक समर्पित लॉगिंग बकेट (डिफ़ॉल्ट _Required और _Default बकेट से अलग) बनाते हैं, फिर एक लॉग सिंक जो हर 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 बाइंडिंग अलग हो जाती है; समूह सदस्य तुरंत व्यूअर खो देते हैं। लॉगिंग बकेट + सिंक साफ-सुथरा नष्ट हो जाता है; 400-दिवसीय प्रतिधारण केवल तब मायने रखता है जब लॉग वहाँ आ रहे हों।
AGWA Workspace एडमिन इंटरफेस को कवर करता है जो google प्रदाता के माध्यम से सीधे टेराफॉर्मेबल नहीं हैं — जीमेल राउटिंग नियम / स्पैम फ़िल्टर / DMARC / DKIM / SPF, ड्राइव शेयरिंग डिफ़ॉल्ट / साझा ड्राइव / लेबल, मीट रिकॉर्डिंग नीतियाँ, कैलेंडर रूम प्रोविजनिंग, मोबाइल डिवाइस प्रबंधन (उन्नत + बेसिक), क्रोम ब्राउज़र नीतियाँ, संदर्भ-जागरूक एक्सेस नीतियाँ (जिनका google_access_context_manager_* के माध्यम से एक TF सतह है लेकिन org स्कोप पर रहते हैं और Cloud Identity Premium की आवश्यकता होती है), वॉल्ट प्रतिधारण नियम, eDiscovery निर्यात, और व्यापक Workspace एडमिन कंसोल सेटिंग्स ट्री।
googleworkspace टेराफॉर्म प्रदाता Workspace के भीतर उपयोगकर्ताओं / समूहों / संगठन-इकाइयों / डोमेन / भूमिका-असाइनमेंट के लिए मौजूद है, लेकिन इसके लिए डोमेन-व्यापी डेलिगेशन और एक सुपर-एडमिन के subject के साथ एक सेवा खाते की आवश्यकता होती है — जो एक त्वरित लैब के दायरे से बाहर है।
हम Cloud Identity समूह + IAM + ऑडिट लॉग प्रिमिटिव्स पर टिके रहते हैं क्योंकि वे Workspace और GCP के बीच प्रलेखित सीमा हैं — वह हिस्सा जो हर Workspace एडमिन के पास होना चाहिए। Workspace-आंतरिक एडमिन पैटर्न (Gmail / Drive / Meet / mobile / Chrome) के लिए, मार्गदर्शिका + Editorial अनुभाग वैचारिक सतह को कवर करते हैं।