AWSBackupServiceRolePolicyForRestores
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.
| Service | Granted | Access levels and limits | Granted by |
|---|---|---|---|
| Backup | 4 of 122 | 2 List, 1 Read, 1 Write; 0 restricted, 0 conditional | backup:DescribeRestoreJob, backup:ListRecoveryPointsByBackupVault, backup:ListRestoreJobs, backup:StartRestoreJob |
| Backup Gateway | 1 of 27 | 1 Write; 1 restricted, 0 conditional | backup-gateway:Restore |
| CloudFormation | 4 of 104 | 1 Read, 2 Tagging, 1 Write; 4 restricted, 0 conditional | cloudformation:CreateChangeSet, cloudformation:DescribeChangeSet, cloudformation:TagResource, cloudformation:UntagResource |
| Directory Service | 1 of 91 | 1 List; 0 restricted, 0 conditional | ds:DescribeDirectories |
| Aurora DSQL | 11 of 30 | 2 Read, 1 Tagging, 8 Write; 0 restricted, 0 conditional | dsql:AddPeerCluster, dsql:CreateCluster, dsql:GetCluster, dsql:GetRestoreJob, dsql:PutMultiRegionProperties, dsql:PutWitnessRegion, dsql:RemovePeerCluster, dsql:StartRestoreJob, dsql:StopRestoreJob, dsql:TagResource, dsql:UpdateCluster |
| DynamoDB | 3 of 68 | 1 Read, 2 Write; 3 restricted, 0 conditional | dynamodb:DescribeTable, dynamodb:RestoreTableFromAwsBackup, dynamodb:RestoreTableFromBackup |
| Elastic Block Store | All 2 actions (see the Elastic Block Store page) | 2 Write; 2 restricted, 0 conditional | ebs:CompleteSnapshot, ebs:StartSnapshot |
| EC2 | 22 of 834 | 14 List, 2 Tagging, 6 Write; 7 restricted, 4 conditional | ec2: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 |
| EKS | 16 of 74 | 1 List, 6 Read, 1 Tagging, 8 Write; 16 restricted, 1 conditional | eks: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 |
| EFS | 5 of 38 | 1 List, 1 Tagging, 3 Write; 5 restricted, 0 conditional | elasticfilesystem:CreateFilesystem, elasticfilesystem:DeleteFilesystem, elasticfilesystem:DescribeFilesystems, elasticfilesystem:Restore, elasticfilesystem:TagResource |
| FSx | 9 of 56 | 3 Read, 2 Tagging, 4 Write; 9 restricted, 3 conditional | fsx:CreateFileSystemFromBackup, fsx:CreateVolumeFromBackup, fsx:DeleteFileSystem, fsx:DeleteVolume, fsx:DescribeBackups, fsx:DescribeFileSystems, fsx:DescribeVolumes, fsx:TagResource, fsx:UntagResource |
| IAM | 3 of 190 | 1 List, 1 Read, 1 Write; 1 restricted, 1 conditional | iam:GetRole, iam:ListAttachedRolePolicies, iam:PassRole |
| KMS | 8 of 58 | 1 Permissions management, 1 Read, 6 Write; 7 restricted, 7 conditional | kms:CreateGrant, kms:Decrypt, kms:DescribeKey, kms:Encrypt, kms:GenerateDataKey, kms:GenerateDataKeyWithoutPlaintext, kms:ReEncryptFrom, kms:ReEncryptTo |
| RDS | 15 of 173 | 4 List, 1 Read, 1 Tagging, 9 Write; 1 restricted, 0 conditional | rds: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 |
| Redshift | 4 of 167 | 1 List, 1 Read, 2 Write; 3 restricted, 0 conditional | redshift:DescribeClusters, redshift:DescribeTableRestoreStatus, redshift:RestoreFromClusterSnapshot, redshift:RestoreTableFromClusterSnapshot |
| Redshift Serverless | 3 of 69 | 2 Read, 1 Write; 2 restricted, 0 conditional | redshift-serverless:GetNamespace, redshift-serverless:GetTableRestoreStatus, redshift-serverless:RestoreTableFromSnapshot |
| Storage Gateway | 8 of 97 | 1 List, 3 Read, 1 Tagging, 3 Write; 8 restricted, 0 conditional | storagegateway:AddTagsToResource, storagegateway:CreateCachediSCSIVolume, storagegateway:CreateStorediSCSIVolume, storagegateway:DeleteVolume, storagegateway:DescribeCachediSCSIVolumes, storagegateway:DescribeGatewayInformation, storagegateway:DescribeStorediSCSIVolumes, storagegateway:ListVolumes |
| Timestream | 7 of 32 | 2 List, 4 Read, 1 Write; 7 restricted, 0 conditional | timestream: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.
| Service | Granted | Access levels and limits | Granted by |
|---|---|---|---|
| DynamoDB | 7 of 17 | 3 Read, 4 Write; 7 restricted, 0 conditional | dynamodb:BatchWriteItem, dynamodb:DeleteItem, dynamodb:GetItem, dynamodb:PutItem, dynamodb:Query, dynamodb:Scan, dynamodb:UpdateItem |
| Elastic Block Store | 1 of 4 | 1 Write; 1 restricted, 0 conditional | ebs:PutSnapshotBlock |
| Timestream | 1 of 5 | 1 List; 0 restricted, 0 conditional | timestream: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.
Related policies
Same service
- AdministratorAccess-AWSElasticBeanstalk
- AIDevOpsReleaseManagementVPCPolicy
- AmazonAppStreamServiceAccess
- AmazonBioDiscoveryServiceLinkedRolePolicy
- AmazonDataZoneEnvironmentRolePermissionsBoundary
- AmazonDataZoneProjectDeploymentPermissionsBoundary
- AmazonDataZoneProjectRolePermissionsBoundary
- AmazonDataZoneSageMakerProvisioningRolePolicy
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
{
"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/AWSBackupServiceRolePolicyForRestoresCloudFormation
Resources:
ExampleRole:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument: {} # replace with your trust policy
ManagedPolicyArns:
- arn:aws:iam::aws:policy/service-role/AWSBackupServiceRolePolicyForRestoresTerraform
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.