πŸ”’ Guided

Pre-launch preview. Authorised access only.

Incorrect code

Guided by A Guide to Cloud
Explore AB-900 AI-901
Guided AZ-400 Domain 4
Domain 4 β€” Module 2 of 4 50%
21 of 25 overall

AZ-400 Study Guide

Domain 1: Design and Implement Processes and Communications

  • Work Item Tracking: Boards, GitHub & Flow
  • DevOps Metrics: Dashboards That Drive Decisions
  • Collaboration: Wikis, Teams & Release Notes

Domain 2: Design and Implement a Source Control Strategy

  • Branching Strategies: Trunk-Based, Feature & Release
  • Pull Requests: Policies, Protections & Merge Rules
  • Repository Management: LFS, Permissions & Recovery

Domain 3: Design and Implement Build and Release Pipelines

  • Package Management: Feeds, Versioning & Upstream
  • Testing Strategy: Quality Gates & Release Gates
  • Test Implementation: Code Coverage & Pipeline Tests
  • Azure Pipelines: YAML from Scratch Free
  • GitHub Actions: Workflows from Scratch Free
  • Pipeline Agents: Self-Hosted, Hybrid & VM Templates
  • Multi-Stage Pipelines: Templates, Variables & Approvals
  • Deployment Strategies: Blue-Green, Canary & Ring Free
  • Safe Rollouts: Slots, Dependencies & Hotfix Paths
  • Deployment Implementations: Containers, Scripts & Databases
  • Infrastructure as Code: ARM vs Bicep vs Terraform
  • IaC in Practice: Desired State & Deployment Environments
  • Pipeline Maintenance: Health, Migration & Retention

Domain 4: Develop a Security and Compliance Plan

  • Pipeline Identity: Service Principals, Managed IDs & OIDC Free
  • Authorization & Access: GitHub Roles & Azure DevOps Security
  • Secrets & Secure Pipelines: Key Vault & Workload Federation
  • Security Scanning: GHAS, Defender & Dependabot

Domain 5: Implement an Instrumentation Strategy

  • Monitoring for DevOps: Azure Monitor & App Insights
  • Metrics & KQL: Analysing Telemetry & Traces

AZ-400 Study Guide

Domain 1: Design and Implement Processes and Communications

  • Work Item Tracking: Boards, GitHub & Flow
  • DevOps Metrics: Dashboards That Drive Decisions
  • Collaboration: Wikis, Teams & Release Notes

Domain 2: Design and Implement a Source Control Strategy

  • Branching Strategies: Trunk-Based, Feature & Release
  • Pull Requests: Policies, Protections & Merge Rules
  • Repository Management: LFS, Permissions & Recovery

Domain 3: Design and Implement Build and Release Pipelines

  • Package Management: Feeds, Versioning & Upstream
  • Testing Strategy: Quality Gates & Release Gates
  • Test Implementation: Code Coverage & Pipeline Tests
  • Azure Pipelines: YAML from Scratch Free
  • GitHub Actions: Workflows from Scratch Free
  • Pipeline Agents: Self-Hosted, Hybrid & VM Templates
  • Multi-Stage Pipelines: Templates, Variables & Approvals
  • Deployment Strategies: Blue-Green, Canary & Ring Free
  • Safe Rollouts: Slots, Dependencies & Hotfix Paths
  • Deployment Implementations: Containers, Scripts & Databases
  • Infrastructure as Code: ARM vs Bicep vs Terraform
  • IaC in Practice: Desired State & Deployment Environments
  • Pipeline Maintenance: Health, Migration & Retention

Domain 4: Develop a Security and Compliance Plan

  • Pipeline Identity: Service Principals, Managed IDs & OIDC Free
  • Authorization & Access: GitHub Roles & Azure DevOps Security
  • Secrets & Secure Pipelines: Key Vault & Workload Federation
  • Security Scanning: GHAS, Defender & Dependabot

Domain 5: Implement an Instrumentation Strategy

  • Monitoring for DevOps: Azure Monitor & App Insights
  • Metrics & KQL: Analysing Telemetry & Traces
Domain 4: Develop a Security and Compliance Plan Premium ⏱ ~12 min read

Authorization & Access: GitHub Roles & Azure DevOps Security

Design permissions and security groups for pipelines. Configure roles in GitHub and Azure DevOps, manage access levels, and organise projects and teams.

Why authorization design matters for DevOps

β˜• Simple explanation

Think of a concert venue.

General admission gets you into the standing area. VIP gets you backstage. The sound engineer gets access to the mixing desk. The venue manager can open every door. Nobody gets more access than they need for their role.

Authorization in DevOps works the same way. Developers can push code but not approve production deployments. QA can trigger test pipelines but not modify build definitions. Admins can do everything β€” but even they should have separate accounts for daily work versus admin tasks.

