Skip to main content
Setup and administration

Permissions for NetApp Workload Factory

Contributors netapp-rlithman netapp-mwallis netapp-sineadd

To use NetApp Workload Factory features and services, you'll need to provide permissions so that Workload Factory can perform operations in your cloud environment.

Why use permissions

When you provide permissions, Workload Factory attaches a policy to the instance with permissions to manage resources and processes within that AWS account. This allows Workload Factory to execute various operations starting from discovery of your storage environments to deploying AWS resources such as file systems in storage management or knowledge bases for GenAI workloads.

For database workloads for example, when Workload Factory is granted with the required permissions, it scans all EC2 instances in a given account and region, and filters all Windows-based machines. If AWS Systems Manager (SSM) Agent is installed and running on the host and System Manager networking is configured properly, Workload Factory can access the Windows machine and verify whether SQL Server software is installed or not.

Permissions by workload

Each workload uses permissions to perform certain tasks in Workload Factory. Permissions are bundled into set permission policies. Scroll to the workload you use to learn about the permission policies, copiable JSON for the permission policies, and a table that lists all permissions, their purpose, where they are used, and which permission policies support them.

Permissions for Storage

The IAM policies available for Storage provide the permissions that Workload Factory needs to manage resources and processes within your public cloud environment.

Storage has the following permission policies to choose from:

  • View, planning, and analysis: View FSx for ONTAP file systems, learn about system health, get the well-architected analysis for your systems, and explore savings.

  • Operations and remediation: Perform operational tasks like adjust file system capacity and fix issues for your file system configurations.

  • File system creation and deletion: Create and delete FSx for ONTAP file systems and storage VMs.

View the required IAM policies:

IAM policies for Storage
View, planning, and analysis
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "fsx:DescribeFileSystems",
        "fsx:DescribeStorageVirtualMachines",
        "fsx:DescribeVolumes",
        "fsx:ListTagsForResource",
        "fsx:DescribeBackups",
        "fsx:DescribeSharedVpcConfiguration",
        "cloudwatch:GetMetricData",
        "cloudwatch:GetMetricStatistics",
        "ec2:DescribeInstances",
        "ec2:DescribeVolumes",
        "elasticfilesystem:DescribeFileSystems",
        "ce:GetCostAndUsage",
        "ce:GetTags",
        "ce:GetCostAndUsageWithResources",
        "ce:GetCostForecast",
        "ce:GetUsageForecast"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "iam:SimulatePrincipalPolicy"
      ],
      "Resource": "*"
    }
  ]
}
Operations and remediation
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "fsx:CreateVolume",
        "fsx:DeleteVolume",
        "fsx:UpdateFileSystem",
        "fsx:UpdateStorageVirtualMachine",
        "fsx:UpdateVolume",
        "fsx:CreateBackup",
        "fsx:CreateVolumeFromBackup",
        "fsx:DeleteBackup",
        "fsx:TagResource",
        "fsx:UntagResource",
        "bedrock:InvokeModelWithResponseStream",
        "bedrock:ListInferenceProfiles",
        "bedrock:GetInferenceProfile"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "iam:SimulatePrincipalPolicy"
      ],
      "Resource": "*"
    }
  ]
}
File system creation and deletion
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "fsx:CreateFileSystem",
        "fsx:CreateStorageVirtualMachine",
        "fsx:DeleteFileSystem",
        "fsx:DeleteStorageVirtualMachine",
        "fsx:TagResource",
        "fsx:UntagResource",
        "kms:CreateGrant",
        "iam:CreateServiceLinkedRole",
        "ec2:CreateSecurityGroup",
        "ec2:CreateTags",
        "ec2:DescribeVpcs",
        "ec2:DescribeSubnets",
        "ec2:DescribeSecurityGroups",
        "ec2:DescribeRouteTables",
        "ec2:DescribeNetworkInterfaces",
        "ec2:DescribeVolumeStatus",
        "kms:DescribeKey",
        "kms:ListKeys",
        "kms:ListAliases"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "ec2:AuthorizeSecurityGroupEgress",
        "ec2:AuthorizeSecurityGroupIngress",
        "ec2:RevokeSecurityGroupEgress",
        "ec2:RevokeSecurityGroupIngress",
        "ec2:DeleteSecurityGroup"
      ],
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "ec2:ResourceTag/AppCreator": "NetappFSxWF"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": [
        "iam:SimulatePrincipalPolicy"
      ],
      "Resource": "*"
    }
  ]
}

The following table displays the permissions for Storage.

Table of permissions for Storage
Purpose Action Where used Permission policy

Create an FSx for ONTAP file system

fsx:CreateFileSystem

Deployment

File system creation and deletion

Create a security group for an FSx for ONTAP file system

ec2:CreateSecurityGroup

Deployment

File system creation and deletion

Add tags to a security group for an FSx for ONTAP file system

ec2:CreateTags

Deployment

File system creation and deletion

Authorize security group egress and ingress for an FSx for ONTAP file system

ec2:AuthorizeSecurityGroupEgress

Deployment

File system creation and deletion

ec2:AuthorizeSecurityGroupIngress

Deployment

File system creation and deletion

Granted role provides communication between FSx for ONTAP and other AWS services

iam:CreateServiceLinkedRole

Deployment

File system creation and deletion

Get details to fill in the FSx for ONTAP file system deployment form

ec2:DescribeVpcs

  • Deployment

  • Explore savings

File system creation and deletion

ec2:DescribeSubnets

  • Deployment

  • Explore savings

File system creation and deletion

ec2:DescribeSecurityGroups

  • Deployment

  • Explore savings

File system creation and deletion

ec2:DescribeRouteTables

  • Deployment

  • Explore savings

File system creation and deletion

ec2:DescribeNetworkInterfaces

  • Deployment

  • Explore savings

File system creation and deletion

ec2:DescribeVolumeStatus

  • Deployment

  • Explore savings

File system creation and deletion

Get KMS key details and use for FSx for ONTAP encryption

kms:CreateGrant

Deployment

File system creation and deletion

kms:DescribeKey

Deployment

File system creation and deletion

kms:ListKeys

Deployment

File system creation and deletion

kms:ListAliases

Deployment

File system creation and deletion

Get volume details for EC2 instances

ec2:DescribeVolumes

  • Inventory

  • Explore savings

View, planning, and analysis

Get details for EC2 instances

ec2:DescribeInstances

Explore savings

View, planning, and analysis

Describe Elastic File System in the savings calculator

Elasticfilesystem:DescribeFileSystems

Explore savings

View, planning, and analysis

List tags for FSx for ONTAP resources

fsx:ListTagsForResource

Inventory

View, planning, and analysis

Manage security group egress and ingress for an FSx for ONTAP file system

ec2:RevokeSecurityGroupIngress

Management operations

File system creation and deletion

ec2:DeleteSecurityGroup

Management operations

File system creation and deletion

Create, view, and manage FSx for ONTAP file system resources

fsx:CreateVolume

