Skip to main content
IAM Policy Map

AWSBackupServiceRolePolicyForRestores

OperatorService roleActivePermissions reviewedShow on mapCompare

Summary

Provides AWS Backup permission to perform restores on your behalf across AWS services. This policy includes permissions to create and delete AWS resources, such as EBS volumes, RDS instances, and EFS file systems, which are part of the restore process.

Permissions imported from the AWS Managed Policy Reference Guide; other sections pending editorial review.

Identity

ARN
arn:aws:iam::aws:policy/service-role/AWSBackupServiceRolePolicyForRestores
Default version
v36
Created
Last edited
Services
backup, backup-gateway, cloudformation, ds, dsql, dynamodb, ebs, ec2, eks, elasticfilesystem, fsx, iam, kms, rds, redshift, redshift-serverless, storagegateway, timestream

Control-plane actions (126)

By access level: 28 List, 1 Permissions management, 27 Read, 11 Tagging, 59 Write.

Control-plane actions by service
ServiceGrantedAccess levels and limitsGranted by
Backup4 of 1222 List, 1 Read, 1 Write; 0 restricted, 0 conditionalbackup:DescribeRestoreJob, backup:ListRecoveryPointsByBackupVault, backup:ListRestoreJobs, backup:StartRestoreJob
Backup Gateway1 of 271 Write; 1 restricted, 0 conditionalbackup-gateway:Restore
CloudFormation4 of 1041 Read, 2 Tagging, 1 Write; 4 restricted, 0 conditionalcloudformation:CreateChangeSet, cloudformation:DescribeChangeSet, cloudformation:TagResource, cloudformation:UntagResource
Directory Service1 of 911 List; 0 restricted, 0 conditionalds:DescribeDirectories
Aurora DSQL11 of 302 Read, 1 Tagging, 8 Write; 0 restricted, 0 conditionaldsql:AddPeerCluster, dsql:CreateCluster, dsql:GetCluster, dsql:GetRestoreJob, dsql:PutMultiRegionProperties, dsql:PutWitnessRegion, dsql:RemovePeerCluster, dsql:StartRestoreJob, dsql:StopRestoreJob, dsql:TagResource, dsql:UpdateCluster
DynamoDB3 of 681 Read, 2 Write; 3 restricted, 0 conditionaldynamodb:DescribeTable, dynamodb:RestoreTableFromAwsBackup, dynamodb:RestoreTableFromBackup
Elastic Block StoreAll 2 actions (see the Elastic Block Store page)2 Write; 2 restricted, 0 conditionalebs:CompleteSnapshot, ebs:StartSnapshot
EC222 of 83414 List, 2 Tagging, 6 Write; 7 restricted, 4 conditionalec2:CreateTags, ec2:CreateVolume, ec2:DeleteSnapshot, ec2:DeleteTags, ec2:DeleteVolume, ec2:DescribeAccountAttributes, ec2:DescribeAddresses, ec2:DescribeAvailabilityZones, ec2:DescribeImages, ec2:DescribeInstances, ec2:DescribeInternetGateways, ec2:DescribeLaunchTemplateVersions and 10 more
EKS16 of 741 List, 6 Read, 1 Tagging, 8 Write; 16 restricted, 1 conditionaleks:AssociateAccessPolicy, eks:CreateAccessEntry, eks:CreateAddon, eks:CreateCluster, eks:CreateFargateProfile, eks:CreateNodegroup, eks:CreatePodIdentityAssociation, eks:DescribeAccessEntry, eks:DescribeAddon, eks:DescribeCluster, eks:DescribeFargateProfile, eks:DescribeNodegroup and 4 more
EFS5 of 381 List, 1 Tagging, 3 Write; 5 restricted, 0 conditionalelasticfilesystem:CreateFilesystem, elasticfilesystem:DeleteFilesystem, elasticfilesystem:DescribeFilesystems, elasticfilesystem:Restore, elasticfilesystem:TagResource
FSx9 of 563 Read, 2 Tagging, 4 Write; 9 restricted, 3 conditionalfsx:CreateFileSystemFromBackup, fsx:CreateVolumeFromBackup, fsx:DeleteFileSystem, fsx:DeleteVolume, fsx:DescribeBackups, fsx:DescribeFileSystems, fsx:DescribeVolumes, fsx:TagResource, fsx:UntagResource
IAM3 of 1901 List, 1 Read, 1 Write; 1 restricted, 1 conditionaliam:GetRole, iam:ListAttachedRolePolicies, iam:PassRole
KMS8 of 581 Permissions management, 1 Read, 6 Write; 7 restricted, 7 conditionalkms:CreateGrant, kms:Decrypt, kms:DescribeKey, kms:Encrypt, kms:GenerateDataKey, kms:GenerateDataKeyWithoutPlaintext, kms:ReEncryptFrom, kms:ReEncryptTo
RDS15 of 1734 List, 1 Read, 1 Tagging, 9 Write; 1 restricted, 0 conditionalrds:AddTagsToResource, rds:CreateDBInstance, rds:CreateTenantDatabase, rds:DeleteDBCluster, rds:DeleteDBInstance, rds:DeleteTenantDatabase, rds:DescribeDBClusterSnapshots, rds:DescribeDBClusters, rds:DescribeDBInstances, rds:DescribeDBSnapshots, rds:ListTagsForResource, rds:RestoreDBClusterFromSnapshot and 3 more
Redshift4 of 1671 List, 1 Read, 2 Write; 3 restricted, 0 conditionalredshift:DescribeClusters, redshift:DescribeTableRestoreStatus, redshift:RestoreFromClusterSnapshot, redshift:RestoreTableFromClusterSnapshot
Redshift Serverless3 of 692 Read, 1 Write; 2 restricted, 0 conditionalredshift-serverless:GetNamespace, redshift-serverless:GetTableRestoreStatus, redshift-serverless:RestoreTableFromSnapshot
Storage Gateway8 of 971 List, 3 Read, 1 Tagging, 3 Write; 8 restricted, 0 conditionalstoragegateway:AddTagsToResource, storagegateway:CreateCachediSCSIVolume, storagegateway:CreateStorediSCSIVolume, storagegateway:DeleteVolume, storagegateway:DescribeCachediSCSIVolumes, storagegateway:DescribeGatewayInformation, storagegateway:DescribeStorediSCSIVolumes, storagegateway:ListVolumes
Timestream7 of 322 List, 4 Read, 1 Write; 7 restricted, 0 conditionaltimestream:DescribeDatabase, timestream:DescribeTable, timestream:GetAwsRestoreStatus, timestream:ListDatabases, timestream:ListTables, timestream:ListTagsForResource, timestream:StartAwsRestoreJob
Backup: 4 actions
  • backup:DescribeRestoreJob (Read)
  • backup:ListRecoveryPointsByBackupVault (List)
  • backup:ListRestoreJobs (List)
  • backup:StartRestoreJob (Write)
