AWS Service Catalog connector in Cloud Action
Service import best practices
- Identify and import only those services that are specified in the product portfolio created for BMC Helix Digital Workplace Catalog.
Products in AWS Service Catalog can have multiple versions. Each AWS Product version for BMC Helix Digital Workplace Catalog is imported as a separate service.
For example, a Dynamo product with three versions in AWS Service Catalog is imported to BMC Helix Digital Workplace Catalog as three services:
- DynamoDB - 1
- DynamoDB - 2
- DynamoDB - 3
- After importing services, the associated questions are not marked as required, even when provisioning requires them. Therefore, you must set the questions to Required.
Before you begin
Make sure you register an account in the AWS Cloud. For information about the AWS Service Catalog account creation, see Create and activate the AWS Service Catalog account in the Amazon documentation.
Workflow to configure the AWS Service Catalog connector
The following table describes the tasks to configure the AWS Service Catalog connector and import the AWS catalog services in BMC Helix Digital Workplace Catalog:
Task | Product | Action | Reference |
---|---|---|---|
1 | AWS Management Console | Create an AWS authentication user role and IAM user for BMC Helix Digital Workplace Catalog. Identify and add all permissions to your AWS Service Catalog portfolio to the user. | |
2 | AWS Management Console | Add permissions and constrains for the end users to use the imported services. | |
3 | BMC Helix Digital Workplace Catalog | Add and configure the AWS Service Catalog connector in Cloud Action and establish the connection between the AWS Service Catalog instance and BMC Helix Digital Workplace Catalog. | |
4 | BMC Helix Digital Workplace Catalog | Import the services and products from AWS Service Catalog to BMC Helix Digital Workplace Catalog so that end users can request them from the end-user console. |
Task 1: To create an AWS authentication user roles and IAM user for Catalog
- Create an IAM user; see IAM users for details.
The IAM user should have the following policies:- AmazonS3ReadOnlyAccess
- AWSServiceCatalogAdminReadOnlyAccess
Inline policy, as shown in the following code block:
Generate an Access Key ID and a Secret Access Key for the added user.
See Access keys in the AWS console for details.Create an authentication role for the AWS service by following the instructions in Creating a role to delegate permissions to an IAM user.
Use the following values for the parameters:Parameter
Value
Policy
- AWSServiceCatalogEndUserFullAccess
- AmazonS3ReadOnlyAccess
Inline policy for the products in your AWS Service Catalog portfolio, if required. For example, if you have Amazon EC2 in your portfolio, the inline policy example might be as follows:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "RunAndTerminateInstances",
"Effect": "Allow",
"Action": [
"ec2:TerminateInstances",
"ec2:Describe*",
"ec2:RunInstances"
],
"Resource": "*"
}
]
}
Trusted entity type
AWS service
- Update the trust policy from the Summary page of the IAM role by selecting Trust Relationships > Edit trust policy.
Modify the JSON by adding the following rows:
"Service":"servicecatalog.amazonaws.com",
"AWS": "arn:aws:iam::<Your AWS account Id>:user/<your AIM user name>"The following image is an example of modifying the JSON:
Review the value of the Role ARN field, and copy it to the clipboard or save it to a local file.
The following image shows the Summary page of the added role:
Task 2: To add permissions for end users to use the imported services
Complete the following procedures to grant access for services to BMC Helix Digital Workplace end users:
Create a product portfolio in the AWS Service Catalog; see Create an AWS Service Catalog portfolio.
Add AWS Service Catalog products to your portfolio; see Adding AWS Marketplace products to your portfolio.
Add your IAM user and IAM role to the product portfolio; see Grant end users access to the portfolio.
Add constraints to the products in your portfolio, see Using AWS Service Catalog Constraints Using AWS Service Catalog Constraints.
The following image shows an example of a portfolio created for BMC Helix Digital Workplace Catalog:
When an end user requests a product specified in the Constraints section, the product is launched in the AWS console. A tag record about the user who requested a product is recorded in the AWS Console for all created resources and provisioned products.
The following image shows the aws:servicecatalog:provisioningPrincipalArn tag with the value that contains the login ID of the user who requested the service:
Task 3: To configure the AWS Service Catalog connector from Cloud Action in BMC Helix Digital Workplace Catalog
- As a Catalog administrator, log in to BMC Helix Digital Workplace Catalog.
- Navigate to Services > Connectors.
- To create a connection, click New Connection.
In the Connection Name field, type a meaningful name.
Example: AWS Service Catalog
- From the Connector list, select AWS Catalog.
- Click Save.
- In the Connection Options pane, complete the following fields:
- Access Key ID—Enter the Access Key ID that you generated in Task 1.
- Secret access key—Enter the Secret access key that you generated in Task 1.
- Role—Enter the authentication role that you created for the user in Task 1
Region—Enter the region of the AWS Service Catalog instance.
The following image is an example of the AWS Service Catalog configuration:
- Click Save.
To verify the connection, on the Connector Management page, see the Status column.
A successful connection is denoted by the Connected status.
Task 4: To import the product and services from AWS Service Catalog
After the connection between AWS Service Catalog and BMC Helix Digital Workplace Catalog is successful, you can import the products and services. Perform the steps in Importing-service-catalog-items-from-external-systems to import the product and services from AWS Service Catalog.
After a service is imported, both workflows and questionnaires are successfully imported from the AWS Service Catalog. For an example of a workflow, see Requesting services from AWS Service Catalog.
You can update the services or verify and publish them for the end users. For more information, see Approving-and-publishing-services.
Results
The following components of the services are imported from AWS Service Catalog:
Service profile details
The service profile details from AWS Service Catalog are mapped to the following fields in BMC Helix Digital Workplace Catalog:
- Product - Version Description—Is mapped to the service excerpt
- Product Description—Is mapped to the service description
When a service is imported from AWS Service Catalog, it has the AWS default logo. This logo is the same for all services imported from AWS Service Catalog.
Workflow
An imported workflow includes the following actions:
- Specific actions available through AWS Service Catalog connector
- Common workflow actions such as Send Email, Track External Activity, Build Input Set, and Receive Task. For more information about these workflow elements, see Workflow-designer-elements-overview.
Imported workflow can contain one or more Build Input Set elements that contain Parameters and TagOptions. Each element can have a maximum of 10 of them. The Launch AWS Catalog Product element contains all answers provided to the questions to provision a new virtual machine in AWS.
If an imported service includes the Send Email workflow element, an email is sent to end users who request this service from the AWS Service Catalog. End users receive emails when services are successfully provisioned, and when services were not provisioned (failed in the AWS Console).
Emails are sent to service requesters only if the SMTP settings are configured in BMC Helix Digital Workplace.
Questionnaire
All questions and parameters associated with the product template are imported from the AWS Service Catalog. A questionnaire attached to an imported service can include process questions from the following information in the AWS Console:
- AWS template
Process questions available in a questionnaire are based on the template used to create the product in the AWS console. - The questionnaire can have questions that require user input as well as questions with default values such as:
- ReadCapacityUnits
- WriteCapacityUnits
- HashKeyElementType
The following table describes some questions the require user input:
Imported questions | Description |
---|---|
ProvisionedProductName | Name of a product provisioned in AWS. Important: This value must be unique in the AWS Service Catalog console, and must not contain spaces. |
Public key of the key pair to enable SSH access | Value of the public key required to connect to an AWS instance. End users who request an AWS service need to generate a key pair (private and public key) by using any third-party tool. The end users must keep the private key safe, and enter the public key value into a text area. |
HashKeyElementName | Name of a key pair saved in the AWS Service Catalog console. This value is required to launch an AWS instance. During the launch of a product, a unique key pair name is created inside the EC2 Console, in the Parameters > KeyPairName section. Each time an end user requests a product by using the public key, the same pubic key name is reused. |
AWS specific parameters
An imported questionnaire can include AWS specific parameters. For details about these parameters, see AWS specific parameters.- Tag options
TagOptions are imported from from a portfolio and a product. TagOptions are imported as questions. The TagOptions questions can have default values or a few values to select.
Workflow actions
The AWS Service Catalog connector provides the Launch Service Catalog Product action available from the Connector workflow element. This action launches a service in the AWS Service Catalog.
This action cannot be edited. The parameters of the action can be viewed in the JSON view.
Default service actions
The AWS Service Catalog connector provides a predefined service action: Terminate. It is available for end users who have requested AWS services. By using this action, end users can terminate the provisioned service. When the provisioned service is terminated, it is not available to them on their My Stuff page. For more details about predefined service actions, see Setting-up-the-My-Stuff-page.