Management operations

Operations and remediation

fsx:TagResource

Management operations

Operations and remediation

fsx:CreateStorageVirtualMachine

Management operations

File system creation and deletion

fsx:DeleteFileSystem

Management operations

File system creation and deletion

fsx:DeleteStorageVirtualMachine

Management operations

View, planning, and analysis

fsx:DescribeFileSystems

Inventory

View, planning, and analysis

fsx:DescribeStorageVirtualMachines

Inventory

View, planning, and analysis

fsx:DescribeSharedVpcConfiguration

Inventory

View, planning, and analysis

fsx:UpdateFileSystem

Management operations

Operations and remediation

fsx:UpdateStorageVirtualMachine

Management operations

Operations and remediation

fsx:DescribeVolumes

Inventory

View, planning, and analysis

fsx:UpdateVolume

Management operations

Operations and remediation

fsx:DeleteVolume

Management operations

Operations and remediation

fsx:UntagResource

Management operations

Operations and remediation

fsx:DescribeBackups

Management operations

View, planning, and analysis

fsx:CreateBackup

Management operations

Operations and remediation

fsx:CreateVolumeFromBackup

Management operations

Operations and remediation

Get file system and volume metrics

cloudwatch:GetMetricData

Management operations

View, planning, and analysis

cloudwatch:GetMetricStatistics

Management operations

View, planning, and analysis

Simulate workload operations to validate available permissions and compare with required AWS account permissions

iam:SimulatePrincipalPolicy

Deployment

All

Permissions for Database workloads

The IAM policies available for Database workloads provide the permissions that Workload Factory needs to manage resources and processes within your public cloud environment.

Databases has the following permission policies to choose from:

  • View, planning, and analysis: View the inventory of database resources, learn about the health of your resources, review the well-architected analysis for your database configurations, and explore savings, get error log analysis, and explores savings.

  • Operations and remediation: Perform operational tasks for your database resources and fix issues for database configurations and the underlying FSx for ONTAP file system storage.

  • Database host creation: Deploy database hosts and the underlying FSx for ONTAP file system storage according to best practices.

Select your operational mode to view the required IAM policies:

IAM policies for Database workloads
View, planning, and analysis
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "CommonGroup",
            "Effect": "Allow",
            "Action": [
                "cloudwatch:GetMetricStatistics",
                "cloudwatch:GetMetricData",
                "sns:ListTopics",
                "ec2:DescribeInstances",
                "ec2:DescribeVpcs",
                "ec2:DescribeSubnets",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeImages",
                "ec2:DescribeRegions",
                "ec2:DescribeRouteTables",
                "ec2:DescribeKeyPairs",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribeInstanceTypes",
                "ec2:DescribeVpcEndpoints",
                "ec2:DescribeInstanceTypeOfferings",
                "ec2:DescribeSnapshots",
                "ec2:DescribeVolumes",
                "ec2:DescribeAddresses",
                "kms:ListAliases",
                "kms:ListKeys",
                "kms:DescribeKey",
                "cloudformation:ListStacks",
                "cloudformation:DescribeAccountLimits",
                "ds:DescribeDirectories",
                "fsx:DescribeVolumes",
                "fsx:DescribeBackups",
                "fsx:DescribeStorageVirtualMachines",
                "fsx:DescribeFileSystems",
                "servicequotas:ListServiceQuotas",
                "ssm:GetParametersByPath",
                "ssm:GetCommandInvocation",
                "ssm:SendCommand",
                "ssm:GetConnectionStatus",
                "ssm:DescribePatchBaselines",
                "ssm:DescribeInstancePatchStates",
                "ssm:ListCommands",
                "ssm:DescribeInstanceInformation",
                "fsx:ListTagsForResource",
                "logs:DescribeLogGroups",
                "bedrock:GetFoundationModelAvailability",
                "bedrock:ListInferenceProfiles"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Sid": "SSMParameterStore",
            "Effect": "Allow",
            "Action": [
                "ssm:GetParameter",
                "ssm:GetParameters",
                "ssm:PutParameter",
                "ssm:DeleteParameters"
            ],
            "Resource": "arn:aws:ssm:*:*:parameter/netapp/wlmdb/*"
        },
        {
            "Sid": "SSMResponseCloudWatch",
            "Effect": "Allow",
            "Action": [
                "logs:GetLogEvents",
                "logs:PutRetentionPolicy"
            ],
            "Resource": "arn:aws:logs:*:*:log-group:netapp/wlmdb/*"
        }
    ]
}
Operations and remediation
[
    {
        "Sid": "FSxRemediation",
        "Effect": "Allow",
        "Action": [
            "fsx:UpdateFileSystem",
            "fsx:UpdateVolume"
        ],
        "Resource": "*"
    },
    {
        "Sid": "EC2Remediation",
        "Effect": "Allow",
        "Action": [
            "ec2:StartInstances",
            "ec2:ModifyInstanceAttribute",
            "ec2:StopInstances"
        ],
        "Resource": "*",
        "Condition": {
            "StringLike": {
                "ec2:ResourceTag/aws:cloudformation:stack-name": "WLMDB*"
            }
        }
    }
]
Database host creation
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "EC2TagGroup",
            "Effect": "Allow",
            "Action": [
                "ec2:AllocateAddress",
                "ec2:AllocateHosts",
                "ec2:AssignPrivateIpAddresses",
                "ec2:AssociateAddress",
                "ec2:AssociateRouteTable",
                "ec2:AssociateSubnetCidrBlock",
                "ec2:AssociateVpcCidrBlock",
                "ec2:AttachInternetGateway",
                "ec2:AttachNetworkInterface",
                "ec2:AttachVolume",
                "ec2:AuthorizeSecurityGroupEgress",
                "ec2:AuthorizeSecurityGroupIngress",
                "ec2:CreateVolume",
                "ec2:DeleteNetworkInterface",
                "ec2:DeleteSecurityGroup",
                "ec2:DeleteTags",
                "ec2:DeleteVolume",
                "ec2:DetachNetworkInterface",
                "ec2:DetachVolume",
                "ec2:DisassociateAddress",
                "ec2:DisassociateIamInstanceProfile",
                "ec2:DisassociateRouteTable",
                "ec2:DisassociateSubnetCidrBlock",
                "ec2:DisassociateVpcCidrBlock",
                "ec2:ModifyInstancePlacement",
                "ec2:ModifyNetworkInterfaceAttribute",
                "ec2:ModifySubnetAttribute",
                "ec2:ModifyVolume",
                "ec2:ModifyVolumeAttribute",
                "ec2:ReleaseAddress",
                "ec2:ReplaceRoute",
                "ec2:ReplaceRouteTableAssociation",
                "ec2:RevokeSecurityGroupEgress",
                "ec2:RevokeSecurityGroupIngress"
            ],
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "ec2:ResourceTag/aws:cloudformation:stack-name": "WLMDB*"
                }
            }
        },
        {
            "Sid": "FSxNGroup",
            "Effect": "Allow",
            "Action": [
                "fsx:TagResource"
            ],
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "aws:ResourceTag/aws:cloudformation:stack-name": "WLMDB*"
                }
            }
        },
        {
            "Sid": "CreationGroup",
            "Effect": "Allow",
            "Action": [
                "cloudformation:CreateStack",
                "cloudformation:DescribeStackEvents",
                "cloudformation:DescribeStacks",
                "cloudformation:ValidateTemplate",
                "ec2:CreateLaunchTemplate",
                "ec2:CreateLaunchTemplateVersion",
                "ec2:CreateNetworkInterface",
                "ec2:CreateSecurityGroup",
                "ec2:CreateTags",
                "ec2:CreateVpcEndpoint",
                "ec2:RunInstances",
                "ec2:DescribeTags",
                "ec2:DescribeLaunchTemplates",
                "ec2:ModifyVpcAttribute",
                "fsx:CreateFileSystem",
                "fsx:CreateStorageVirtualMachine",
                "fsx:CreateVolume",
                "fsx:DescribeFileSystemAliases",
                "kms:CreateGrant",
                "kms:DescribeCustomKeyStores",
                "kms:GenerateDataKey",
                "kms:Decrypt",
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:GetLogGroupFields",
                "logs:GetLogRecord",
                "logs:ListLogDeliveries",
                "logs:PutLogEvents",
                "logs:TagResource",
                "sns:Publish",
                "ssm:PutComplianceItems",
                "ssm:PutConfigurePackageResult",
                "ssm:PutInventory",
                "ssm:UpdateAssociationStatus",
                "ssm:UpdateInstanceAssociationStatus",
                "ssm:UpdateInstanceInformation",
                "ssmmessages:CreateControlChannel",
                "ssmmessages:CreateDataChannel",
                "ssmmessages:OpenControlChannel",
                "ssmmessages:OpenDataChannel",
                "compute-optimizer:GetEnrollmentStatus",
                "compute-optimizer:PutRecommendationPreferences",
                "compute-optimizer:GetEffectiveRecommendationPreferences",
                "compute-optimizer:GetEC2InstanceRecommendations",
                "autoscaling:DescribeAutoScalingGroups",
                "autoscaling:DescribeAutoScalingInstances",
                "iam:GetPolicy",
                "iam:GetPolicyVersion",
                "iam:GetRole",
                "iam:GetRolePolicy",
                "iam:GetUser"
            ],
            "Resource": "*"
        },
        {
            "Sid": "ArnGroup",
            "Effect": "Allow",
            "Action": [
                "cloudformation:SignalResource"
            ],
            "Resource": [
                "arn:aws:cloudformation:*:*:stack/WLMDB*",
                "arn:aws:logs:*:*:log-group:WLMDB*"
            ]
        },
        {
            "Sid": "IAMGroup1",
            "Effect": "Allow",
            "Action": [
                "iam:AddRoleToInstanceProfile",
                "iam:CreateInstanceProfile",
                "iam:DeleteInstanceProfile",
                "iam:PutRolePolicy",
                "iam:RemoveRoleFromInstanceProfile"
            ],
            "Resource": [
                "arn:aws:iam::*:instance-profile/*",
                "arn:aws:iam::*:role/WLMDB*"
            ]
        },
        {
            "Sid": "IAMGroup2",
            "Effect": "Allow",
            "Action": "iam:CreateServiceLinkedRole",
            "Resource": [
                "arn:aws:iam::*:instance-profile/*",
                "arn:aws:iam::*:role/WLMDB*"
            ],
            "Condition": {
                "StringLike": {
                    "iam:AWSServiceName": "ec2.amazonaws.com"
                }
            }
        },
        {
            "Sid": "IAMGroup3",
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": [
                "arn:aws:iam::*:instance-profile/*",
                "arn:aws:iam::*:role/WLMDB*"
            ],
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": "ec2.amazonaws.com"
                }
            }
        },
        {
            "Sid": "IAMGroup4",
            "Effect": "Allow",
            "Action": "iam:CreateRole",
            "Resource": "arn:aws:iam::*:role/WLMDB*"
        }
    ]
}