The AZ-400 exam tests your ability to design a least-privilege access model across both GitHub and Azure DevOps. This includes understanding the role hierarchies in each platform, when to use security groups versus individual permissions, and how to structure projects and teams for both agility and governance.

  • GitHub roles β€” repository-level (Read through Admin) and organisation-level (Member, Owner, moderator)
  • Azure DevOps groups β€” project-level security groups, access levels, and team structure
  • Outside collaborators and Stakeholder access β€” secure external participation
  • Project and team configuration β€” organising work across teams in Azure DevOps

GitHub repository roles

GitHub uses a five-tier permission model for repositories. Each role inherits all permissions from the level below it.

RoleKey PermissionsTypical User
ReadClone, view code, open issues, commentExternal contributors, stakeholders
TriageRead + manage issues and PRs (label, assign, close) β€” cannot push codeQA, project managers, support engineers
WriteTriage + push to non-protected branches, create branches, merge PRs (if approved)Developers
MaintainWrite + manage repo settings (except destructive actions), manage topics and wikisTech leads, senior developers
AdminFull control β€” delete repo, manage security settings, configure branch protectionRepository owners

Organisation-level roles

  • Member β€” default role. Can see all non-private repos, create repos (if allowed), and be added to teams.
  • Owner β€” full administrative control over the organisation, billing, and all repos. Limit to 2-3 people.
  • Moderator β€” can manage comments and interactions across the org. No code access.
  • Billing manager β€” can manage billing settings only. No code or admin access.

Outside collaborators

An outside collaborator is someone who is not a member of the organisation but has access to one or more repositories. Key facts:

  • Must be explicitly invited per repository
  • Cannot see other repositories or organisation settings
  • Can be granted any repository role (Read through Admin)
  • Organisations can restrict outside collaborator invitations to owners only
  • Useful for contractors, consultants, or partner teams
Question

What is the key difference between the Triage and Write roles in GitHub?

Click or press Enter to reveal answer

Answer

Triage can manage issues and PRs (label, assign, close, reopen) but CANNOT push code or merge PRs. Write can do everything Triage can, plus push code to non-protected branches and merge approved PRs. Triage is ideal for QA and project managers who manage the backlog but do not write code.

Click to flip back

Azure DevOps security model

Azure DevOps uses a group-based security model with permissions inherited through a hierarchy: Organisation β†’ Project β†’ Team β†’ Area/Iteration.

Default project-level groups

GroupKey PermissionsTypical Members
Project AdministratorsFull project control β€” manage teams, repos, pipelines, service connectionsTech leads, project owners
Build AdministratorsManage build pipelines and build definitionsCI/CD engineers
ContributorsCreate and edit work items, push code, create branches, run pipelinesDevelopers
ReadersRead-only access to code, work items, and pipeline resultsStakeholders, auditors
Project Valid UsersBaseline access to browse the projectAuto-populated β€” everyone in the project
Release AdministratorsManage release pipelines and approve deploymentsRelease managers

Organisation-level groups

  • Project Collection Administrators β€” highest level. Full control over all projects, agents, extensions, and settings.
  • Project Collection Build Service β€” the identity Azure Pipelines uses. Control its permissions to restrict what pipelines can do.

The Build Service identity

Every Azure DevOps organisation has a Project Collection Build Service account. This is the identity that runs pipelines. Its permissions determine what pipelines can access:

  • By default, it has Contribute access to repositories in the project
  • You can restrict it per-repository (e.g., deny access to sensitive repos)
  • For cross-project access, explicitly grant the Build Service account permissions in the target project
Question

What is the 'Project Collection Build Service' in Azure DevOps?

Click or press Enter to reveal answer

Answer

It is the built-in identity that Azure Pipelines uses to execute pipeline tasks. It has its own set of permissions that you can configure per-repository and per-project. Restricting its permissions is a key security control β€” for example, you can deny it write access to production configuration repositories.

Click to flip back

Azure DevOps access levels

Access levels control which features a user can use, separate from permissions (which control what they can do within those features).

Azure DevOps Access Levels
FeatureStakeholder (Free)BasicBasic + Test Plans
View work items and boardsYesYesYes
Create and edit work itemsYes (limited in private projects)YesYes
View pipelines and releasesYesYesYes
Run pipelinesNoYesYes
Manage repos (push, PR)NoYesYes
Use Boards fully (sprints, capacity)LimitedYesYes
Test Plans (create and run test suites)NoNoYes
CostFree (unlimited users)Paid per user (first 5 free)Paid per user (add-on)
Ideal forExecutives, clients, business usersDevelopers, QA, DevOps engineersDedicated test managers

Stakeholder access is strategically important: it allows unlimited free users to view progress, create work items, and participate in discussions β€” without consuming paid licences. This is how you give visibility to business stakeholders, executives, and external clients.

Scenario: Amira designs access for Meridian Insurance

πŸ›οΈ Dr. Amira Hassan is designing the Azure DevOps access model for Meridian Insurance (8,000 employees). Dmitri (VP Engineering) wants all 200 developers to have full access, but also wants 50 business analysts and 15 executives to see progress.

