An extra 30% off every course until Sunday, October 11.Choose your certification →

Copyright (c) 2026 MindMesh Academy. All rights reserved. This content is proprietary and may not be reproduced or distributed without permission.

2.2.1.8. Implementing Infrastructure Patterns & Governance with IaC (Service Catalog, CloudFormation Modules)

2.2.1.8. Implementing Infrastructure Patterns & Governance with IaC (Service Catalog, Proton)

Organizations need guardrails that let developers provision infrastructure quickly without violating security, compliance, or cost policies.

AWS Service Catalog lets administrators create portfolios of approved CloudFormation templates (called products). Developers browse a self-service portal and launch products without needing CloudFormation knowledge or broad IAM permissions.

Key concepts:

  • Portfolio: Collection of products shared with specific IAM roles, groups, or OUs
  • Product: A CloudFormation template with versioning
  • Constraints: Launch constraints (IAM role for provisioning), template constraints (override defaults), tag constraints (enforce mandatory tags)

AWS Proton (still named in the exam guide) let platform teams publish environment templates (VPC, cluster) and service templates (deployment patterns) that developers filled in with minimal inputs. It stopped accepting new customers on October 7, 2025 and reaches end of support on October 7, 2026. AWS recommends CloudFormation Git sync for a GitOps template workflow, CodePipeline with CodeBuild for full control, or Harmonix on AWS (a Backstage-based AWS Partner solution) for a developer portal.

# Service Catalog launch constraint
- Type: AWS::ServiceCatalog::LaunchRoleConstraint
  Properties:
    RoleArn: arn:aws:iam::123456789012:role/SCProvisioningRole
    PortfolioId: !Ref Portfolio
    ProductId: !Ref Product
Governance patterns:
  • Use SCPs to prevent resource creation outside of Service Catalog
  • Use AWS Config rules to detect resources not provisioned through Service Catalog
  • Use tag policies (Organizations) to enforce mandatory cost-allocation tags

Exam Trap: Without a launch constraint, the end user's IAM permissions provision resources — meaning they'd need ec2:RunInstances, rds:CreateDBInstance, etc. With a launch constraint, the specified role's permissions are used, and the user only needs servicecatalog:ProvisionProduct.

See how it connects
Alvin Varughese
Written byAlvin Varughese
Founder•20 professional certifications