This architecture and sample demonstrates how to simplify management of the AWS Service Catalogs,related products and sharing of portfolios with other accounts truly by maintaining them in version control, thereby adopting “Infrastructure as Code” practices. This solution also delivers the updates to the products using a Continuous Delivery AWS CodePipeline
For more details, refer the blogpost
mapping.yaml is the core configuration component of this solution, which defines how your portfolio , permissions and products associated with the portfolio are defined. This configuration file is how your portfolio will look like in Service Catalog, when deployed by this solution.
-
name (string)
Display name of the portfolio. This is the unique identifier and must match any already existing portfolio.
Length Constraints: Minimum length of 1. Maximum length of 100.
Example: Infrastructure -
description (string)
Description of the portfolio. This field in the mapping.json overrides the description of the portfolio in service catalog during the sync operation, so that the mapping.json is the ultimate source of truth.
Length Constraints: Maximum length of 2000.
Example: Includes all the products related to infrastructure -
owner (string)
Owner of the portfolio. This field in the mapping.json overrides the owner of the portfolio in service catalog during the sync operation, so that the mapping.json is the ultimate source of truth.
Length Constraints: Minimum length of 1. Maximum length of 20.
Example: operations -
products (list)
-
name (string)
Display name of the product. This is the unique identifier and must match any already existing product. A new product will be created and associated with the portfolio, if the name does not matches with any product already associated in the portfolio. If a match is found, a new version of the product will be created.
Example: VPC -
template (string)
Name of the CloudFormation template on file system
Example: product-vpc.yaml -
owner(string)
Owner of the template, who has authored this template
Example: [email protected] -
description(string)
Description of the product
Example: VPC and 4 subnet architecture
-
-
accounts (list)
List of accounts, with which you wish to share the portfolio with.
If you add new accounts in the list, the portfolio will be shared with that account. If you remove any account from the list, the portfolio will be un-shared with that account.
Must be a valid AWS Account.- identifier (string)
Friendly name with which you wish to identify the account number
Example: Test Account - number (string)
AWS Account number, with which you wish to share the portfolio with
Example: 123456789012
- identifier (string)
-
tags (list)
Key value pair to tag the portfolio with- Key(string)
The Key name - Value (string)
The value of the Key
- Key(string)
-
principals (list)
List of IAM Users, Roles or Groups to allow using the products in the portfolio in the current account. Must be either IAM Role (role/SOME_ROLE) or IAM User (user/SOME_USR) or IAM Group (group/SOME_GROUP) Example: - role/Admin - user/name - group/AdminGroup