‹ All DOP-C02 questions

DOP-C02 Practice Question 9: GitHub Actions OIDC Federation

AWS Certified DevOps Engineer – Professional (DOP-C02) · Test 1 · question 9 of 10

Security and Compliancehard

An external CI system (GitHub Actions) currently deploys to AWS using an IAM user's long-lived access keys stored as repository secrets. A security review demands that no long-lived AWS credentials exist anywhere outside AWS, that the deployment identity be usable only by workflows running from the main branch of one specific repository, and that credentials expire automatically. Rotating a secret on a schedule is not acceptable.

What should the team implement?

Select one answer
Show answer and explanation

Answer:

  • B. Create an IAM OIDC identity provider for the CI system's token issuer, and an IAM role whose trust policy uses sts:AssumeRoleWithWebIdentity with a condition on the token's aud claim and a sub claim matching repo:<org>/<repo>:ref:refs/heads/main

OIDC federation removes stored AWS credentials entirely. You register the CI provider's token issuer as an IAM OIDC identity provider, then create a role whose trust policy allows sts:AssumeRoleWithWebIdentity for that provider. The workflow presents a short-lived signed token minted by the CI system, and STS returns temporary credentials that expire on their own, satisfying both the "no long-lived credentials" and "expire automatically" constraints with nothing to rotate. The scoping requirement is met by conditions on the token's claims: aud (StringEquals) pins the audience, and sub (StringEquals on the exact string, not StringLike with a wildcard) pins the identity to one repository and one ref (GitHub documents the branch form of the claim as repo:ORG-NAME/REPO-NAME:ref:refs/heads/BRANCH-NAME). A sub condition written loosely, or omitted, is the classic misconfiguration here, because it would let any repository in any organization assume the role.

Option A still has long-lived AWS keys, merely moved; worse, it needs a *second* long-lived credential (the bootstrap user) to fetch the first, and rotation on a schedule is explicitly ruled out by the stem.

Option C is the wrong federation pattern. sts:AssumeRole with an ExternalId is the confused-deputy defence for a third-party AWS *account* acting on your behalf; it presumes the caller already holds AWS credentials, which is what we are trying to eliminate. Trusting the root principal of another account is also far too broad, and the ExternalId becomes yet another long-lived shared secret in the repository.

Option D keeps IAM users, so long-lived access keys remain. Access Analyzer reports unused access after the fact rather than preventing misuse, and the account password policy governs console passwords for IAM users; it has no effect on programmatic access keys at all.

References: Create an OpenID Connect (OIDC) identity provider in IAM; OpenID Connect reference (GitHub Docs)

Practice Test 1 ›

Study guides for DOP-C02

AWS Service Control Policies Explained: SCPs and DenialsAWS service control policies explained: how SCPs cap permissions, why admins still get access denied, inheritance, deny vs allow lists and the exam traps.
How AI Is Changing Software Jobs: Where to PrepareHow AI is changing software jobs: what history shows, the evidence on junior developers, what Klarna learned, new AI roles and five domains to prepare for.
How AWS Certification Exams Work: Scoring and RenewalHow AWS certification exams work: levels, booking, question types, unscored questions, scaled scores, pass marks, validity and how recertification works.
What Is Amazon RDS? Multi-AZ, Read Replicas and BackupsWhat is Amazon RDS? Engines, Multi-AZ, read replicas, backups, RDS Proxy, Aurora and pricing explained, with the traps that AWS exams set around each one.
Best DevOps certification: AWS, Azure, Google or CKAThe best DevOps certification for your stack: AWS DOP-C02, Azure AZ-400, Google Cloud DevOps Engineer and CKA compared on cost, level and prerequisites.
What Is AWS Lambda? Triggers, Concurrency and Cold StartsWhat is AWS Lambda? How functions run, cold starts, triggers vs event source mappings, concurrency, layers, aliases, pricing and the exam traps.
AWS CloudOps Engineer Associate (SOA-C03) exam guideAWS Certified CloudOps Engineer – Associate (SOA-C03) replaced SysOps Administrator. Format, cost, the five domains, what changed and how to prepare.
Which AWS certification should you get? 2026 roadmapWhich AWS certification to get first, by role and experience, with each exam's status in October 2026, what is changing, and prices in USD and INR.
What Is Amazon EC2? Instances, AMIs, EBS and Auto ScalingAmazon EC2 explained: instances, AMIs, instance types, security groups, EBS, Auto Scaling groups and pricing options, with the traps AWS exams set.
SQS vs SNS vs EventBridge on AWSWhen to use an SQS queue, an SNS topic or an EventBridge bus, plus fan-out, FIFO ordering, visibility timeouts and dead-letter queues for AWS exams.