AWS Marketplace integration | Common | Fluid Attacks Help

AWS Marketplace integration

At Fluid Attacks, we have integrated our platform into the AWS Marketplace to facilitate its acquisition. Below is a detailed description of the infrastructure and configuration required to manage the platform on the AWS Marketplace.

Marketplace infrastructure

The relevant repository can be found at this link.

Configuration files

  1. idp.tf: Configures identity providers for Okta and GitLab.

    1. Okta: Allows users with assigned roles to access the AWS console. 

    2. GitLab: Allows the GitLab runner to assume the necessary role for Terraform deployment permissions.

  2. main.tf and outputs.tf: General configuration files that define Terraform resources and outputs. 

    1. main.tf: Specifies the resources to be scared.  

    2. otputs.tf: Defines the outputs that can be used by other modules or for reference.

  3. roles.tf: Defines roles and permissions in the AWS account.

    1. MarketplaceAdmin: Full access to Billing and the Marketplace. Assigned to marketing and product management personnel.

    2. Admin: Full access to the account. Exclusively assigned to one person for any administrative needs. 

    3. Development: Allows the Terraform test runner to have read-only permissions. 

    4. Deployment: Allows the Terraform production runner to have the necessary read and write permissions.

    5. IntegratesMarketplaceCrossAccount: Allows Integrates to connect with the Marketplace API and integrate from the platform.

  4. sops.tf: Configuration of KMS keys for using SOPS and storing encrypted secrets in the repository.

    1. SOPS (Secret Operations): Tool for managing and encrypting secrets. 

    2. KMS (Key Management Service): AWS service for managing cryptographic keys.

  5. sqs.tf: Configuration of an SWS queue to receive messages from AWS SNS resources when a product is created in the Marketplace.

    1. Use of SWS (Simple Queue Service): Message queue that enables decoupling and scaling of microservices, distributed systems, and serverless applications.

    2. Received Messages: Updates on user subscriptions, renewals, cancellations, modifications, etc. 

  6. state.tf: Manages the Terraform state. 

    1. Backend: Configuration of state storage in a remote backend, such as an S3 bucket.

  7. storage.tf: Configuration of a public S3 bucket to store files necessary for product configuration.

    1. Public Files: Logo, terms of use, and other configuration files that must be publicly accessible.

  8. users.tf: Creation of users for Okta integration with the account via SAML.

    1. SAML (Security Assertion Markup Language): Protocol for single sign-on (SSO) in login systems. 

  9. variables.tf: Configuration file that defines the variables used in other Terraform files. 

    1. Defined Variables: Reusable parameters to avoid repetition and facilitate configuration management.

With detailed insights into each component, users can ensure smooth integration and operation.