AWS Marketplace

Learn about Stigg's native integration with the AWS Marketplace

Overview

AWS Marketplace is a curated digital catalog that customers can use to find, buy, deploy, and manage third-party software to build solutions and run their businesses. When customers subscribe to products via the AWS Marketplace, AWS handles billing and payments, and charges appear on customers' AWS bill.

Stigg's native integration with the AWS Marketplace allows you to leverage the same entitlement management and metering infrastructure for access enforcement and usage reporting regardless of where your product is listed (on your public website or the AWS Marketplace) or how your customers are billed (via AWS or other billing solution).


Entity mapping

Stigg EntityAWS Marketplace EntityNotes
FeatureN/A
ProductProduct
PlanDimensionSince pricing is defined on the AWS Marketplace, plans that are imported to Stigg will be defined with custom pricing.
CustomerCustomerMapping between customers on the Stigg platform and in AWS is achieved using the AWS ID.
SubscriptionSubscription

🚧

Stigg's beta integration with the AWS Marketplace currently only supports AWS products with a SaaS contract pricing model where the customer can choose one tier from multiple tiers offered.

Prerequisites

Before you get started, pleas make sure that the following prerequisites are met:

Setting up the integration

Granting Stigg access to your AWS Marketplace listing

As part of the integration process, Stigg will import your listing in the AWS Marketplace and create the relevant entities in your Stigg environment. To do so, Stigg must be granted access to your listing in the AWS Marketplace.

In Stigg

In the Stigg app, navigate to the AWS Integration page under Apps > Integrations.

Copy the AWS Marketplace role configuration.

In AWS

Create an AWS Marketplace access policy

In AWS Identity Access Management (IAM) create a new policy.

Under the Policy Editor section, select "JSON".

Paste the the below configuration:

{
  "Version": "2012-10-17",
  "Statement": [
      {
          "Action": [
              "aws-marketplace:BatchMeterUsage",
              "aws-marketplace:GetEntitlements",
              "aws-marketplace:ListEntities",
              "aws-marketplace:DescribeEntity"
          ],
          "Effect": "Allow",
          "Resource": "*"
      }
  ]
}

Click "Next".

Enter the policy name, for example StiggAWSMarketplaceAccess.

Click "Create Policy".


Create the Stigg AWS Marketplace role

In AWS Identity Access Management (IAM) create a new role.

In the shown wizard, select "Custom trust policy".

Paste the role configuration that was copied from the Stigg app.

Click "Next".

Select the policy that you created in the previous step.

Click "Next".

Enter the role name, for example StiggAWSMarketplaceRole.

Click "Create role".

Open the created role and copy its ARN.


In Stigg

In the Stigg app, navigate to the AWS Integration page under Apps > Integrations.

Enter the ARN from the previous step.

Click "Connect".


Notifying Stigg on subscription creation and updates

In this step we'll be configuring AWS to notify Stigg upon creation of new subscriptions, upgrade, downgrades and cancelations.

In Stigg

In the Stigg app, navigate to the AWS Integration page under Apps > Integrations.

Copy the URL of the notification endpoint.


In AWS

In the Amazon Marketplace Management Portal, select the product that you'd like import into Stigg.

Copy the SNS topics of the metering and entitlement services:

In AWS Simple Notification Service (SNS) create a new subscription.

πŸ“˜

Due to the fact that currently AWS marketplace operates only in us-east-1, make sure to choose this region on the top right corner when creating a subscription.

Enter the following details:

  1. ARN topic - paste the ARN of the metering service SNS topic.
  2. Protocol - HTTPS
  3. Endpoint - paste the URL that you copied from the Stigg app.

Click "Create subscription".

Repeat the process with the ARN of the entitlement service SNS topic.

Repeat the steps in AWS for additional products that you'd like to import into Stigg.


Importing products into Stigg

In the Stigg app, under the AWS Integration page click on the "Import listing" tile.

In the opened screen, select the product that you'd like to import.

Map each of the product's dimensions in the AWS Marketplace to a plan in the Stigg platform.

Click "Import".

Once the import process completes, you'll be redirected to the imported product.

Each of the imported plans is created with custom pricing.

You can now assign features to plans by defining their entitlement.

Conclude the import process by publishing each of the imported plans. Doing so will allow your customers to subscribe to them.


Provisioning AWS Marketplace customers in Stigg

When customers subscribe to your products in the AWS Marketplace for the first time, they'll be redirected to your application where they can register for your service or login to their existing account.

As part of this redirect action, AWS will include the context of AWS Marketplace customer.

In order to grant customers access to products that are listed on the AWS Marketplace, the context of the AWS Marketplace customer ID must be passed to Stigg.

In AWS

Configure AWS to redirect to your application when customers subscribes to your product from the AWS Marketplace.

In your application

Resolve the CustomerIdentifier, CustomerAWSAccountId from the redirect request made from AWS Marketplace.

If needed, store the customer information in your application.

Pass the CustomerIdentifier to Stigg:

  1. If the customer doesn't exist in your application, leverage the Stigg API and SDKs to provision it in Stigg. Make sure to pass the resolved CustomerIdentifier as the customer's awsId field.
  2. If the customer already exists in your application, leverage the Stigg API and SDKs to update its AWS ID with the CustomerIdentifier.

πŸ“˜

There's no need to explicitly provision subscriptions to AWS products using the Stigg API and SDKs:

  1. When an AWS Marketplace context is provided to Stigg, Stigg will automatically fetch their relevant subscription from AWS.
  2. When a subscription is updated or canceled, Stigg will automatically process notifications about these events from AWS.

🚧

Since the subscription flow for products listed on the AWS Marketplace is initiated by AWS Marketplace, it's not possible to provision subscriptions to these products using the Stigg app UI.


Indication for synced entities

Entities that are synced form the AWS Marketplace to Stigg will be marked with an AWS logo, and include an "AWS ID" property, for example:


Applying pricing changes

When your product is published on the AWS Marketplace, the AWS Marketplace serves as the source of truth for its price configuration; therefore all changes to plan pricing take place there. Changes to the level of access (entitlements) that customers have in each plan will be done using Stigg.

When adding a new product dimension that represents a plan in the AWS Marketplace or editing an existing one, you will need to re-sync your listing into Stigg. Products and dimensions that have already been synced to Stigg will have a proper indication.

When removing a product dimension in the AWS Marketplace, you can simply archive the plan that's mapped to that dimension from the Stigg app.


Removing the integration

To remove the integration, click on the dotted menu icon and select the "Remove" action.

Confirm the action by clicking on the "Remove" button in the opened modal.