The following table displays the permissions for database workloads.

Table of permissions for database workloads
Purpose Action Where used Permission policy

Get metric statistics for FSx for ONTAP, EBS, and FSx for Windows File Server and for compute optimization recommendation

cloudwatch:GetMetricStatistics

  • Inventory

  • Explore savings

View, planning, and analysis

Gather performance metrics saved to Amazon CloudWatch from registered SQL nodes. Data generates in performance trend charts on the manage instance screen for registered SQL instances.

cloudwatch:GetMetricData

Inventory

View, planning, and analysis

Get details for EC2 instances

ec2:DescribeInstances

  • Inventory

  • Explore savings

View, planning, and analysis

ec2:DescribeKeyPairs

Deployment

View, planning, and analysis

ec2:DescribeNetworkInterfaces

Deployment

View, planning, and analysis

ec2:DescribeInstanceTypes

  • Deployment

  • Explore savings

View, planning, and analysis

Get details to fill in the FSx for ONTAP deployment form

ec2:DescribeVpcs

  • Deployment

  • Inventory

View, planning, and analysis

ec2:DescribeSubnets

  • Deployment

  • Inventory

View, planning, and analysis

ec2:DescribeSecurityGroups

Deployment

View, planning, and analysis

ec2:DescribeImages

Deployment

View, planning, and analysis

ec2:DescribeRegions

Deployment

View, planning, and analysis

ec2:DescribeRouteTables

  • Deployment

  • Inventory

View, planning, and analysis

Get any existing VPC endpoints to determine if new endpoints need to be created before deployments

ec2:DescribeVpcEndpoints

  • Deployment

  • Inventory

View, planning, and analysis

Create VPC endpoints if they don't exist for required services irrespective of public network connectivity on EC2 instances

ec2:CreateVpcEndpoint

Deployment

Database host creation

Get instance types available in region for validation nodes (t2.micro/t3.micro)

ec2:DescribeInstanceTypeOfferings

Deployment

View, planning, and analysis

Get snapshot details of each attached EBS volumes for pricing and savings estimate

ec2:DescribeSnapshots

Explore savings

View, planning, and analysis

Get details of each attached EBS volumes for pricing and savings estimate

ec2:DescribeVolumes

  • Inventory

  • Explore savings

View, planning, and analysis

Get KMS key details for FSx for ONTAP file system encryption

kms:ListAliases

Deployment

View, planning, and analysis

kms:ListKeys

Deployment

View, planning, and analysis

kms:DescribeKey

Deployment

View, planning, and analysis

Get list of CloudFormation stacks running in the environment to check quota limit

cloudformation:ListStacks

Deployment

View, planning, and analysis

Check account limits for resources before triggering deployment

cloudformation:DescribeAccountLimits

Deployment

View, planning, and analysis

Get list of AWS-managed Active Directories in the region

ds:DescribeDirectories

Deployment

