Question 688 of 999
Integrating Google Cloud serviceshardMultiple ChoiceObjective-mapped

Cross-Project IAM for Cloud Storage: Fixing App Engine 403 Errors

This PCD practice question tests your understanding of integrating google cloud services. The scenario asks you to isolate a root cause — eliminate options that address a different problem before choosing. A key principle to apply: cross-project IAM access. Once you have made your selection, read the full explanation to reinforce the concept and understand why each distractor is designed to mislead on exam day.

A developer is integrating an App Engine standard environment app with Cloud Storage. The app needs to read objects from a bucket that is in a different project. The developer has granted the App Engine service account the Storage Object Viewer role on the bucket. However, the app still gets a 403 error when trying to read objects. What is the most likely cause?

Clue words in this question

Noticing these words before you look at the options changes how you read each choice.

  • Clue: "most likely"

    Why it matters: Probability qualifier — the question wants the most probable cause or outcome, not a guaranteed one. Eliminate low-probability options.

Quick Answer

The answer is that the App Engine service account from the app’s own project must be explicitly granted the Storage Object Viewer role on the bucket in the bucket’s project. This is the core of cross-project IAM for Cloud Storage: IAM policies are resource-local, so a service account from Project A cannot use roles inherited from Project B’s organization or folder hierarchy. When integrating App Engine with Cloud Storage across projects, the bucket’s IAM policy must include the service account email as a member, otherwise the 403 error persists even if the account has permissions in its home project. On the Google Professional Cloud Developer exam, this scenario tests your understanding that cross-project access requires explicit resource-level grants, not just project-level roles—a common trap is assuming the service account’s project-level roles carry over. Remember the mnemonic: “Cross-project? Grant at the bucket, not the project.”

Answer choices

Why each option matters

Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.

Correct answer & explanation

The service account is from the app's project, not the bucket's project, and the bucket's IAM policy may not include the service account.

Option D is correct because the App Engine service account belongs to the app's project, not the bucket's project. Cross-project access requires the service account to be explicitly granted the Storage Object Viewer role in the bucket's IAM policy. If the role was granted but the policy hasn't propagated or is misconfigured, a 403 error can still occur. Option A is incorrect because downloading a JSON key is unnecessary and insecure; service accounts can be used across projects without key files. Option B is incorrect because uniform bucket-level access being disabled relates to ACLs, but IAM permissions still apply; the issue is cross-project IAM, not ACL/ IAM conflict. Option C is incorrect while VPC Service Controls can block access, the typical error is different and would involve the perimeter, not just a 403 on object reads; the question describes a simple cross-project permission issue.

Key principle: Cross-project IAM access

Answer analysis

Option-by-option breakdown

For each option: why learners choose it and why it is or isn't the right answer here.

  • The service account needs to be downloaded as a JSON key and added to the app configuration.

    Why it's wrong here

    Using a key is unnecessary and insecure; App Engine automatically uses the service account.

  • The bucket has uniform bucket-level access disabled, so ACLs may override IAM permissions.

    Why it's wrong here

    Even with ACLs, if the service account is not granted via ACL, IAM role should still apply if set correctly.

  • The bucket is in a VPC Service Controls perimeter that blocks access from the App Engine service account.

    Why it's wrong here

    VPC-SC would result in a different error (access denied by org policy).

  • The service account is from the app's project, not the bucket's project, and the bucket's IAM policy may not include the service account.

    Why this is correct

    Cross-project IAM requires adding the service account from the source project to the bucket's IAM policy in the destination project.

    Clue confirmation

    The clue word "most likely" in the question point toward this answer.

    Related concept

    Cross-project IAM access

Common exam traps

Common exam trap: answer the scenario, not the keyword

Candidates often think the error is due to missing ACLs or VPC perimeters, but the real issue is that the IAM role was granted at the project level rather than the bucket level, or the service account is not in the bucket's IAM policy.

Detailed technical explanation

How to think about this question

Treat this as a scenario question. Identify the problem, the constraint, and the best action. Then compare each option against those facts.

KKey Concepts to Remember

  • Cross-project IAM access
  • App Engine service account
  • Cloud Storage IAM roles

TExam Day Tips

  • Watch for words such as best, first, most likely and least administrative effort.
  • Review why wrong options are wrong, not only why the correct option is correct.

Key takeaway

Cross-project IAM access