Amira’s design:

  • 200 developers β†’ Basic access level, added to Contributors group per project
  • 50 business analysts β†’ Stakeholder access (free), added to a custom β€œBusiness Stakeholders” group with read access to Boards and work items
  • 15 executives β†’ Stakeholder access (free), added to a dashboard-only team with visibility into progress charts
  • 5 release managers β†’ Basic access, added to Release Administrators group
  • 3 platform leads β†’ Basic access, added to Project Administrators group
  • Elena (compliance) β†’ Basic access + custom permissions to view audit logs and pipeline approvals

Cost impact: Only 208 paid Basic licences instead of 283. The 65 Stakeholder users are free.

GitHub vs Azure DevOps permissions

Permission Models: GitHub vs Azure DevOps
ConceptGitHubAzure DevOps
Permission unitRepository roles (Read/Triage/Write/Maintain/Admin)Security groups with granular allow/deny/not set
InheritanceOrg defaults flow to reposOrg β†’ Project β†’ Team β†’ Area/Iteration
External usersOutside collaborators (per-repo invite)Stakeholder access level (free, limited features)
Team structureTeams (org-level, grant repo access)Teams (project-level, own backlogs and sprints)
Pipeline permissionsWorkflow permissions block + environment protection rulesPipeline permissions, approvals, branch restrictions on service connections
Free tier external usersOutside collaborators (count against paid seats on paid plans)Stakeholder access (unlimited, truly free)
Highest admin roleOrganisation OwnerProject Collection Administrator
Question

In Azure DevOps, what is the difference between an access level and a permission?

Click or press Enter to reveal answer

Answer

An access level controls which FEATURES a user can see (Boards, Repos, Pipelines, Test Plans). A permission controls what actions the user can PERFORM within those features (read code, push code, manage pipelines, approve releases). A user needs both the right access level AND the right permissions to do their work.

Click to flip back

Configuring projects and teams in Azure DevOps

Project structure patterns

PatternDescriptionWhen to Use
Single projectAll teams in one project, separated by Area PathsSmall-to-medium orgs with shared backlogs
One project per productEach product/service has its own projectMedium-to-large orgs needing isolation between products
One project per teamEach team owns a projectAvoid β€” leads to fragmentation and cross-project query headaches

Team configuration

Within a project, teams provide:

  • Own backlog β€” each team manages its own Product Backlog and Sprint Backlogs
  • Own sprints β€” teams can have different iteration cadences
  • Own dashboards β€” team-specific metrics and widgets
  • Area path ownership β€” work items in a specific area path belong to the team
  • Notification settings β€” team-level alerts

Default team: Every project has a default team that owns the root Area Path. Additional teams should be created with child Area Paths.

Question

How do you give two teams in the same Azure DevOps project their own separate backlogs?

Click or press Enter to reveal answer

Answer

Create child Area Paths under the project root (e.g., 'MyProject/Team Alpha' and 'MyProject/Team Beta'). Create a team for each, and in the team settings, configure the team to own its Area Path. Work items under each Area Path appear only in that team's backlog.

Click to flip back

πŸ’‘ Exam tip: Least-privilege patterns

The exam frequently tests least-privilege reasoning. Common patterns:

  • Developers should be Contributors, not Project Administrators
  • Stakeholders viewing progress should get Stakeholder access (free), not Basic
  • Release approvers need only approve permission on environments/stages β€” not Build Administrator or Project Admin
  • Outside contractors in GitHub should be outside collaborators with Write (not Admin) on their repo only
  • Service accounts (pipeline identities) should have the minimum RBAC scope β€” resource group, not subscription
  • Branch protection enforces who can merge, even if they have Write access to the repo

Knowledge check

Knowledge Check

Nadia wants business analysts at Meridian Insurance to view Azure Boards, create work items, and leave comments β€” but NOT run pipelines or manage code. What is the most cost-effective solution?

Knowledge Check

Jordan's team has a GitHub organisation with 20 repositories. A security contractor needs Write access to three specific repos for a six-month engagement. What is the best approach?

Knowledge Check

In Azure DevOps, which group should a user belong to if they need to manage build pipeline definitions but NOT approve production releases or manage project settings?

🎬 Video coming soon

Authorization & Access: GitHub Roles & Azure DevOps Security

Next up: Secrets and Secure Pipelines: Key Vault and Workload Federation

← Previous

Pipeline Identity: Service Principals, Managed IDs & OIDC

Next β†’

Secrets & Secure Pipelines: Key Vault & Workload Federation

Guided

I learn, I simplify, I share.

A Guide to Cloud YouTube Feedback

© 2026 Sutheesh. All rights reserved.

Guided is an independent study resource and is not affiliated with, endorsed by, or officially connected to Microsoft. Microsoft, Azure, and related trademarks are property of Microsoft Corporation. Always verify information against Microsoft Learn.