Backup Gateway: 1 actions
  • backup-gateway:Restore (Write)
CloudFormation: 4 actions
  • cloudformation:CreateChangeSet (Write)
  • cloudformation:DescribeChangeSet (Read)
  • cloudformation:TagResource (Tagging)
  • cloudformation:UntagResource (Tagging)
Directory Service: 1 actions
  • ds:DescribeDirectories (List)
Aurora DSQL: 11 actions
  • dsql:AddPeerCluster (Write)
  • dsql:CreateCluster (Write)
  • dsql:GetCluster (Read)
  • dsql:GetRestoreJob (Read)
  • dsql:PutMultiRegionProperties (Write)
  • dsql:PutWitnessRegion (Write)
  • dsql:RemovePeerCluster (Write)
  • dsql:StartRestoreJob (Write)
  • dsql:StopRestoreJob (Write)
  • dsql:TagResource (Tagging)
  • dsql:UpdateCluster (Write)
DynamoDB: 3 actions
  • dynamodb:DescribeTable (Read)
  • dynamodb:RestoreTableFromAwsBackup (Write)
  • dynamodb:RestoreTableFromBackup (Write)
EC2: 22 actions
  • ec2:CreateTags (Tagging)
  • ec2:CreateVolume (Write)
  • ec2:DeleteSnapshot (Write)
  • ec2:DeleteTags (Tagging)
  • ec2:DeleteVolume (Write)
  • ec2:DescribeAccountAttributes (List)
  • ec2:DescribeAddresses (List)
  • ec2:DescribeAvailabilityZones (List)
  • ec2:DescribeImages (List)
  • ec2:DescribeInstances (List)
  • ec2:DescribeInternetGateways (List)
  • ec2:DescribeLaunchTemplateVersions (List)
  • ec2:DescribeRouteTables (List)
  • ec2:DescribeSecurityGroups (List)
  • ec2:DescribeSnapshotTierStatus (List)
  • ec2:DescribeSnapshots (List)
  • ec2:DescribeSubnets (List)
  • ec2:DescribeVolumes (List)
  • ec2:DescribeVpcs (List)
  • ec2:RestoreSnapshotTier (Write)
  • ec2:RunInstances (Write)
  • ec2:TerminateInstances (Write)