Real-world example

How this comes up in practice

A media company stores terabytes of video archives that are accessed once a year for audit purposes. Moving these objects to a cold storage tier (Azure Archive, S3 Glacier, or Google Nearline) costs a fraction of hot storage. Questions like this test whether you understand storage tiers, access frequency tradeoffs, and retrieval latency requirements.

Visual reference

Source Router + ACL permit 10.0.0.0/8 deny any Server 10.0.0.5 ✓ 192.168.1.1 ✗ dropped ACLs evaluate top-down; first match wins — implicit deny all at end

What to study next

Got this wrong? Here's your next step.

Review cross-project IAM access, then practise related PCD questions on the same topic to reinforce the concept.

Related practice questions

Related PCD practice-question pages

Use these pages to review the topic behind this question. This is how one missed question becomes focused revision.

Manage a Solution that Can Span Multiple Database Systems practice questions

Practise PCD questions linked to Manage a Solution that Can Span Multiple Database Systems.

Deploy Scalable and Highly Available Databases in Google Cloud practice questions

Practise PCD questions linked to Deploy Scalable and Highly Available Databases in Google Cloud.

Design Scalable and Highly Available Cloud Database Solutions practice questions

Practise PCD questions linked to Design Scalable and Highly Available Cloud Database Solutions.

Migrate Data Solutions practice questions

Practise PCD questions linked to Migrate Data Solutions.

Designing highly scalable, available, and reliable cloud-native applications practice questions

Practise PCD questions linked to Designing highly scalable, available, and reliable cloud-native applications.

Building and testing applications practice questions

Practise PCD questions linked to Building and testing applications.

Deploying applications practice questions

Practise PCD questions linked to Deploying applications.

Integrating Google Cloud services practice questions

Practise PCD questions linked to Integrating Google Cloud services.

Managing application performance monitoring practice questions

Practise PCD questions linked to Managing application performance monitoring.

PCD fundamentals practice questions

Practise PCD questions linked to PCD fundamentals.

PCD scenario practice questions

Practise PCD questions linked to PCD scenario.

PCD troubleshooting practice questions

Practise PCD questions linked to PCD troubleshooting.

Practice this exam

Start a free PCD practice session

Short sessions build daily habit. Longer sessions build exam-day stamina. Try a timed session to simulate real conditions.

FAQ

Questions learners often ask

What does this PCD question test?

Integrating Google Cloud services — This question tests Integrating Google Cloud services — Cross-project IAM access.

What is the correct answer to this question?

The correct answer is: The service account is from the app's project, not the bucket's project, and the bucket's IAM policy may not include the service account. — Option D is correct because the App Engine service account belongs to the app's project, not the bucket's project. Cross-project access requires the service account to be explicitly granted the Storage Object Viewer role in the bucket's IAM policy. If the role was granted but the policy hasn't propagated or is misconfigured, a 403 error can still occur. Option A is incorrect because downloading a JSON key is unnecessary and insecure; service accounts can be used across projects without key files. Option B is incorrect because uniform bucket-level access being disabled relates to ACLs, but IAM permissions still apply; the issue is cross-project IAM, not ACL/ IAM conflict. Option C is incorrect while VPC Service Controls can block access, the typical error is different and would involve the perimeter, not just a 403 on object reads; the question describes a simple cross-project permission issue.

What should I do if I get this PCD question wrong?

Review cross-project IAM access, then practise related PCD questions on the same topic to reinforce the concept.

Are there clue words in this question I should notice?

Yes — watch for: "most likely". Probability qualifier — the question wants the most probable cause or outcome, not a guaranteed one. Eliminate low-probability options.

What is the key concept behind this question?

Cross-project IAM access

About these practice questions

Courseiva creates original exam-style practice questions with explanations and wrong-answer analysis. It does not publish real exam questions, exam dumps, or protected exam content. Learn why practice questions differ from exam dumps →

How Courseiva writes practice questions · Editorial policy

Keep practising

More PCD practice questions

Last reviewed: Jun 24, 2026

Question Discussion

Share a tip, memory trick, or ask about the reasoning behind this question. Do not post real exam questions, leaked content, braindumps, or copyrighted exam material. Comments are moderated and may be removed without notice.

Loading comments…

Sign in to join the discussion.

This PCD practice question is part of Courseiva's free Google Cloud certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the PCD exam.