Service Catalog Factory


Service Catalog Factory is a python3 framework that allows to build multi region AWS Service Catalog portfolios defined in YAML. Each product can be versioned, each can be stored in different repository. All products are built using CodePipelines.

Lab Schema


1.Framework install

Using CloudFormation, create new stack using template located in S3

Template URL

2.CloudFormation parameters

Use servicecatalog-factory-initialiser or any other friendly name as a stack name and select default region.

3.CloudFormation stacks

Parent stack should deploy additional two. Wait untill all will be completed

4.IAM Role

Using IAM, create role: TeamRole. Do not attach any access policy, trust policy shut be set to trust current AWS Account

5.Clone repo

Go to CodeCommit, find ServiceCatalogFactory repo and copy https url.

6.Clone repo (#2)

To clone repository, you need to configure AWS credentials (using SSO) and git credential helper.

Credential Helper

7.Create portfolio

Go to previously cloned repo, create portfolios directory. Copy Radkowski.yaml file into newly created directory.

Push repo to CodeCommit.


8.ServiceCatalogFactory CodePipeline

Pushing file to CodeComit will trigger CodePipeline

9.Create Product repo

Come back to CodeCommit. Create repo Radkowski-policy. It will keep product source code.

10.Product source code

Clone repo the same way as in step #6 or use CodeCommit console to create product.template.yaml file.


11.Update portfolio

Come back to ServiceCatalogFactory repo and update Radkowski.yaml file by adding product section. Updated source code can be found by clicking orange button below


12.Product PipeLine

Select CodePipeline. You should now see extra pipeline dedicated for product which you have just defined.

Wait for both to be completed.

13.ServiceCatalog portfolio

Go to AWS Service Catalog. New portfolios should be visible under Administration->Portfolios.

I am text block. Click edit button to change this text. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.

14.ServiceCatalog product

To see products , clisk newly created portfolio.

15.ServiceCatalog product permissions

To set produict permissions, navigate to Group, Users and Roles tab.

16.ServiceCatalog product permissions

Grant access to product for selected users, groups and/or roles.

17.Product Launch (#1)

Come back to product view, select previously created product.

18.Product Launch (#2)

To deploy product, click Launch Product.

19.Product Launch (#3)

Accept/modify product name and select version to be deployed.

Confirm by clicking Launch Product.

20.Product Launch (#4)

Deployed product should change status from Under-Change to Available.

Test Area

20.Product Launch (#5)

Go to IAM. Confirm if product (Policy) has been successfully deployed based on product.template.yaml from Step #10.