Setting up an AWS service account involves two main steps:
  1. Setting up the permissions required to run Plerion infrastructure
  2. Installing the infrastructure in the regions where you want to run workload scans

Step 1: Set up permissions

1

On the Plerion dashboard, go to Settings > Integrations

Sidebar navigation with Settings expanded and Integrations highlighted
2

Find AWS workload service account and click the + button

Integrations page with AWS service account account option and plus button to add integration
3

Launch the CloudFormation stack

Click Launch stack to open the Quick create stack page in AWS CloudFormation.
Launch CloudFormation stack for AWS service account
4

Confirm the service account is added

  • After the CloudFormation stack completes, the service account will be created automatically.
  • You will see it listed on the Service Accounts page in Plerion.
Service account list in Plerion
5

Open the service account details

Service account details page in Plerion
6

Configure regions for deployment

Limitations

  • An AWS account can only be associated with one service account.
  • Service accounts cannot be shared across tenants or organizations.
  • A maximum of 10 service accounts can be created in a tenant.

Resources created

Creating the CloudFormation stack will deploy:
ResourceResource typeDescription
PlerionWorkloadAccessRoleAWS::IAM::RoleRole assumed by the Plerion Control Plane to manage the service account.
PlerionWorkloadAccessPolicyAWS::IAM::ManagedPolicyPolicy attached to the role above, granting permissions to manage appliances and clean up resources.
PlerionInstanceProfileRoleAWS::IAM::RoleRole attached to appliance instances, allowing them to assume target account roles.
PlerionInstanceProfileAWS::IAM::InstanceProfileInstance profile using the appliance role.
PlerionAPICallFunctionAWS::Lambda::FunctionCalls the Plerion API to create the service account automatically.
PlerionAPILambdaExecutionRoleAWS::IAM::RoleRole attached to the Lambda function, allowing it to call the Plerion API.
PlerionAPICallCustom::PlerionAPICallCustom resource for creating the service account through the API.

Troubleshooting

Error: PlerionInstanceProfileRole already exists in the stack
Cause: This indicates the AWS account is already being used as a service account in another Plerion organization.
Fix: Remove the existing service account and stack, or use a different AWS account.

Step 2: Install infrastructure in regions

1

On the service account dashboard, click Enable Region

Enable region button in service account dashboard
2

Launch the CloudFormation stack

Select the region where you want to install the Plerion infrastructure and click Launch Stack.
Select region and launch stack
3

Complete the AWS CloudFormation wizard

Follow the on-screen steps in AWS CloudFormation to deploy the infrastructure.
4

Confirm the region is enabled

  • After the stack finishes, the region will appear as enabled in the service account dashboard.
  • Enable and install infrastructure in all regions where you want to run workload scans.
Service account dashboard showing enabled region
5

Link target accounts to the service account

Resources created

Installing the CloudFormation template will create the following resources in each region:
ResourceResource typeDescription
ElasticIpAZ1AWS::EC2::EIPThe Elastic IP address for the NAT Gateway.
InternetGatewayAWS::EC2::InternetGatewayAllow the VPC to access the internet.
NatGatewayAZ1AWS::EC2::NatGatewayThe NAT Gateway allows the private subnet to access the internet securely
PlerionAPICallCustom::PlerionAPICallCustom resource to call the Plerion API to create the service account automatically.
PlerionAPICallFunctionAWS::Lambda::FunctionThe Lambda function will be used to call the Plerion API to create the service account automatically.
PlerionAPILambdaExecutionRoleAWS::IAM::RoleThe role that will be attached to the PlerionAPICallFunction to allow the function to call the Plerion API.
PlerionApplianceAutoScalingGroupAWS::AutoScaling::AutoScalingGroupThe AutoScaling group that will be used to manage the appliance instances.
PlerionApplianceLaunchLifecycleHookAWS::AutoScaling::LifecycleHookThe lifecycle hook that will be used to manage the appliance instances.
PlerionApplianceLaunchTemplateAWS::EC2::LaunchTemplateThe launch template that will be used to launch the appliance instances.
PlerionApplianceQueueBacklogNoInstancesAWS::CloudWatch::AlarmThe alarm that will be used to scale out the appliance instances.
PlerionApplianceQueueBacklogPerInstanceScaleInAWS::CloudWatch::AlarmThe alarm that will be used to terminate appliances when the queue has a smaller backlog
PlerionApplianceQueueBacklogPerInstanceScaleOutAWS::CloudWatch::AlarmThe alarm that will be used to scale out the appliance instances when the workload scan queue has a backlog.
PlerionApplianceQueueNoBacklogWithInstancesScaleInAWS::CloudWatch::AlarmThe alarm that will be used to terminate appliances when the queue has no backlog.
PlerionApplianceScanQueueAWS::SQS::QueueThe queue that will be used to manage the workload scan queue.
PlerionApplianceSecurityGroupAWS::EC2::SecurityGroupThe security group that will be used to manage the appliance instances. The security group allows outbound access to allow the appliance to scan and send results
PlerionApplianceSubnetAZ1PrivateAWS::EC2::SubnetThe private subnet that will be used to launch the appliance instances.
PlerionApplianceTerminationLifecycleHookAWS::AutoScaling::LifecycleHookThe lifecycle hook that will be used to manage the appliance instances.
PlerionApplianceVPCAWS::EC2::VPCThe VPC that will be used to launch the appliance instances.
PlerionKmsKeyAWS::KMS::KeyThe KMS key that will be used to encrypt the resources being copied from the target accounts.
PlerionScaleInPolicyAWS::AutoScaling::ScalingPolicyThe policy that will be used to terminate appliances when the queue has no backlog.
PlerionScaleOutPolicyAWS::AutoScaling::ScalingPolicyThe policy that will be used to scale out the appliance instances when the workload scan queue has a backlog.
PlerionSubnetAZ1PublicAWS::EC2::SubnetThe public subnet that will be used to host the NAT Gateway.
RouteTableAssociationAZ1PrivateAWS::EC2::SubnetRouteTableAssociationThe association between the private subnet and the private route table.
RouteTableAZ1PrivateCommonAWS::EC2::RouteTableThe private route table that will be used to route traffic to the NAT Gateway.
RouteTableAZ1PublicAWS::EC2::RouteTableThe public route table that will be used to route traffic to the internet.
RouteTableAZ1PublicSubnetAssociationAWS::EC2::SubnetRouteTableAssociationThe association between the public subnet and the public route table.
RouteTablePrivateCommonAZ1InternetRouteAWS::EC2::RouteThe route that will be used to route traffic to the internet via NAT Gateway.
RouteTablePublicAZ1InternetRouteAWS::EC2::RouteThe route that will be used to route traffic to the internet.
ServiceAccountOrganizationCustom::RetrieveOrganizationIdFunctionCustom resource to retrieve the organization ID from the current AWS account.
ServiceAccountOrganizationFunctionAWS::Lambda::FunctionThe Lambda function will be used to retrieve the organization ID from the current AWS account.
ServiceAccountOrganizationFunctionExecutionRoleAWS::IAM::RoleThe role that will be attached to the ServiceAccountOrganizationFunction to allow the function to retrieve the organization ID from the current AWS account.
VPCGatewayAttachmentAWS::EC2::VPCGatewayAttachmentThe attachment between the VPC and the Internet Gateway.

Troubleshooting

Error: AWS::SQS::Queue with identifier plerion-appliance-scan-queue already exists
Cause: This occurs if Plerion infrastructure is already installed in that region.
Fix:
  • Delete the existing infrastructure and retry; or
  • Choose a different region
If the duplicate was accidental, delete the failed stack.

Next step