📖 Scenario: You are a cloud administrator responsible for tracking changes and access in your Google Cloud Platform (GCP) project. Audit logs help you see who did what and when, which is important for security and troubleshooting.
🎯 Goal: Set up audit logging for a GCP project by creating a log sink that exports admin activity logs to a Cloud Storage bucket.
📋 What You'll Learn
Create a Cloud Storage bucket named exactly audit-log-bucket
Create a log sink named exactly admin-activity-sink
Configure the sink to export ADMIN_ACTIVITY logs
Set the sink destination to the audit-log-bucket
Print the sink's full name to confirm creation
💡 Why This Matters
🌍 Real World
Audit logging is essential in cloud environments to track user actions and system changes for security and compliance.
💼 Career
Cloud administrators and DevOps engineers often configure audit logging to meet organizational policies and troubleshoot issues.
Progress0 / 4 steps
1
Create a Cloud Storage bucket
Create a Cloud Storage bucket named audit-log-bucket using the gsutil command.
GCP
Hint
Use gsutil mb followed by the bucket URL to create the bucket.
2
Define the log sink name and destination
Create variables SINK_NAME set to admin-activity-sink and DESTINATION set to storage.googleapis.com/audit-log-bucket.
GCP
Hint
Assign the exact strings to the variables SINK_NAME and DESTINATION.
3
Create the log sink for admin activity logs
Use the gcloud logging sinks create command with $SINK_NAME as the sink name, $DESTINATION as the destination, and filter for logName: "cloudaudit.googleapis.com%2Factivity" to capture admin activity logs.
GCP
Hint
Use gcloud logging sinks create with the sink name, destination, and a filter for admin activity logs.
4
Print the full sink name
Print the full sink name using gcloud logging sinks describe $SINK_NAME --format='value(name)'.
GCP
Hint
Use gcloud logging sinks describe with --format='value(name)' to print only the sink name.
Practice
(1/5)
1. What is the main purpose of audit logging in Google Cloud Platform?
easy
A. To create virtual machines
B. To record actions for security and troubleshooting
C. To speed up network traffic
D. To increase storage capacity automatically
Solution
Step 1: Understand audit logging function
Audit logging captures user and system actions in your cloud environment.
Step 2: Identify the purpose
This helps with security monitoring and troubleshooting issues.
Final Answer:
To record actions for security and troubleshooting -> Option B
Quick Check:
Audit logging = record actions [OK]
Hint: Audit logs track actions for security and fixes [OK]
Common Mistakes:
Confusing audit logs with storage or network features
Thinking audit logs create resources
Assuming audit logs improve performance
2. Which command correctly creates a sink to export audit logs to a Cloud Storage bucket named my-logs-bucket?
easy
A. gcloud logging sinks create my-sink storage.googleapis.com/my-logs-bucket --log-filter="resource.type=\"gce_instance\""
B. gcloud logging create sink my-sink storage://my-logs-bucket
C. gcloud logs create sink my-sink gs://my-logs-bucket
D. gcloud logging sinks add my-sink storage.googleapis.com/my-logs-bucket
Solution
Step 1: Identify correct gcloud command syntax
The correct command uses gcloud logging sinks create followed by sink name and destination URL.
Step 2: Verify destination format
Cloud Storage buckets use storage.googleapis.com/BUCKET_NAME format.
Final Answer:
gcloud logging sinks create my-sink storage.googleapis.com/my-logs-bucket --log-filter="resource.type=\"gce_instance\"" -> Option A
Hint: Use 'gcloud logging sinks create' with full storage URL [OK]
Common Mistakes:
Using wrong command verbs like 'create sink' or 'add sink'
Incorrect bucket URL format (missing storage.googleapis.com)
Using 'gs://' instead of full URL
3. Given this filter in a sink configuration: resource.type="bigquery_resource" AND protoPayload.methodName="jobservice.jobcompleted", what logs will be exported?
medium
A. Only logs from Compute Engine instances
B. All error logs from Cloud Storage
C. All BigQuery job completion audit logs
D. All network traffic logs
Solution
Step 1: Analyze the resource type filter
The filter specifies resource.type="bigquery_resource", so logs relate to BigQuery.
Step 2: Analyze the method name filter
protoPayload.methodName="jobservice.jobcompleted" means only job completion events are included.
Final Answer:
All BigQuery job completion audit logs -> Option C
Hint: Filter resource and method to find exported logs [OK]
Common Mistakes:
Confusing resource types with unrelated services
Ignoring methodName filter
Assuming all logs are exported
4. You created a sink to export audit logs to a Pub/Sub topic but logs are not appearing. What is the most likely cause?
medium
A. The sink lacks permission to publish to the Pub/Sub topic
B. The sink filter is too broad and excludes all logs
C. Audit logging is disabled in the project
D. The Pub/Sub topic name is misspelled in the sink
Solution
Step 1: Check sink permissions
Sinks need permission to write to destinations like Pub/Sub topics.
Step 2: Identify common permission issue
If logs do not appear, the sink likely lacks the pubsub.publisher role on the topic.
Final Answer:
The sink lacks permission to publish to the Pub/Sub topic -> Option A
Quick Check:
Missing sink permissions = The sink lacks permission to publish to the Pub/Sub topic [OK]
Hint: Check sink destination permissions first when logs missing [OK]
Common Mistakes:
Assuming audit logging is off without checking
Blaming filter without verifying permissions
Ignoring typo in topic name
5. You want to export only admin activity audit logs for Cloud Storage buckets in your project to a BigQuery dataset for analysis. Which sink filter is correct?
hard
A. resource.type="gcs_bucket" AND severity="ERROR"
B. logName:"cloudaudit.googleapis.com/activity" AND resource.type="gcs_bucket" AND protoPayload.methodName:"storage.objects.create"
C. logName:"cloudaudit.googleapis.com/data_access" AND resource.type="gcs_bucket"
D. logName:"cloudaudit.googleapis.com/admin_activity" AND resource.type="gcs_bucket"
Solution
Step 1: Identify admin activity logs
Admin activity logs use logName:"cloudaudit.googleapis.com/admin_activity".
Step 2: Filter for Cloud Storage buckets
Use resource.type="gcs_bucket" to target storage buckets.
Step 3: Confirm filter matches requirement
logName:"cloudaudit.googleapis.com/admin_activity" AND resource.type="gcs_bucket" correctly combines admin activity logs with GCS buckets.
Final Answer:
logName:"cloudaudit.googleapis.com/admin_activity" AND resource.type="gcs_bucket" -> Option D