Marketplace connector trust policy
This page is for your security team. It explains what the FlowStateMarketplaceConnector
role allows, who can use it, and why. The OpenTofu module and the CloudFormation template
from the setup page create the role, so you never write these policies yourself.
Who can use the role
The trust policy allows two things together:
- Only FlowState’s own service roles may use your role. There are two: one serves the
FlowState web app and the HubSpot card, the other serves AI assistants (MCP).
Settings → Integrations → Marketplace → Set up Marketplace connector shows both as
FlowState principal ARN values. Include both. If only the first one is listed, the web
app and the card work, but MCP fails with
AccessDenied. - Only with your ExternalId. Every request must carry the secret ExternalId of your tenant, shown as External ID on the same page. It must match exactly, with no spaces before or after it.
The ExternalId protects you against the confused-deputy problem . Another FlowState tenant does not know your ExternalId, so it cannot make FlowState use your role.
What the role can do
The role has one inline policy, FlowStateMarketplaceCatalogAccess. There is no AWS managed
policy for these actions.
| Purpose | Scope |
|---|---|
| Find your SaaS products and offers | Your AWS Marketplace catalog |
| Read a product or an offer, and create, clone, release and expire offers | SaaS products, offers and change requests in your own catalog, in us-east-1 |
| Read which currencies your seller account can be paid in, so the offer form offers only those | Your seller profile, read only |
| List the purchase agreements that your offers have produced | Agreements where you are the seller, read only |
The role cannot do anything outside AWS Marketplace. The AWS Marketplace catalog exists only in us-east-1, so the role is limited to that Region.
FlowState does not store AWS keys. It gets short-lived credentials each time it uses the role.