View, planning, and analysis

Get lists and details of volumes, backups, SVMs, file systems in AZs, and tags for FSx for ONTAP file system

fsx:DescribeVolumes

  • Inventory

  • Explore Savings

View, planning, and analysis

fsx:DescribeBackups

  • Inventory

  • Explore Savings

View, planning, and analysis

fsx:DescribeStorageVirtualMachines

  • Deployment

  • Manage operations

  • Inventory

View, planning, and analysis

fsx:DescribeFileSystems

  • Deployment

  • Manage operations

  • Inventory

  • Explore savings

View, planning, and analysis

fsx:ListTagsForResource

Manage operations

View, planning, and analysis

Get service quota limits for CloudFormation and VPC / Create secrets in a user account for the credentials provided for SQL, domain, and FSx for ONTAP

servicequotas:ListServiceQuotas

Deployment

View, planning, and analysis

Use SSM-based query to get the updated list of FSx for ONTAP supported regions

ssm:GetParametersByPath

Deployment

View, planning, and analysis

Poll for SSM response after sending command for manage operations post deployment

ssm:GetCommandInvocation

  • Manage operations

  • Inventory

  • Explore savings

  • Optimization

View, planning, and analysis

Send commands over SSM to EC2 instances for discovery and management

ssm:SendCommand

  • Manage operations

  • Inventory

  • Explore savings

  • Optimization

View, planning, and analysis

Get the SSM connectivity status on instances post deployment

ssm:GetConnectionStatus

  • Manage operations

  • Inventory

  • Optimization

View, planning, and analysis

Fetch SSM association status for a group of managed EC2 instances (SQL nodes)

ssm:DescribeInstanceInformation

Inventory

View, planning, and analysis

Get the list of available patch baselines for operating system patch assessment

ssm:DescribePatchBaselines

Optimization

View, planning, and analysis

Get the patching state on Windows EC2 instances for operating system patch assessment

ssm:DescribeInstancePatchStates

Optimization

View, planning, and analysis

List commands executed by AWS Patch Manager on EC2 instances for operating system patch management

ssm:ListCommands

Optimization

View, planning, and analysis

Check if account is enrolled in AWS Compute Optimizer

compute-optimizer:GetEnrollmentStatus

  • Explore savings

  • Optimization

Database host creation

Update an existing recommendation preference in AWS Compute Optimizer to tailor suggestions for SQL server workloads

compute-optimizer:PutRecommendationPreferences

  • Explore savings

  • Optimization

Database host creation

Get recommendation preferences that are in effect for a given resource from AWS Compute Optimizer

compute-optimizer:GetEffectiveRecommendationPreferences

  • Explore savings

  • Optimization

Database host creation

Fetch recommendations that AWS Compute Optimizer generates for Amazon Elastic Compute Cloud (Amazon EC2) instances

compute-optimizer:GetEC2InstanceRecommendations

  • Explore savings

  • Optimization

Database host creation

Check for instance association to auto-scaling groups

autoscaling:DescribeAutoScalingGroups

  • Explore savings

  • Optimization

Database host creation

autoscaling:DescribeAutoScalingInstances

  • Explore savings

  • Optimization

Database host creation

Get, list, create, and delete SSM parameters for AD, FSx for ONTAP, and SQL user credentials used during deployment or managed in your AWS account

ssm:GetParameter 1

  • Deployment

  • Manage operations

  • Inventory

View, planning, and analysis

ssm:GetParameters 1

  • Deployment

  • Manage operations

  • Inventory

View, planning, and analysis

ssm:PutParameter 1

  • Deployment

  • Manage operations

View, planning, and analysis

ssm:DeleteParameters 1

  • Deployment

  • Manage operations

View, planning, and analysis

Associate network resources to SQL nodes and validation nodes, and add additional secondary IPs to SQL nodes

ec2:AllocateAddress 1

Deployment

Database host creation

ec2:AllocateHosts 1

Deployment

Database host creation

ec2:AssignPrivateIpAddresses 1

Deployment

Database host creation

ec2:AssociateAddress 1

Deployment

Database host creation

ec2:AssociateRouteTable 1

Deployment

Database host creation

ec2:AssociateSubnetCidrBlock 1

Deployment

Database host creation

ec2:AssociateVpcCidrBlock 1

Deployment

Database host creation

ec2:AttachInternetGateway 1

Deployment

Database host creation

ec2:AttachNetworkInterface 1

Deployment

Database host creation

Attach EBS volumes required to the SQL nodes for deployment

ec2:AttachVolume

Deployment

Database host creation

Attach security groups and modify rules to provisioned EC2 instances

ec2:AuthorizeSecurityGroupEgress

Deployment

Database host creation

ec2:AuthorizeSecurityGroupIngress

Deployment

Database host creation

Create EBS volumes required to the SQL nodes for deployment

ec2:CreateVolume

Deployment

Database host creation

Remove the temporary validation nodes created of type t2.micro and for rollback or retry of failed EC2 SQL nodes

ec2:DeleteNetworkInterface

Deployment

Database host creation

ec2:DeleteSecurityGroup

Deployment

Database host creation

ec2:DeleteTags

Deployment

Database host creation

ec2:DeleteVolume

Deployment

Database host creation

ec2:DetachNetworkInterface

Deployment

Database host creation

ec2:DetachVolume

Deployment

Database host creation

ec2:DisassociateAddress

Deployment

Database host creation

ec2:DisassociateIamInstanceProfile

Deployment

Database host creation

ec2:DisassociateRouteTable

Deployment

Database host creation

ec2:DisassociateSubnetCidrBlock

Deployment

Database host creation

ec2:DisassociateVpcCidrBlock

Deployment

Database host creation

Modify attributes for created SQL instances. Only applicable to names that start with WLMDB.

ec2:ModifyInstanceAttribute

Deployment

Operations and remediation

ec2:ModifyInstancePlacement

Deployment

Database host creation

ec2:ModifyNetworkInterfaceAttribute

Deployment

Database host creation

ec2:ModifySubnetAttribute

Deployment

Database host creation

ec2:ModifyVolume

Deployment

Database host creation

ec2:ModifyVolumeAttribute

Deployment

Database host creation

ec2:ModifyVpcAttribute

Deployment

Database host creation

Disassociate and destroy validation instances

ec2:ReleaseAddress

Deployment

Database host creation

ec2:ReplaceRoute

Deployment

Database host creation

ec2:ReplaceRouteTableAssociation

Deployment

Database host creation

ec2:RevokeSecurityGroupEgress

Deployment

Database host creation

ec2:RevokeSecurityGroupIngress

Deployment

Database host creation

Start the deployed instances

ec2:StartInstances

Deployment

Operations and remediation

Stop the deployed instances

ec2:StopInstances

Deployment

Operations and remediation

Tag custom values for Amazon FSx for NetApp ONTAP resources created by WLMDB to get billing details during resource management

fsx:TagResource 1

  • Deployment

  • Manage operations

Database host creation

Create and validate CloudFormation template for deployment

cloudformation:CreateStack

Deployment

Database host creation

cloudformation:DescribeStackEvents

Deployment

Database host creation

cloudformation:DescribeStacks

Deployment

Database host creation

cloudformation:ListStacks

Deployment

View, planning, and analysis

cloudformation:ValidateTemplate

Deployment

Database host creation

Create nested stack templates for retry and rollback

ec2:CreateLaunchTemplate

Deployment

Database host creation

ec2:CreateLaunchTemplateVersion

Deployment

Database host creation

Manage tags and network security on created instances

ec2:CreateNetworkInterface

Deployment

Database host creation

ec2:CreateSecurityGroup

Deployment

Database host creation

ec2:CreateTags

Deployment

Database host creation

Get instance details for provisioning

ec2:DescribeAddresses

Deployment

View, planning, and analysis

ec2:DescribeLaunchTemplates

Deployment

View, planning, and analysis

Start the created instances

ec2:RunInstances

Deployment

Database host creation

Create FSx for ONTAP resources required for provisioning. For existing FSx for ONTAP systems, a new SVM is created to host SQL volumes.

fsx:CreateFileSystem

Deployment

Database host creation

fsx:CreateStorageVirtualMachine

Deployment

Database host creation

fsx:CreateVolume

  • Deployment

  • Manage operations

Database host creation

Get FSx for ONTAP details

fsx:DescribeFileSystemAliases

Deployment

Database host creation

Resize FSx for ONTAP file system to remediate file system headroom

fsx:UpdateFilesystem

Optimization

Operations and remediation

Resize volumes to remediate log and TempDB drive sizes

fsx:UpdateVolume

Optimization

Operations and remediation

Get KMS key details and use for FSx for ONTAP encryption

kms:CreateGrant

Deployment

Database host creation

kms:DescribeCustomKeyStores

Deployment

Database host creation

kms:GenerateDataKey

Deployment

Database host creation

Create CloudWatch logs for validation and provisioning scripts running on EC2 instances

logs:CreateLogGroup

Deployment

Database host creation

logs:CreateLogStream

Deployment

Database host creation

logs:GetLogGroupFields

Deployment

Database host creation

logs:GetLogRecord

Deployment

Database host creation

logs:ListLogDeliveries

Deployment

Database host creation

logs:PutLogEvents

  • Deployment

  • Manage operations

Database host creation

logs:TagResource

Deployment

Database host creation

Workload Factory switches to Amazon CloudWatch logs for the SQL instance upon encountering SSM output truncation

logs:GetLogEvents

  • Storage assessment (Optimization)

  • Inventory

View, planning, and analysis

Allow Workload Factory to get current log groups and check that retention is set for log groups created by Workload Factory

logs:DescribeLogGroups

  • Storage assessment (Optimization)

  • Inventory

View, planning, and analysis

Allow Workload Factory to set a one-day retention policy for log groups created by Workload Factory to avoid unnecessary accumulation of log streams for SSM command outputs

logs:PutRetentionPolicy

  • Storage assessment (Optimization)

  • Inventory

View, planning, and analysis

List customer SNS topics and publish to WLMDB backend SNS as well as customer SNS if selected

sns:ListTopics

Deployment

View, planning, and analysis

sns:Publish

Deployment

Database host creation

Required SSM permissions to run the discovery script on provisioned SQL instances and to fetch latest list of FSx for ONTAP supported AWS regions.

ssm:PutComplianceItems

Deployment

Database host creation

ssm:PutConfigurePackageResult

Deployment

Database host creation

ssm:PutInventory

Deployment

Database host creation

ssm:UpdateAssociationStatus

Deployment

Database host creation

ssm:UpdateInstanceAssociationStatus

Deployment

Database host creation

ssm:UpdateInstanceInformation

Deployment

Database host creation

ssmmessages:CreateControlChannel

Deployment

Database host creation

ssmmessages:CreateDataChannel

Deployment

Database host creation

ssmmessages:OpenControlChannel

Deployment

Database host creation

ssmmessages:OpenDataChannel

Deployment

Database host creation

Signal CloudFormation stack on success or failure.

cloudformation:SignalResource 1

Deployment

Database host creation

Add EC2 role created by template to the instance profile of EC2 to allow scripts on EC2 to access the required resources for deployment.

iam:AddRoleToInstanceProfile

Deployment

Database host creation

Create instance profile for EC2 and attach the created EC2 role.

iam:CreateInstanceProfile

Deployment

Database host creation

Create EC2 role through template with permissions listed below

iam:CreateRole

Deployment

Database host creation

Create role linked to EC2 service

iam:CreateServiceLinkedRole 2

Deployment

Database host creation

Delete instance profile created during deployment specifically for the validation nodes

iam:DeleteInstanceProfile

Deployment

Database host creation

Get the role and policy details to determine any gaps in permission and validate for deployment

iam:GetPolicy

Deployment

Database host creation

iam:GetPolicyVersion

Deployment

Database host creation

iam:GetRole

Deployment

Database host creation

iam:GetRolePolicy

Deployment

Database host creation

iam:GetUser

Deployment

Database host creation

Pass the role created to EC2 instance

iam:PassRole 3

Deployment

Database host creation

Add policy with required permissions to the EC2 role created

iam:PutRolePolicy

Deployment

Database host creation

Detach role from the provisioned EC2 instance profile

iam:RemoveRoleFromInstanceProfile

Deployment

Database host creation

Simulate workload operations to validate available permissions and compare with required AWS account permissions

iam:SimulatePrincipalPolicy

Deployment

All

Get the foundation models available for error log analysis

bedrock:GetFoundationModelAvailability

Error log analysis

View, planning, and analysis

List interface profiles available in Amazon Bedrock for error log analysis

bedrock:ListInferenceProfiles

Error log analysis

View, planning, and analysis

  1. Permission is restricted to resources starting with WLMDB.

  2. "iam:CreateServiceLinkedRole" limited by "iam:AWSServiceName": "ec2.amazonaws.com"*

  3. "iam:PassRole" limited by "iam:PassedToService": "ec2.amazonaws.com"*

Permissions for GenAI workloads

The IAM policies for VMware workloads provide the permissions that Workload Factory for VMware needs to manage resources and processes within your public cloud environment based on the operational mode you operate in.

GenAI IAM policies are only available with read/write permissions:

  • Read/Write: executes and automates operations in AWS on your behalf along with the assigned credentials that have the needed and validated permissions for execution.

IAM policies for GenAI workloads
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "CloudformationGroup",
      "Effect": "Allow",
      "Action": [
        "cloudformation:CreateStack",
        "cloudformation:DescribeStacks"
      ],
      "Resource": "arn:aws:cloudformation:*:*:stack/wlmai*/*"
    },
    {
      "Sid": "EC2Group",
      "Effect": "Allow",
      "Action": [
        "ec2:AuthorizeSecurityGroupEgress",
        "ec2:AuthorizeSecurityGroupIngress"
      ],
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "ec2:ResourceTag/aws:cloudformation:stack-name": "wlmai*"
        }
      }
    },
    {
      "Sid": "EC2DescribeGroup",
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeRegions",
        "ec2:DescribeTags",
        "ec2:CreateVpcEndpoint",
        "ec2:CreateSecurityGroup",
        "ec2:CreateTags",
        "ec2:DescribeVpcs",
        "ec2:DescribeSubnets",
        "ec2:DescribeRouteTables",
        "ec2:DescribeKeyPairs",
        "ec2:DescribeSecurityGroups",
        "ec2:DescribeVpcEndpoints",
        "ec2:DescribeInstances",
        "ec2:DescribeImages",
        "ec2:RevokeSecurityGroupEgress",
        "ec2:RevokeSecurityGroupIngress",
        "ec2:RunInstances"
      ],
      "Resource": "*"
    },
    {
      "Sid": "IAMGroup",
      "Effect": "Allow",
      "Action": [
        "iam:CreateRole",
        "iam:CreateInstanceProfile",
        "iam:AddRoleToInstanceProfile",
        "iam:PutRolePolicy",
        "iam:GetRolePolicy",
        "iam:GetRole",
        "iam:TagRole"
      ],
      "Resource": "*"
    },
    {
      "Sid": "IAMGroup2",
      "Effect": "Allow",
      "Action": "iam:PassRole",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "iam:PassedToService": "ec2.amazonaws.com"
        }
      }
    },
    {
      "Sid": "FSXNGroup",
      "Effect": "Allow",
      "Action": [
        "fsx:DescribeVolumes",
        "fsx:DescribeFileSystems",
        "fsx:DescribeStorageVirtualMachines",
        "fsx:ListTagsForResource"
      ],
      "Resource": "*"
    },
    {
      "Sid": "FSXNGroup2",
      "Effect": "Allow",
      "Action": [
        "fsx:UntagResource",
        "fsx:TagResource"
      ],
      "Resource": [
        "arn:aws:fsx:*:*:volume/*/*",
        "arn:aws:fsx:*:*:storage-virtual-machine/*/*"
      ]
    },
    {
      "Sid": "SSMParameterStore",
      "Effect": "Allow",
      "Action": [
        "ssm:GetParameter",
        "ssm:PutParameter"
      ],
      "Resource": "arn:aws:ssm:*:*:parameter/netapp/wlmai/*"
    },
    {
      "Sid": "SSM",
      "Effect": "Allow",
      "Action": [
        "ssm:GetParameters",
        "ssm:GetParametersByPath"
      ],
      "Resource": "arn:aws:ssm:*:*:parameter/aws/service/*"
    },
    {
      "Sid": "SSMMessages",
      "Effect": "Allow",
      "Action": [
        "ssm:GetCommandInvocation"
      ],
      "Resource": "*"
    },
    {
      "Sid": "SSMCommandDocument",
      "Effect": "Allow",
      "Action": [
        "ssm:SendCommand"
      ],
      "Resource": [
        "arn:aws:ssm:*:*:document/AWS-RunShellScript"
      ]
    },
    {
      "Sid": "SSMCommandInstance",
      "Effect": "Allow",
      "Action": [
        "ssm:SendCommand",
        "ssm:GetConnectionStatus"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:instance/*"
      ],
      "Condition": {
        "StringLike": {
          "ssm:resourceTag/aws:cloudformation:stack-name": "wlmai-*"
        }
      }
    },
    {
      "Sid": "KMS",
      "Effect": "Allow",
      "Action": [
        "kms:GenerateDataKey",
        "kms:Decrypt"
      ],
      "Resource": "*"
    },
    {
      "Sid": "SNS",
      "Effect": "Allow",
      "Action": [
        "sns:Publish"
      ],
      "Resource": "*"
    },
    {
      "Sid": "CloudWatch",
      "Effect": "Allow",
      "Action": [
        "logs:DescribeLogGroups"
      ],
      "Resource": "*"
    },
    {
      "Sid": "CloudWatchAiEngine",
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogGroup",
        "logs:PutRetentionPolicy",
        "logs:TagResource",
        "logs:DescribeLogStreams"
      ],
      "Resource": "arn:aws:logs:*:*:log-group:/netapp/wlmai*"
    },
    {
      "Sid": "CloudWatchAiEngineLogStream",
      "Effect": "Allow",
      "Action": [
        "logs:GetLogEvents"
      ],
      "Resource": "arn:aws:logs:*:*:log-group:/netapp/wlmai*:*"
    },
    {
      "Sid": "BedrockGroup",
      "Effect": "Allow",
      "Action": [
        "bedrock:InvokeModelWithResponseStream",
        "bedrock:InvokeModel",
        "bedrock:ListFoundationModels",
        "bedrock:GetFoundationModelAvailability",
        "bedrock:GetModelInvocationLoggingConfiguration",
        "bedrock:PutModelInvocationLoggingConfiguration",
        "bedrock:ListInferenceProfiles"
      ],
      "Resource": "*"
    },
    {
      "Sid": "CloudWatchBedrock",
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogGroup",
        "logs:PutRetentionPolicy",
        "logs:TagResource"
      ],
      "Resource": "arn:aws:logs:*:*:log-group:/aws/bedrock*"
    },
    {
      "Sid": "BedrockLoggingAttachRole",
      "Effect": "Allow",
      "Action": [
        "iam:AttachRolePolicy",
        "iam:PassRole"
      ],
      "Resource": "arn:aws:iam::*:role/NetApp_AI_Bedrock*"
    },
    {
      "Sid": "BedrockLoggingIamOperations",
      "Effect": "Allow",
      "Action": [
        "iam:CreatePolicy"
      ],
      "Resource": "*"
    },
    {
      "Sid": "QBusiness",
      "Effect": "Allow",
      "Action": [
        "qbusiness:ListApplications"
      ],
      "Resource": "*"
    },
    {
      "Sid": "S3",
      "Effect": "Allow",
      "Action": [
        "s3:ListAllMyBuckets"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "iam:SimulatePrincipalPolicy"
      ],
      "Resource": "*"
    }
  ]
}

The following table provides details about the permissions for GenAI workloads.

Table of permissions for GenAI workloads
Purpose Action Where used Permission policy

Create AI engine cloudformation stack during deploy and rebuild operations

cloudformation:CreateStack

Deployment

Read/Write

Create the AI engine cloudformation stack

cloudformation:DescribeStacks

Deployment

Read/Write

List regions for the AI engine deployment wizard

ec2:DescribeRegions

Deployment

Read/Write

Display AI engine tags

ec2:DescribeTags

Deployment

Read/Write

List S3 buckets

s3:ListAllMyBuckets

Deployment

Read/Write

List VPC endpoints before AI engine stack creation

ec2:CreateVpcEndpoint

Deployment

Read/Write

Create an AI engine security group during the AI engine stack creation during deploy and rebuild operations

ec2:CreateSecurityGroup

Deployment

Read/Write

Tag resources created by AI engine stack creation during deploy and rebuild operations

ec2:CreateTags

Deployment

Read/Write

Publish encrypted events to the WLMAI backend from the AI engine stack

kms:GenerateDataKey

Deployment

Read/Write

kms:Decrypt

Deployment

Read/Write

Publish events and custom resources to the WLMAI backend from the ai-engine stack

sns:Publish

Deployment

Read/Write

List VPCs during AI engine deployment wizard

ec2:DescribeVpcs

Deployment

Read/Write

List subnets on the ai-engine deployment wizard

ec2:DescribeSubnets

Deployment

Read/Write

Get route tables during AI engine deployment and rebuild

ec2:DescribeRouteTables

Deployment

Read/Write

List key-pairs during AI engine deployment wizard

ec2:DescribeKeyPairs

Deployment

Read/Write

List security groups during AI engine stack creation (to find security groups on the private endpoints)

ec2:DescribeSecurityGroups

Deployment

Read/Write

Get VPC endpoints to determine if any should be created during the AI engine deployment

ec2:DescribeVpcEndpoints

Deployment

Read/Write

List the Amazon Q Business applications

qbusiness:ListApplications

Deployment

Read/Write

List instances to find out the AI engine state

ec2:DescribeInstances

Troubleshooting

Read/Write

List images during the AI engine stack creation during deploy and rebuild operations

ec2:DescribeImages

Deployment

Read/Write

Create and update AI instance and private endpoint security group during the AI instance stack creation during deploy and rebuild operations

ec2:RevokeSecurityGroupEgress

Deployment

Read/Write

ec2:RevokeSecurityGroupIngress

Deployment

Read/Write

Run AI engine during cloudformation stack creation during deploy and rebuild operations

ec2:RunInstances

Deployment

Read/Write

Attach security group and modify rules for the AI engine during stack creation during deploy and rebuild operations

ec2:AuthorizeSecurityGroupEgress

Deployment

Read/Write

ec2:AuthorizeSecurityGroupIngress

Deployment

Read/Write

Initiate chat request to one of the foundation models

bedrock:InvokeModelWithResponseStream

Deployment

Read/Write

Begin chat/embedding request for foundation models

bedrock:InvokeModel

Deployment

Read/Write

Show the available foundation models in a region

bedrock:ListFoundationModels

Deployment

Read/Write

Get information about a foundation model

bedrock:GetFoundationModel

Deployment

Read/Write

Verify access to the foundation model

bedrock:GetFoundationModelAvailability

Deployment

Read/Write

Verify need to create Amazon CloudWatch log group during deploy and rebuild operations

logs:DescribeLogGroups

Deployment

Read/Write

Get regions that support FSx and Amazon Bedrock during the AI engine wizard

ssm:GetParametersByPath

Deployment

Read/Write

Get the latest Amazon Linux image for the AI engine deployment during deploy and rebuild operations

ssm:GetParameters

Deployment

Read/Write

Get the SSM response from the command sent to the AI engine

ssm:GetCommandInvocation

Deployment

Read/Write

Check the SSM connection to the AI engine

ssm:SendCommand

Deployment

Read/Write

ssm:GetConnectionStatus

Deployment

Read/Write

Create AI engine instance profile during stack creation during deploy and rebuild operations

iam:CreateRole

Deployment

Read/Write

iam:CreateInstanceProfile

Deployment

Read/Write

iam:AddRoleToInstanceProfile

Deployment

Read/Write

iam:PutRolePolicy

Deployment

Read/Write

iam:GetRolePolicy

Deployment

Read/Write

iam:GetRole

Deployment

Read/Write

iam:TagRole

Deployment

Read/Write

iam:PassRole

Deployment

Read/Write

Simulate workload operations to validate available permissions and compare with required AWS account permissions

iam:SimulatePrincipalPolicy

Deployment

Read/Write

List FSx for ONTAP file systems during the "Create knowledgebase" wizard

fsx:DescribeVolumes

Knowledge base creation

Read/Write

List FSx for ONTAP file system volumes during the "Create knowledgebase" wizard

fsx:DescribeFileSystems

Knowledge base creation

Read/Write

Manage knowledge bases on the AI engine during rebuild operations

fsx:ListTagsForResource

Troubleshooting

Read/Write

List FSx for ONTAP file system storage virtual machines during the "Create knowledgebase" wizard

fsx:DescribeStorageVirtualMachines

Deployment

Read/Write

Move the knowledgebase to a new instance

fsx:UntagResource

Troubleshooting

Read/Write

Manage knowledgebase on the AI engine during rebuild

fsx:TagResource

Troubleshooting

Read/Write

Save SSM secrets (ECR token, CIFS credentials, tenancy service accounts keys) in a secure way

ssm:GetParameter

Deployment

Read/Write

ssm:PutParameter

Deployment

Read/Write

Send the AI engine logs to Amazon CloudWatch log group during deploy and rebuild operations

logs:CreateLogGroup

Deployment

Read/Write

logs:PutRetentionPolicy

Deployment

Read/Write

Send the AI engine logs to Amazon CloudWatch log group

logs:TagResource

Troubleshooting

Read/Write

Get SSM response from Amazon CloudWatch (when the response is too long)

logs:DescribeLogStreams

Troubleshooting

Read/Write

Get the SSM response from Amazon CloudWatch

logs:GetLogEvents

Troubleshooting

Read/Write

Create an Amazon CloudWatch log group for Amazon Bedrock logs during the stack creation during deploy and rebuild operations

logs:CreateLogGroup

Deployment

Read/Write

logs:PutRetentionPolicy

Deployment

Read/Write

logs:TagResource

Deployment

Read/Write

List inference profiles for the model

bedrock:ListInferenceProfiles

Troubleshooting

Read/Write

Permissions for VMware workloads

VMware workloads has the following permission policies to choose from:

  • View, planning, and analysis: View the inventory of EVS virtualization environments, get the well-architected analysis for your systems, and explore savings.

  • Datastore deployment and connectivity: Deploy recommended VM layouts to Amazon EVS, Amazon EC2, or VMware Cloud on AWS vSphere clusters and use customized Amazon FSx for NetApp ONTAP file systems as external datastores.

Select the permission policy to view the required IAM policies:

IAM policies for VMware workloads
View, planning, and analysis
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeRegions",
        "ec2:DescribeAvailabilityZones",
        "ec2:DescribeVpcs",
        "ec2:DescribeSecurityGroups",
        "ec2:DescribeSubnets",
        "ec2:DescribeDhcpOptions",
        "kms:DescribeKey",
        "kms:ListKeys",
        "kms:ListAliases",
        "secretsmanager:ListSecrets",
        "evs:ListEnvironments",
        "evs:GetEnvironment",
        "evs:ListEnvironmentVlans"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "iam:SimulatePrincipalPolicy"
      ],
      "Resource": "*"
    }
  ]
}
Datastore deployment and connectivity
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "cloudformation:CreateStack"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "fsx:CreateFileSystem",
        "fsx:DescribeFileSystems",
        "fsx:CreateStorageVirtualMachine",
        "fsx:DescribeStorageVirtualMachines",
        "fsx:CreateVolume",
        "fsx:DescribeVolumes",
        "fsx:TagResource",
        "sns:Publish",
        "kms:GenerateDataKey",
        "kms:Decrypt",
        "kms:CreateGrant"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "ec2:RunInstances",
        "ec2:DescribeInstances",
        "ec2:CreateSecurityGroup",
        "ec2:AuthorizeSecurityGroupIngress",
        "ec2:DescribeImages"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "iam:SimulatePrincipalPolicy"
      ],
      "Resource": "*"
    }
  ]
}

The following table provides details about the permissions for VMware workloads.

Table of permissions for VMware workloads
Purpose Action Where used Permission policy

Attach security groups and modify rules for the provisioned nodes

ec2:AuthorizeSecurityGroupIngress

Deployment

Datastore deployment and connectivity

Create EBS volumes

fsx:CreateVolume

Deployment

Datastore deployment and connectivity

Tag custom values for FSx for NetApp ONTAP resources created by VMware workloads

fsx:TagResource

Deployment

Datastore deployment and connectivity

Create and validate the CloudFormation template

cloudformation:CreateStack

Deployment

Datastore deployment and connectivity

Manage tags and network security on created instances

ec2:CreateSecurityGroup

Deployment

Datastore deployment and connectivity

Start the created instances

ec2:RunInstances

Deployment

Datastore deployment and connectivity

Get EC2 instance details

ec2:DescribeInstances

Inventory

Datastore deployment and connectivity

List images during the stack creation during deploy and rebuild operations

ec2:DescribeImages

Inventory

Datastore deployment and connectivity

View configuration details of DHCP options sets associated with VPCs

ec2:DescribeDhcpOptions

Inventory

View, planning, and analysis

Get the VPCs in the selected environment to complete deployment form

ec2:DescribeVpcs

  • Deployment

  • Inventory

View, planning, and analysis

Get the subnets in selected environment to complete deployment form

ec2:DescribeSubnets

  • Deployment

  • Inventory

View, planning, and analysis

Get the security groups in selected environment to complete deployment form

ec2:DescribeSecurityGroups

Deployment

View, planning, and analysis

Get the availability zones in selected environment

ec2:DescribeAvailabilityZones

  • Deployment

  • Inventory

View, planning, and analysis

Get the regions with Amazon FSx for NetApp ONTAP support

ec2:DescribeRegions

Deployment

View, planning, and analysis

Get KMS keys' aliases to be used for Amazon FSx for NetApp ONTAP encryption

kms:ListAliases

Deployment

View, planning, and analysis

Get KMS keys to be used for Amazon FSx for NetApp ONTAP encryption

kms:ListKeys

Deployment

View, planning, and analysis

Get KMS keys expiry details to be used for Amazon FSx for NetApp ONTAP encryption

kms:DescribeKey

Deployment

View, planning, and analysis

List secrets in AWS Secrets Manager

secretsmanager:ListSecrets

Inventory

View, planning, and analysis

Get a list of environments from Amazon EVS

evs:ListEnvironments

Inventory

View, planning, and analysis

Get detailed information about a specific Amazon EVS environment

evs:GetEnvironment

Inventory

View, planning, and analysis

List Vlans associated with an Amazon EVS environment

evs:ListEnvironmentVlans

Inventory

View, planning, and analysis

Create Amazon FSx for NetApp ONTAP resources required for provisioning

fsx:CreateFileSystem

Deployment

Datastore deployment and connectivity

fsx:CreateStorageVirtualMachine

Deployment

Datastore deployment and connectivity

fsx:CreateVolume

  • Deployment

  • Management operations

Datastore deployment and connectivity

Get Amazon FSx for NetApp ONTAP details

fsx:Describe*

  • Deployment

  • Inventory

  • Management operations

  • Explore savings

Datastore deployment and connectivity

Get KMS key details and use for Amazon FSx for NetApp ONTAP encryption

kms:CreateGrant

Deployment

Datastore deployment and connectivity

kms:Describe*

Deployment

View, planning, and analysis

kms:List*

Deployment

View, planning, and analysis

kms:Decrypt

Deployment

Datastore deployment and connectivity

kms:GenerateDataKey

Deployment

Datastore deployment and connectivity

List customer SNS topics and publish to WLMVMC backend SNS as well as customer SNS if selected

sns:Publish

Deployment

Datastore deployment and connectivity

Simulate workload operations to validate available permissions and compare with required AWS account permissions

iam:SimulatePrincipalPolicy

Deployment

  • Datastore deployment and connectivity

  • View, planning, and analysis

Change log

As permissions are added and removed, we'll note them in the sections below.

2 November 2025

The permission policies "read-only" and "read/write" have been replaced in Storage, Database workloads, and VMware workloads to provide more granularity and flexibility in assigning permissions.

5 October 2025

The following permissions were removed from GenAI and are now handled by the GenAI engine:

  • bedrock:GetModelInvocationLoggingConfiguration

  • bedrock:PutModelInvocationLoggingConfiguration

  • iam:AttachRolePolicy

  • iam:PassRole

  • iam:CreatePolicy

29 June 2025

The following permission is now available in read-only mode for Databases: cloudwatch:GetMetricData.

3 June 2025

The following permission is now available in read/write mode for GenAI: s3:ListAllMyBuckets.

4 May 2025

The following permission is now available in read/write mode for GenAI: qbusiness:ListApplications.

The following permissions are now available in read-only mode for Databases:

  • logs:GetLogEvents

  • logs:DescribeLogGroups

The following permission is now available in read/write mode for Databases:
logs:PutRetentionPolicy.

2 April 2025

The following permission is now available in read-only mode for Databases: ssm:DescribeInstanceInformation.

30 March 2025

GenAI workload permissions update

The following permissions are now available in read/write mode for GenAI:

  • bedrock:PutModelInvocationLoggingConfiguration

  • iam:AttachRolePolicy

  • iam:PassRole

  • iam:createPolicy

  • bedrock:ListInferenceProfiles

The following permission has been removed from read/write mode for GenAI: Bedrock:GetFoundationModel.

iam:SimulatePrincipalPolicy permission update

The iam:SimulatePrincipalPolicy permission is part of all workload permission policies if you enable the automatic permissions check when adding additional AWS account credentials or adding a new workload capability from the Workload Factory console. The permission simulates workload operations and checks if you have the required AWS account permissions before deploying resources from Workload Factory. Enabling this check reduces the time and effort that you might need to clean up resources from failed operations and to add in missing permissions.

2 March 2025

The following permission is now available in read/write mode for GenAI: bedrock:GetFoundationModel.

3 February 2025

The following permission is now available in read-only mode for Databases: iam:SimulatePrincipalPolicy.