EKS: 16 actions
  • eks:AssociateAccessPolicy (Write)
  • eks:CreateAccessEntry (Write)
  • eks:CreateAddon (Write)
  • eks:CreateCluster (Write)
  • eks:CreateFargateProfile (Write)
  • eks:CreateNodegroup (Write)
  • eks:CreatePodIdentityAssociation (Write)
  • eks:DescribeAccessEntry (Read)
  • eks:DescribeAddon (Read)
  • eks:DescribeCluster (Read)
  • eks:DescribeFargateProfile (Read)
  • eks:DescribeNodegroup (Read)
  • eks:DescribePodIdentityAssociation (Read)
  • eks:DisassociateAccessPolicy (Write)
  • eks:ListAssociatedAccessPolicies (List)
  • eks:TagResource (Tagging)
EFS: 5 actions
  • elasticfilesystem:CreateFileSystem (Write)
  • elasticfilesystem:DeleteFileSystem (Write)
  • elasticfilesystem:DescribeFileSystems (List)
  • elasticfilesystem:Restore (Write)
  • elasticfilesystem:TagResource (Tagging)
FSx: 9 actions
  • fsx:CreateFileSystemFromBackup (Write)
  • fsx:CreateVolumeFromBackup (Write)
  • fsx:DeleteFileSystem (Write)
  • fsx:DeleteVolume (Write)
  • fsx:DescribeBackups (Read)
  • fsx:DescribeFileSystems (Read)
  • fsx:DescribeVolumes (Read)
  • fsx:TagResource (Tagging)
  • fsx:UntagResource (Tagging)
IAM: 3 actions
  • iam:GetRole (Read)
  • iam:ListAttachedRolePolicies (List)
  • iam:PassRole (Write)
KMS: 8 actions
  • kms:CreateGrant (Permissions management)
  • kms:Decrypt (Write)
  • kms:DescribeKey (Read)
  • kms:Encrypt (Write)
  • kms:GenerateDataKey (Write)
  • kms:GenerateDataKeyWithoutPlaintext (Write)
  • kms:ReEncryptFrom (Write)
  • kms:ReEncryptTo (Write)
RDS: 15 actions
  • rds:AddTagsToResource (Tagging)
  • rds:CreateDBInstance (Write)
  • rds:CreateTenantDatabase (Write)
  • rds:DeleteDBCluster (Write)
  • rds:DeleteDBInstance (Write)
  • rds:DeleteTenantDatabase (Write)
  • rds:DescribeDBClusterSnapshots (List)
  • rds:DescribeDBClusters (List)
  • rds:DescribeDBInstances (List)
  • rds:DescribeDBSnapshots (List)
  • rds:ListTagsForResource (Read)
  • rds:RestoreDBClusterFromSnapshot (Write)
  • rds:RestoreDBClusterToPointInTime (Write)
  • rds:RestoreDBInstanceFromDBSnapshot (Write)
  • rds:RestoreDBInstanceToPointInTime (Write)
Redshift: 4 actions
  • redshift:DescribeClusters (List)
  • redshift:DescribeTableRestoreStatus (Read)
  • redshift:RestoreFromClusterSnapshot (Write)
  • redshift:RestoreTableFromClusterSnapshot (Write)
Redshift Serverless: 3 actions
  • redshift-serverless:GetNamespace (Read)
  • redshift-serverless:GetTableRestoreStatus (Read)
  • redshift-serverless:RestoreTableFromSnapshot (Write)
Storage Gateway: 8 actions
  • storagegateway:AddTagsToResource (Tagging)
  • storagegateway:CreateCachediSCSIVolume (Write)
  • storagegateway:CreateStorediSCSIVolume (Write)
  • storagegateway:DeleteVolume (Write)
  • storagegateway:DescribeCachediSCSIVolumes (Read)
  • storagegateway:DescribeGatewayInformation (Read)
  • storagegateway:DescribeStorediSCSIVolumes (Read)
  • storagegateway:ListVolumes (List)
Timestream: 7 actions
  • timestream:DescribeDatabase (Read)
  • timestream:DescribeTable (Read)
  • timestream:GetAwsRestoreStatus (Read)
  • timestream:ListDatabases (List)
  • timestream:ListTables (List)
  • timestream:ListTagsForResource (Read)
  • timestream:StartAwsRestoreJob (Write)

Data-plane actions (9)

By access level: 1 List, 3 Read, 5 Write.

Data-plane actions by service
ServiceGrantedAccess levels and limitsGranted by
DynamoDB7 of 173 Read, 4 Write; 7 restricted, 0 conditionaldynamodb:BatchWriteItem, dynamodb:DeleteItem, dynamodb:GetItem, dynamodb:PutItem, dynamodb:Query, dynamodb:Scan, dynamodb:UpdateItem
Elastic Block Store1 of 41 Write; 1 restricted, 0 conditionalebs:PutSnapshotBlock
Timestream1 of 51 List; 0 restricted, 0 conditionaltimestream:DescribeEndpoints
DynamoDB: 7 actions
  • dynamodb:BatchWriteItem (Write)
  • dynamodb:DeleteItem (Write)
  • dynamodb:GetItem (Read)
  • dynamodb:PutItem (Write)
  • dynamodb:Query (Read)
  • dynamodb:Scan (Read)
  • dynamodb:UpdateItem (Write)
Elastic Block Store: 1 actions
  • ebs:PutSnapshotBlock (Write)
Timestream: 1 actions
  • timestream:DescribeEndpoints (List)

Excluded and conditional actions

No patterns are excluded by NotAction or Deny statements.

Resource scope and attachment

Resource scope across granted actions: mixed.

Can be attached: Yes, to users, groups and roles.

Why this tier

  • Grants 76 write, tagging or permissions-management actions, short of full control of any service.
  • Grants data-plane write actions on a data store, but only for scoped resources or under conditions.
  • Grants iam:PassRole, but only for scoped roles or under conditions (for example iam:PassedToService).
  • 2 granted write or permissions-management actions have no data-plane classification from AWS, so the data-plane rule cannot assess them.

Guidance

Pending editorial review. The permission data on this page comes straight from AWS; this section will be filled in once a reviewed guide exists.

Same service

Same domain

Frequently asked questions

Pending editorial review. The permission data on this page comes straight from AWS; this section will be filled in once a reviewed guide exists.

Policy JSON

Download policy.json

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "DynamoDBPermissions",
      "Effect": "Allow",
      "Action": [
        "dynamodb:Scan",
        "dynamodb:Query",
        "dynamodb:UpdateItem",
        "dynamodb:PutItem",
        "dynamodb:GetItem",
        "dynamodb:DeleteItem",
        "dynamodb:BatchWriteItem",
        "dynamodb:DescribeTable"
      ],
      "Resource": "arn:aws:dynamodb:*:*:table/*"
    },
    {
      "Sid": "DynamoDBBackupResourcePermissions",
      "Effect": "Allow",
      "Action": [
        "dynamodb:RestoreTableFromBackup"
      ],
      "Resource": "arn:aws:dynamodb:*:*:table/*/backup/*"
    },
    {
      "Sid": "EBSPermissions",
      "Effect": "Allow",
      "Action": [
        "ec2:CreateVolume",
        "ec2:DeleteVolume"
      ],
      "Resource": [
        "arn:aws:ec2:*::snapshot/*",
        "arn:aws:ec2:*:*:volume/*"
      ]
    },
    {
      "Sid": "EC2DescribePermissions",
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeImages",
        "ec2:DescribeInstances",
        "ec2:DescribeSnapshots",
        "ec2:DescribeVolumes",
        "ec2:DescribeAccountAttributes",
        "ec2:DescribeAddresses",
        "ec2:DescribeAvailabilityZones",
        "ec2:DescribeSecurityGroups",
        "ec2:DescribeSubnets",
        "ec2:DescribeVpcs",
        "ec2:DescribeInternetGateways",
        "ec2:DescribeSnapshotTierStatus",
        "ec2:DescribeRouteTables"
      ],
      "Resource": "*"
    },
    {
      "Sid": "CreateTagsPermissions",
      "Effect": "Allow",
      "Action": [
        "ec2:CreateTags"
      ],
      "Resource": "arn:aws:ec2:*:*:route-table/*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/AmazonFSx": "ManagedByAmazonFSx"
        }
      }
    },
    {
      "Sid": "StorageGatewayVolumePermissions",
      "Effect": "Allow",
      "Action": [
        "storagegateway:DeleteVolume",
        "storagegateway:DescribeCachediSCSIVolumes",
        "storagegateway:DescribeStorediSCSIVolumes",
        "storagegateway:AddTagsToResource"
      ],
      "Resource": "arn:aws:storagegateway:*:*:gateway/*/volume/*"
    },
    {
      "Sid": "StorageGatewayGatewayPermissions",
      "Effect": "Allow",
      "Action": [
        "storagegateway:DescribeGatewayInformation",
        "storagegateway:CreateStorediSCSIVolume",
        "storagegateway:CreateCachediSCSIVolume"
      ],
      "Resource": "arn:aws:storagegateway:*:*:gateway/*"
    },
    {
      "Sid": "StorageGatewayListPermissions",
      "Effect": "Allow",
      "Action": [
        "storagegateway:ListVolumes"
      ],
      "Resource": "arn:aws:storagegateway:*:*:*"
    },
    {
      "Sid": "RDSPermissions",
      "Effect": "Allow",
      "Action": [
        "rds:DescribeDBInstances",
        "rds:DescribeDBSnapshots",
        "rds:ListTagsForResource",
        "rds:RestoreDBInstanceFromDBSnapshot",
        "rds:DeleteDBInstance",
        "rds:AddTagsToResource",
        "rds:DescribeDBClusters",
        "rds:RestoreDBClusterFromSnapshot",
        "rds:DeleteDBCluster",
        "rds:RestoreDBInstanceToPointInTime",
        "rds:DescribeDBClusterSnapshots",
        "rds:RestoreDBClusterToPointInTime",
        "rds:CreateTenantDatabase",
        "rds:DeleteTenantDatabase"
      ],
      "Resource": "*"
    },
    {
      "Sid": "EFSPermissions",
      "Effect": "Allow",
      "Action": [
        "elasticfilesystem:Restore",
        "elasticfilesystem:CreateFilesystem",
        "elasticfilesystem:DescribeFilesystems",
        "elasticfilesystem:DeleteFilesystem",
        "elasticfilesystem:TagResource"
      ],
      "Resource": "arn:aws:elasticfilesystem:*:*:file-system/*"
    },
    {
      "Sid": "KMSDescribePermissions",
      "Effect": "Allow",
      "Action": "kms:DescribeKey",
      "Resource": "*"
    },
    {
      "Sid": "DSQLResourcePermissionsForRestore",
      "Effect": "Allow",
      "Action": [
        "dsql:StartRestoreJob",
        "dsql:GetRestoreJob",
        "dsql:StopRestoreJob",
        "dsql:TagResource",
        "dsql:CreateCluster",
        "dsql:PutMultiRegionProperties",
        "dsql:PutWitnessRegion",
        "dsql:UpdateCluster",
        "dsql:AddPeerCluster",
        "dsql:RemovePeerCluster",
        "dsql:GetCluster"
      ],
      "Resource": [
        "*"
      ]
    },
    {
      "Sid": "KMSPermissions",
      "Effect": "Allow",
      "Action": [
        "kms:Decrypt",
        "kms:Encrypt",
        "kms:GenerateDataKey",
        "kms:ReEncryptTo",
        "kms:ReEncryptFrom",
        "kms:GenerateDataKeyWithoutPlaintext",
        "kms:DescribeKey"
      ],
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "kms:ViaService": [
            "dynamodb.*.amazonaws.com",
            "ec2.*.amazonaws.com",
            "elasticfilesystem.*.amazonaws.com",
            "rds.*.amazonaws.com",
            "redshift.*.amazonaws.com",
            "dsql.*.amazonaws.com",
            "redshift-serverless.*.amazonaws.com"
          ]
        }
      }
    },
    {
      "Sid": "KMSCreateGrantPermissions",
      "Effect": "Allow",
      "Action": "kms:CreateGrant",
      "Resource": "*",
      "Condition": {
        "Bool": {
          "kms:GrantIsForAWSResource": "true"
        }
      }
    },
    {
      "Sid": "EBSSnapshotBlockPermissions",
      "Effect": "Allow",
      "Action": [
        "ebs:CompleteSnapshot",
        "ebs:StartSnapshot",
        "ebs:PutSnapshotBlock"
      ],
      "Resource": "arn:aws:ec2:*::snapshot/*"
    },
    {
      "Sid": "RDSResourcePermissions",
      "Effect": "Allow",
      "Action": [
        "rds:CreateDBInstance"
      ],
      "Resource": "arn:aws:rds:*:*:db:*"
    },
    {
      "Sid": "EC2DeleteAndRestorePermissions",
      "Effect": "Allow",
      "Action": [
        "ec2:DeleteSnapshot",
        "ec2:DeleteTags",
        "ec2:RestoreSnapshotTier"
      ],
      "Resource": "arn:aws:ec2:*::snapshot/*",
      "Condition": {
        "Null": {
          "aws:ResourceTag/aws:backup:source-resource": "false"
        }
      }
    },
    {
      "Sid": "EC2CreateTagsScopedPermissions",
      "Effect": "Allow",
      "Action": "ec2:CreateTags",
      "Resource": [
        "arn:aws:ec2:*::snapshot/*",
        "arn:aws:ec2:*:*:instance/*"
      ],
      "Condition": {
        "ForAllValues:StringEquals": {
          "aws:TagKeys": [
            "aws:backup:source-resource"
          ]
        }
      }
    },
    {
      "Sid": "EC2RunInstancesPermissions",
      "Effect": "Allow",
      "Action": [
        "ec2:RunInstances"
      ],
      "Resource": "*"
    },
    {
      "Sid": "EC2TerminateInstancesPermissions",
      "Effect": "Allow",
      "Action": [
        "ec2:TerminateInstances"
      ],
      "Resource": "arn:aws:ec2:*:*:instance/*"
    },
    {
      "Sid": "EC2CreateTagsPermissions",
      "Effect": "Allow",
      "Action": [
        "ec2:CreateTags"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:instance/*",
        "arn:aws:ec2:*:*:volume/*"
      ],
      "Condition": {
        "StringLike": {
          "ec2:CreateAction": [
            "RunInstances",
            "CreateVolume"
          ]
        }
      }
    },
    {
      "Sid": "FsxPermissions",
      "Effect": "Allow",
      "Action": [
        "fsx:CreateFileSystemFromBackup"
      ],
      "Resource": [
        "arn:aws:fsx:*:*:file-system/*",
        "arn:aws:fsx:*:*:backup/*"
      ]
    },
    {
      "Sid": "FsxTagPermissions",
      "Effect": "Allow",
      "Action": [
        "fsx:DescribeFileSystems",
        "fsx:TagResource"
      ],
      "Resource": "arn:aws:fsx:*:*:file-system/*"
    },
    {
      "Sid": "FsxBackupPermissions",
      "Effect": "Allow",
      "Action": "fsx:DescribeBackups",
      "Resource": "arn:aws:fsx:*:*:backup/*"
    },
    {
      "Sid": "FsxDeletePermissions",
      "Effect": "Allow",
      "Action": [
        "fsx:DeleteFileSystem",
        "fsx:UntagResource"
      ],
      "Resource": "arn:aws:fsx:*:*:file-system/*",
      "Condition": {
        "Null": {
          "aws:ResourceTag/aws:backup:source-resource": "false"
        }
      }
    },
    {
      "Sid": "FsxDescribePermissions",
      "Effect": "Allow",
      "Action": [
        "fsx:DescribeVolumes"
      ],
      "Resource": "arn:aws:fsx:*:*:volume/*"
    },
    {
      "Sid": "FsxVolumeTagPermissions",
      "Effect": "Allow",
      "Action": [
        "fsx:CreateVolumeFromBackup",
        "fsx:TagResource"
      ],
      "Resource": [
        "arn:aws:fsx:*:*:volume/*"
      ],
      "Condition": {
        "ForAllValues:StringEquals": {
          "aws:TagKeys": [
            "aws:backup:source-resource"
          ]
        }
      }
    },
    {
      "Sid": "FsxBackupTagPermissions",
      "Effect": "Allow",
      "Action": [
        "fsx:CreateVolumeFromBackup",
        "fsx:TagResource"
      ],
      "Resource": [
        "arn:aws:fsx:*:*:storage-virtual-machine/*",
        "arn:aws:fsx:*:*:backup/*",
        "arn:aws:fsx:*:*:volume/*"
      ]
    },
    {
      "Sid": "FsxVolumePermissions",
      "Effect": "Allow",
      "Action": [
        "fsx:DeleteVolume",
        "fsx:UntagResource"
      ],
      "Resource": "arn:aws:fsx:*:*:volume/*",
      "Condition": {
        "Null": {
          "aws:ResourceTag/aws:backup:source-resource": "false"
        }
      }
    },
    {
      "Sid": "DSPermissions",
      "Effect": "Allow",
      "Action": "ds:DescribeDirectories",
      "Resource": "*"
    },
    {
      "Sid": "DynamoDBRestorePermissions",
      "Effect": "Allow",
      "Action": [
        "dynamodb:RestoreTableFromAwsBackup"
      ],
      "Resource": "arn:aws:dynamodb:*:*:table/*"
    },
    {
      "Sid": "GatewayRestorePermissions",
      "Effect": "Allow",
      "Action": [
        "backup-gateway:Restore"
      ],
      "Resource": "arn:aws:backup-gateway:*:*:hypervisor/*"
    },
    {
      "Sid": "CloudformationChangeSetPermissions",
      "Effect": "Allow",
      "Action": [
        "cloudformation:CreateChangeSet",
        "cloudformation:DescribeChangeSet",
        "cloudformation:TagResource",
        "cloudformation:UntagResource"
      ],
      "Resource": "arn:aws:cloudformation:*:*:*/*/*"
    },
    {
      "Sid": "RedshiftClusterSnapshotPermissions",
      "Effect": "Allow",
      "Action": [
        "redshift:RestoreFromClusterSnapshot",
        "redshift:RestoreTableFromClusterSnapshot"
      ],
      "Resource": [
        "arn:aws:redshift:*:*:snapshot:*/*",
        "arn:aws:redshift:*:*:cluster:*",
        "arn:aws:redshift-serverless:*:*:snapshot/*"
      ]
    },
    {
      "Sid": "RedshiftClusterPermissions",
      "Effect": "Allow",
      "Action": [
        "redshift:DescribeClusters"
      ],
      "Resource": [
        "arn:aws:redshift:*:*:cluster:*"
      ]
    },
    {
      "Sid": "RedshiftTablePermissions",
      "Effect": "Allow",
      "Action": [
        "redshift:DescribeTableRestoreStatus"
      ],
      "Resource": "*"
    },
    {
      "Sid": "RedshiftServerlessSnapshotPermissions",
      "Effect": "Allow",
      "Action": [
        "redshift-serverless:RestoreTableFromSnapshot"
      ],
      "Resource": [
        "arn:aws:redshift-serverless:*:*:namespace/*",
        "arn:aws:redshift-serverless:*:*:workgroup/*",
        "arn:aws:redshift-serverless:*:*:snapshot/*"
      ]
    },
    {
      "Sid": "RedshiftServerlessNamespacePermissions",
      "Effect": "Allow",
      "Action": [
        "redshift-serverless:GetNamespace"
      ],
      "Resource": [
        "arn:aws:redshift-serverless:*:*:namespace/*"
      ]
    },
    {
      "Sid": "RedshiftServerlessTablePermissions",
      "Effect": "Allow",
      "Action": [
        "redshift-serverless:GetTableRestoreStatus"
      ],
      "Resource": [
        "*"
      ]
    },
    {
      "Sid": "TimestreamResourcePermissions",
      "Effect": "Allow",
      "Action": [
        "timestream:StartAwsRestoreJob",
        "timestream:GetAwsRestoreStatus",
        "timestream:ListTables",
        "timestream:ListTagsForResource",
        "timestream:ListDatabases",
        "timestream:DescribeTable",
        "timestream:DescribeDatabase"
      ],
      "Resource": [
        "arn:aws:timestream:*:*:database/*"
      ]
    },
    {
      "Sid": "TimestreamEndpointPermissions",
      "Effect": "Allow",
      "Action": [
        "timestream:DescribeEndpoints"
      ],
      "Resource": [
        "*"
      ]
    },
    {
      "Sid": "EKSClusterRestore",
      "Effect": "Allow",
      "Action": [
        "eks:CreateCluster",
        "eks:DescribeCluster",
        "eks:CreateAccessEntry",
        "eks:DescribeAccessEntry",
        "eks:AssociateAccessPolicy",
        "eks:ListAssociatedAccessPolicies",
        "eks:CreateAddon",
        "eks:DescribeAddon",
        "eks:CreateNodegroup",
        "eks:DescribeNodegroup",
        "eks:CreateFargateProfile",
        "eks:DescribeFargateProfile",
        "eks:CreatePodIdentityAssociation",
        "eks:DescribePodIdentityAssociation",
        "eks:TagResource"
      ],
      "Resource": [
        "arn:aws:eks:*:*:access-entry/*",
        "arn:aws:eks:*:*:addon/*",
        "arn:aws:eks:*:*:cluster/*",
        "arn:aws:eks:*:*:fargateprofile/*",
        "arn:aws:eks:*:*:nodegroup/*",
        "arn:aws:eks:*:*:podidentityassociation/*"
      ]
    },
    {
      "Sid": "AssociateRestoreAccessPolicy",
      "Effect": "Allow",
      "Action": [
        "eks:AssociateAccessPolicy",
        "eks:DisassociateAccessPolicy"
      ],
      "Resource": "arn:aws:eks:*:*:access-entry/*",
      "Condition": {
        "StringEquals": {
          "eks:accessScope": "cluster",
          "eks:policyArn": "arn:aws:eks::aws:cluster-access-policy/AWSBackupFullAccessPolicyForRestore"
        }
      }
    },
    {
      "Sid": "CreateClusterIAMPerms",
      "Effect": "Allow",
      "Action": [
        "iam:PassRole"
      ],
      "Resource": "arn:aws:iam::*:role/*",
      "Condition": {
        "StringEquals": {
          "iam:PassedToService": [
            "eks.amazonaws.com",
            "ec2.amazonaws.com",
            "pods.eks.amazonaws.com",
            "backup.amazonaws.com"
          ]
        }
      }
    },
    {
      "Sid": "CreateEKSNodeGroupPermissions",
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeLaunchTemplateVersions",
        "ec2:DescribeSubnets",
        "ec2:RunInstances",
        "iam:GetRole",
        "iam:ListAttachedRolePolicies"
      ],
      "Resource": "*"
    },
    {
      "Sid": "EKSNodeGroupTagOnCreate",
      "Effect": "Allow",
      "Action": [
        "ec2:CreateTags"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:instance/*",
        "arn:aws:ec2:*:*:volume/*",
        "arn:aws:ec2:*:*:network-interface/*"
      ],
      "Condition": {
        "StringEquals": {
          "ec2:CreateAction": [
            "RunInstances"
          ]
        }
      }
    },
    {
      "Sid": "BackupRestoreJobManagementPermissions",
      "Effect": "Allow",
      "Action": [
        "backup:StartRestoreJob",
        "backup:ListRestoreJobs",
        "backup:ListRecoveryPointsByBackupVault",
        "backup:DescribeRestoreJob"
      ],
      "Resource": "*"
    }
  ]
}

Version history

Current version v36, edited by AWS on 2026-08-27. Version history is recorded from 2026-11-11. Earlier versions are in the IAM console under Policy versions.

Attach snippets

AWS CLI

aws iam attach-role-policy --role-name ROLE_NAME --policy-arn arn:aws:iam::aws:policy/service-role/AWSBackupServiceRolePolicyForRestores
aws iam attach-user-policy --user-name USER_NAME --policy-arn arn:aws:iam::aws:policy/service-role/AWSBackupServiceRolePolicyForRestores
aws iam attach-group-policy --group-name GROUP_NAME --policy-arn arn:aws:iam::aws:policy/service-role/AWSBackupServiceRolePolicyForRestores

CloudFormation

Resources:
  ExampleRole:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument: {}  # replace with your trust policy
      ManagedPolicyArns:
        - arn:aws:iam::aws:policy/service-role/AWSBackupServiceRolePolicyForRestores

Terraform

resource "aws_iam_role_policy_attachment" "service_role_awsbackupservicerolepolicyforrestores" {
  role       = aws_iam_role.example.name
  policy_arn = "arn:aws:iam::aws:policy/service-role/AWSBackupServiceRolePolicyForRestores"
}

CDK (TypeScript)

role.addManagedPolicy(
  iam.ManagedPolicy.fromAwsManagedPolicyName("service-role/AWSBackupServiceRolePolicyForRestores"),
);

Sources

Pending editorial review. No editorial sources are listed yet.