AWS Service Catalog
- 1. The Core Concept
AWS Service Catalog allows organizations to create and manage catalogs of IT services that are approved for use on AWS.
- The Problem it Solves: Developers want to launch resources quickly, but the Security team doesn't want to give them full Admin access to creating whatever they want.
- The Solution: The Security/Cloud team creates "Approved Templates" (Products) and puts them in a "Menu" (Portfolio). Developers can only launch items from this menu.
- 2. Key Vocabulary (Exam Keywords)
- Product:
- A product is an IT service that you want to make available for deployment.
-
Crucial for Exam: In Service Catalog, a "Product" is almost always defined by an AWS CloudFormation template.
-
Portfolio:
- A collection of "Products."
-
You assign Portfolios to specific IAM Users, Groups, or Roles.
-
Provisioning Artifact:
-
This is simply a version of a product. (e.g., v1.0 of your web server uses t2.micro, v2.0 uses t3.micro).
-
Constraints:
- Rules that limit how the product can be deployed.
- Example: You can launch an EC2 instance, but the constraint forces it to be a
t2.microort3.micro. You cannot launch ac5.large.
- 3. The #1 Exam Topic: "Launch Constraints" (The Magic Trick)
This is the most frequent Service Catalog question pattern on the exam.
The Scenario:
You have a Junior Developer. You do not want to give them permission to create EC2 instances directly (no ec2:RunInstances permission). However, you do want them to be able to launch a specific, approved Web Server for their project.
The Solution: You use Service Catalog with a Launch Constraint.
- You create a Service Catalog Product (the Web Server CloudFormation template).
- You create an IAM Role that does have permission to create EC2 instances.
- You assign that Role to the Product as a Launch Constraint.
- The Junior Developer clicks "Launch."
The Result: The Developer triggers the launch, but the Service Catalog service assumes the Role to create the resources. The Developer never actually holds the permissions themselves.
Exam Rule: If a question asks how to allow users to provision resources without granting them direct access to the underlying AWS services, the answer is AWS Service Catalog with Launch Constraints.
- 4. Deployment & Sharing (Multi-Account Strategy)
The exam often asks how to share these standard templates across a large organization with many AWS accounts.
- Hub and Spoke Model: You create the Portfolios in a central "Master" or "Hub" account.
- AWS Organizations: You share the Portfolio with other AWS Accounts (or the entire Organization) using AWS Organizations integration.
- Importing: The "Spoke" (child) accounts import the portfolio so their local users can see the products.
- 5. Cheat Sheet Summary
| Feature | Exam Concept |
|---|---|
| Primary Use Case | Governance, Compliance, and Self-Service. |
| Underlying Tech | Uses CloudFormation templates to define the infrastructure. |
| User Access | Users do not need permissions for the resources (e.g., EC2, RDS); they only need permission to use the Service Catalog. |
| Launch Role | Allows users to provision resources they normally don't have access to (Security via Obscurity/Proxy). |
| Tagging | You can enforce TagOption Libraries to ensure every resource launched automatically has the correct Cost Center tags. |
- Typical Exam Question Format
Q: A company wants to ensure that developers only deploy RDS databases that are encrypted and use a specific instance size. The solution must minimize administrative overhead and allow developers to deploy these databases on demand.
A: Create a CloudFormation template for the RDS database with the required settings. Create a Product in AWS Service Catalog. Add the Product to a Portfolio and share it with the developers. Apply Template Constraints to restrict instance sizes.