Bird
Raised Fist0
GCPcloud~10 mins

Secret Manager for credentials in GCP - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to create a new secret in Google Cloud Secret Manager.

GCP
gcloud secrets create [1] --replication-policy="automatic"
Drag options to blanks, or click blank then click option'
Amy-secret
Bsecret-manager
Ccredentials
Dproject-id
Attempts:
3 left
💡 Hint
Common Mistakes
Using project ID instead of secret name
Including spaces in the secret name
Omitting the replication policy
2fill in blank
medium

Complete the code to add a new version of the secret with the content from a file.

GCP
gcloud secrets versions add [1] --data-file=credentials.json
Drag options to blanks, or click blank then click option'
Aproject-id
Bcredentials
Csecret-version
Dmy-secret
Attempts:
3 left
💡 Hint
Common Mistakes
Using the file name instead of the secret name
Using project ID instead of secret name
3fill in blank
hard

Fix the error in the command to access the latest secret version.

GCP
gcloud secrets versions access [1] --secret=my-secret
Drag options to blanks, or click blank then click option'
Alatest
Bcurrent
C1
Dnewest
Attempts:
3 left
💡 Hint
Common Mistakes
Using a non-existent version keyword
Using a version number that does not exist
4fill in blank
hard

Fill both blanks to grant the Secret Manager Accessor role to a service account.

GCP
gcloud projects add-iam-policy-binding [1] --member='serviceAccount:[2]' --role='roles/secretmanager.secretAccessor'
Drag options to blanks, or click blank then click option'
Amy-project-id
Buser@example.com
Cmy-service-account@my-project-id.iam.gserviceaccount.com
Dsecret-accessor
Attempts:
3 left
💡 Hint
Common Mistakes
Using a user email instead of a service account email
Using an incorrect project ID
5fill in blank
hard

Fill all three blanks to retrieve the secret value in a Python script using the Secret Manager client.

GCP
from google.cloud import secretmanager

client = secretmanager.SecretManagerServiceClient()
name = client.secret_version_path([1], [2], [3])
response = client.access_secret_version(name=name)
secret = response.payload.data.decode('UTF-8')
Drag options to blanks, or click blank then click option'
A"my-project-id"
B"my-secret"
C"latest"
D"secret-version"
Attempts:
3 left
💡 Hint
Common Mistakes
Using variable names without quotes
Using incorrect version string
Swapping the order of arguments

Practice

(1/5)
1. What is the main purpose of Google Cloud Secret Manager?
easy
A. To host websites and web applications
B. To securely store and manage sensitive information like passwords and API keys
C. To analyze large datasets quickly
D. To create virtual machines for computing tasks

Solution

  1. Step 1: Understand Secret Manager's role

    Secret Manager is designed to keep sensitive data safe and accessible only to authorized users.
  2. Step 2: Compare options with Secret Manager's function

    Options A, C, and D describe other cloud services, not Secret Manager.
  3. Final Answer:

    To securely store and manage sensitive information like passwords and API keys -> Option B
  4. Quick Check:

    Secret Manager = Secure storage [OK]
Hint: Secret Manager = safe storage for secrets [OK]
Common Mistakes:
  • Confusing Secret Manager with compute or storage services
  • Thinking it hosts websites or runs code
  • Assuming it analyzes data
2. Which command correctly creates a new secret named db-password in Secret Manager?
easy
A. gcloud secrets create db-password --replication-policy="automatic"
B. gcloud secret create db-password --auto-replication
C. gcloud secrets add db-password --replication=auto
D. gcloud create secret db-password --replication-policy=manual

Solution

  1. Step 1: Recall correct gcloud syntax for creating secrets

    The correct command uses gcloud secrets create with the secret name and replication policy.
  2. Step 2: Check each option's syntax

    gcloud secrets create db-password --replication-policy="automatic" matches the correct syntax exactly. Options A, B, and C have incorrect command structure or flags.
  3. Final Answer:

    gcloud secrets create db-password --replication-policy="automatic" -> Option A
  4. Quick Check:

    Correct command syntax = gcloud secrets create db-password --replication-policy="automatic" [OK]
Hint: Use 'gcloud secrets create' with replication policy [OK]
Common Mistakes:
  • Using 'secret' instead of 'secrets' in command
  • Wrong flag names like --auto-replication
  • Incorrect command order or missing quotes
3. Given this Python code snippet accessing a secret version:
from google.cloud import secretmanager
client = secretmanager.SecretManagerServiceClient()
name = "projects/my-project/secrets/api-key/versions/latest"
response = client.access_secret_version(name=name)
payload = response.payload.data.decode("UTF-8")
print(payload)

What will this code print if the secret value is supersecret123?
medium
A. supersecret123
B. b'supersecret123'
C. api-key
D. projects/my-project/secrets/api-key/versions/latest

Solution

  1. Step 1: Understand the code flow

    The code accesses the latest version of the secret named 'api-key' and decodes the binary data to a UTF-8 string.
  2. Step 2: Determine the printed output

    Since payload.data is decoded, the output is the plain string 'supersecret123', not bytes or other values.
  3. Final Answer:

    supersecret123 -> Option A
  4. Quick Check:

    Decoded secret value = 'supersecret123' [OK]
Hint: Decoded secret data prints as plain string [OK]
Common Mistakes:
  • Printing raw bytes without decoding
  • Confusing secret name with secret value
  • Expecting metadata instead of secret content
4. You try to access a secret but get a permission denied error. What is the most likely cause?
medium
A. The secret value is empty
B. The secret does not exist in the project
C. The secret version is disabled
D. The service account lacks the Secret Manager Secret Accessor role

Solution

  1. Step 1: Analyze permission denied error context

    Permission denied usually means the caller lacks rights to access the secret.
  2. Step 2: Identify required role for access

    The Secret Manager Secret Accessor role grants permission to read secret versions. Without it, access is denied.
  3. Final Answer:

    The service account lacks the Secret Manager Secret Accessor role -> Option D
  4. Quick Check:

    Permission denied = missing access role [OK]
Hint: Check service account roles for Secret Accessor permission [OK]
Common Mistakes:
  • Assuming secret absence causes permission error
  • Ignoring secret version state
  • Thinking empty secret causes permission denied
5. You want to rotate a database password stored in Secret Manager without downtime. Which approach is best?
hard
A. Manually update the password in the database and Secret Manager at the same time
B. Delete the old secret and create a new secret with the new password
C. Create a new secret version with the new password and update your app to use the latest version
D. Store the password in a config file instead of Secret Manager

Solution

  1. Step 1: Understand secret rotation best practice

    Adding a new secret version allows smooth transition without deleting old data, avoiding downtime.
  2. Step 2: Evaluate options for zero downtime

    Create a new secret version with the new password and update your app to use the latest version uses versioning and app update to switch secrets seamlessly. Delete the old secret and create a new secret with the new password deletes data causing downtime. Manually update the password in the database and Secret Manager at the same time risks inconsistency. Store the password in a config file instead of Secret Manager is insecure.
  3. Final Answer:

    Create a new secret version with the new password and update your app to use the latest version -> Option C
  4. Quick Check:

    Rotate by adding new version, not deleting [OK]
Hint: Rotate secrets by adding versions, not deleting old ones [OK]
Common Mistakes:
  • Deleting secrets causing downtime
  • Updating database and secret separately risking mismatch
  • Storing passwords insecurely outside Secret Manager
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard