If you’re new to AWS Portal we recommend starting here. If you’re new to Deadline we recommend starting here.

Deprecated AWSPortal IAM Policy (For Deadline 10.1.7 and Earlier)

The IAM policy document below was intended to be attached to Deadline’s AWSPortal IAM User for Deadline 10.1.7 and earlier. For Deadline 10.1.8 or later, use our new AWS-Managed IAM Policies instead.

Warning

We recommend that you do not use this policy because it grants excessive permissions. We recommend that you upgrade to Deadline 10.1.8 or later and use our new AWS-Managed IAM Policies instead.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Stmt1503340968000",
            "Effect": "Allow",
            "Action": [
                "ec2:AllocateAddress",
                "ec2:CreateInternetGateway",
                "ec2:CreateNatGateway",
                "ec2:CreateRoute",
                "ec2:CreateRouteTable",
                "ec2:CreateSecurityGroup",
                "ec2:CreateSubnet",
                "ec2:CreateTags",
                "ec2:CreateVpc",
                "ec2:AuthorizeSecurityGroupIngress",
                "ec2:DescribeImages",
                "ec2:DescribeInstances",
                "ec2:DescribeInternetGateways",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSpotFleetInstances",
                "ec2:DescribeSpotFleetRequests",
                "ec2:DescribeSpotPriceHistory",
                "ec2:DescribeSubnets",
                "ec2:DescribeVpcs",
                "ec2:DeleteVpc",
                "ec2:ReleaseAddress",
                "ec2:DeleteInternetGateway",
                "ec2:DescribeAddresses",
                "ec2:RequestSpotFleet",
                "ec2:RevokeSecurityGroupIngress",
                "ec2:ModifyVpcAttribute",
                "ec2:DescribeRouteTables",
                "ec2:DeleteRouteTable",
                "ec2:DeleteSecurityGroup",
                "ec2:DeleteSubnet",
                "ec2:AttachInternetGateway",
                "ec2:AssociateRouteTable",
                "ec2:DeleteRoute",
                "ec2:DeleteNatGateway",
                "ec2:DetachInternetGateway",
                "ec2:DescribeNatGateways",
                "ec2:DisassociateRouteTable",
                "ec2:RunInstances",
                "ec2:ModifyInstanceAttribute",
                "ec2:TerminateInstances",
                "ec2:AssociateAddress",
                "ec2:DisassociateAddress",
                "ec2:GetConsoleOutput",
                "ec2:ModifySpotFleetRequest",
                "ec2:CancelSpotFleetRequests",
                "ec2:DescribeAvailabilityZones",
                "ec2:ImportKeyPair",
                "ec2:DescribeKeyPairs",
                "ec2:DescribeSpotFleetRequestHistory",
                "ec2:CreateVpcEndpoint",
                "ec2:DescribeVpcEndpoints",
                "ec2:DeleteVpcEndpoints"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Sid": "Stmt1503341224000",
            "Effect": "Allow",
            "Action": [
                "iam:CreateAccessKey",
                "iam:DeleteAccessKey",
                "iam:AttachRolePolicy",
                "iam:AttachUserPolicy",
                "iam:DetachRolePolicy",
                "iam:CreatePolicy",
                "iam:CreatePolicyVersion",
                "iam:CreateRole",
                "iam:DeleteRole",
                "iam:CreateUser",
                "iam:DeletePolicyVersion",
                "iam:GetPolicy",
                "iam:GetRole",
                "iam:GetRolePolicy",
                "iam:GetUser",
                "iam:ListEntitiesForPolicy",
                "iam:ListPolicyVersions",
                "iam:CreateInstanceProfile",
                "iam:GetInstanceProfile",
                "iam:AddRoleToInstanceProfile",
                "iam:RemoveRoleFromInstanceProfile",
                "iam:PutRolePolicy",
                "iam:DeleteRolePolicy",
                "iam:DeleteInstanceProfile",
                "iam:PassRole",
                "iam:ListAccessKeys",
                "iam:CreateServiceLinkedRole"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Sid": "Stmt1503341437000",
            "Effect": "Allow",
            "Action": [
                "s3:CreateBucket",
                "s3:DeleteBucket",
                "s3:GetBucketLocation",
                "s3:GetBucketLogging",
                "s3:GetBucketVersioning",
                "s3:ListAllMyBuckets",
                "s3:PutBucketAcl",
                "s3:PutBucketCORS",
                "s3:PutBucketVersioning",
                "s3:GetBucketAcl",
                "s3:GetObject",
                "s3:PutBucketLogging",
                "s3:DeleteObject",
                "s3:PutObject",
                "s3:DeleteBucketPolicy",
                "s3:ListBucket",
                "s3:ListBucketVersions",
                "s3:DeleteObjectVersion",
                "s3:PutBucketPolicy",
                "s3:PutEncryptionConfiguration",
                "s3:PutLifecycleConfiguration",
                "s3:PutBucketTagging",
                "s3:DeleteBucketTagging"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Sid": "Stmt1496243120000",
            "Effect": "Allow",
            "Action": [
                "cloudformation:CreateStack",
                "cloudformation:DeleteStack",
                "cloudformation:DescribeStacks",
                "cloudformation:DescribeStackEvents",
                "cloudformation:DescribeStackResources",
                "cloudformation:ListStacks",
                "cloudformation:EstimateTemplateCost",
                "cloudformation:ListStackResources",
                "cloudformation:CreateChangeSet",
                "cloudformation:DescribeChangeSet",
                "cloudformation:ExecuteChangeSet",
                "cloudformation:UpdateTerminationProtection",
                "cloudformation:DeleteChangeSet"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Sid": "Stmt1506545147000",
            "Effect": "Allow",
            "Action": [
                "logs:DescribeLogGroups",
                "logs:DescribeLogStreams",
                "logs:GetLogEvents",
                "logs:CreateLogGroup",
                "logs:PutRetentionPolicy",
                "logs:DeleteRetentionPolicy"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Sid": "DynamoDBPermissions",
            "Effect": "Allow",
            "Action": [
                "dynamodb:CreateTable",
                "dynamodb:DescribeTable",
                "dynamodb:DeleteTable",
                "dynamodb:TagResource",
                "dynamodb:UntagResource",
                "dynamodb:ListTagsOfResource",
                "dynamodb:BatchWriteItem",
                "dynamodb:Scan"
            ],
            "Resource": "*"
        },
        {
            "Sid": "SQSPermissions",
            "Effect": "Allow",
            "Action": [
                "sqs:CreateQueue",
                "sqs:GetQueueAttributes",
                "sqs:DeleteQueue",
                "sqs:GetQueueUrl",
                "sqs:ListQueueTags",
                "sqs:UntagQueue",
                "sqs:TagQueue"
            ],
            "Resource": "*"
        },
        {
            "Sid": "LambdaPermissions",
            "Effect": "Allow",
            "Action": [
                "lambda:GetFunction",
                "lambda:CreateFunction",
                "lambda:DeleteFunction",
                "lambda:GetFunctionConfiguration",
                "lambda:CreateEventSourceMapping",
                "lambda:GetEventSourceMapping",
                "lambda:DeleteEventSourceMapping",
                "lambda:AddPermission"
            ],
            "Resource": "*"
        },
        {
            "Sid": "EventPermissions",
            "Effect": "Allow",
            "Action": [
                "events:PutRule",
                "events:DescribeRule",
                "events:RemoveTargets",
                "events:DeleteRule",
                "events:PutTargets"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AutoScalingPermissions",
            "Effect": "Allow",
            "Action": [
                "application-autoscaling:DescribeScalableTargets",
                "application-autoscaling:RegisterScalableTarget",
                "application-autoscaling:DeregisterScalableTarget",
                "application-autoscaling:DescribeScalingPolicies",
                "application-autoscaling:PutScalingPolicy",
                "application-autoscaling:DeleteScalingPolicy"
            ],
            "Resource": "*"
        },
        {
            "Sid": "STSPermissions",
            "Effect": "Allow",
            "Action": [
                "sts:GetCallerIdentity"
            ],
            "Resource": "*"
        },
        {
            "Sid": "SecretsManagerPermissions",
            "Effect": "Allow",
            "Action": [
                "secretsmanager:CreateSecret",
                "secretsmanager:DeleteSecret",
                "secretsmanager:UpdateSecret",
                "secretsmanager:DescribeSecret",
                "secretsmanager:TagResource"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Sid": "KMSPermissions",
            "Effect": "Allow",
            "Action": [
               "kms:CreateKey",
               "kms:DescribeKey",
               "kms:Encrypt",
               "kms:GenerateDataKey",
               "kms:EnableKeyRotation",
               "kms:ListKeys",
               "kms:ListKeyPolicies",
               "kms:ListResourceTags",
               "kms:PutKeyPolicy",
               "kms:UpdateKeyDescription",
               "kms:ScheduleKeyDeletion",
               "kms:TagResource"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}

Note

For further security, consider adding an IP address condition to each of these statements. Place this text after the “Resource” entry in each of the statements.

"Condition": {
    "IpAddress" : {
        "aws:SourceIp" : ["<your_public_ip_address>"]
    }
}

This way, only API calls from your IP address will be accepted by AWS.