# How Commvault Uses AWS Permissions to Protect Amazon RDS for Snapshot-Based Protection

The Commvault software uses AWS permissions to perform protection operations for your Amazon RDS instances using snapshots.

The software uses permissions only to access snapshot, volume, and instance configuration information that is required to back up instances to storage, to recover instances, and to clean up intermediate entities that are created by Commvault during those operations. Also, when a user account that has the required administrative privileges requests that a recovered instance overwrite the original instance, the permissions are used to remove the original instance, but only after confirmation from the user.

For AWS information about policies and permissions, see Policies and permissions in IAM in the AWS documentation.

Commvault supports dual-layer server-side encryption with AWS KMS (DSSE-KMS).

Permission | Usage
--- | ---
rds-db:connect | Allows users to connect to Amazon RDS databases using IAM-based authentication.
rds:AddTagsToResource | Allows adding tags to an Amazon RDS resource. Tags add metadata to RDS resources which can be used for unique identification.
rds:CopyDBClusterSnapshot | Allows copying an Amazon RDS DB cluster snapshot to another region or account. This permission is required for DB Cluster Snapshots as CopyDBSnapshot is required for DB Snapshots.
rds:CopyDBSnapshot | Allows copying an Amazon RDS DB snapshot to another region or account. When snap replication is enabled (replica copy is added to backup plan), CopyDBSnapshot permission is required to copy a snapshot from one region to another as AWS directly does not allow sharing of snapshot to a different account in a region which is not same as the source snapshot’s region. This is also the case with encrypted snapshots, they are first copied to a different region, as an intermediate snap and then shared to the destination account. Post which, the intermediate is deleted.
rds:CopyOptionGroup | Grants permission to copy the specified option group
rds:CreateDBClusterSnapshot | Allows creating a snapshot of an Amazon RDS DB cluster. This permission allows the creation of a DB instance’s snapshot at a given instant in time when the backup operation is triggered.
rds:CreateDBInstance | Allows creating an Amazon RDS DB instance. This permission is required for creating new DB instances in a DB cluster. During a restore of a DB Cluster, rds:RestoreDBClusterFromSnapshot permission is required for the restoration of a cluster, and rds:CreateDBInstance is required to add the writer DB instance to the cluster.
rds:CreateTenantDatabase | Grants permission to create a tenant database
rds:CreateDBSnapshot | Grants permission to create a DBSnapshot
rds:DeleteDBClusterSnapshot | Allows deleting an Amazon RDS DB cluster snapshot. This permission is required for deleting any intermediate DB cluster snapshots that may have been created during copying or sharing of snapshots or during out-of-place restores.
rds:DeleteDBSnapshot | Allows deleting an Amazon RDS DB snapshot. This permission is required for deleting any intermediate snapshots that may have been created during copying or sharing of snapshots or during out-of-place restores.
rds:DescribeDBClusterAutomatedBackups | Allows describing automated backups for both current and deleted DB clusters. This can be useful for tracking backup status and details for your DB clusters.
rds:DescribeDBClusters | Allows describing Amazon RDS DB clusters. This permission is required to verify the state of a DB Cluster. It is the equivalent of rds:DescribeDBInstances, but for a cluster.
rds:DescribeDBClusterSnapshots | Allows describing Amazon RDS DB cluster snapshots. This permission is required to verify whether the snapshot is present and in available state for restore. The properties of the DB instance present in the snapshot are also used later to restore the snapshot to an RDS instance.
rds:DescribeDBInstanceAutomatedBackups | Allows describing about automated backups for both current and deleted DB instances. This can be useful for tracking backup status and details for your DB instances.
rds:DescribeDBInstances | Allows describing Amazon RDS DB instances. This permission is required to verify the state of a DB Instance, whether it is in available state for backup. Also, to verify whether a restore completed successfully or not and the DB instance is in available state.
rds:DescribeDBSnapshots | Allows describing Amazon RDS DB snapshots. This permission is required to verify whether the snapshot is present and in available state for restore. The properties of the DB instance present in the snapshot are also used later to restore the snapshot to an RDS instance.
rds:ListTagsForResource | Allows listing tags of an Amazon RDS resource. This permission is required for viewing and retaining the tags for a resource during copying, sharing and cross account operations.
rds:ModifyDBClusterSnapshotAttribute | Allows modifying attributes of an Amazon RDS DB cluster snapshot.
rds:ModifyDBCluster | Allows modifying attributes of an Amazon RDS DB cluster.
rds:ModifyDBInstance | Allows modifying attributes of an Amazon RDS DB instance.
rds:ModifyDBSnapshotAttribute | Allows modifying attributes of an Amazon RDS DB snapshot. Also allows sharing snapshots with other AWS accounts.
rds:RestoreDBClusterFromSnapshot | Allows restoring an Amazon RDS DB cluster from a snapshot. It is required to create a new DB cluster from a DB snapshot or DB cluster snapshot.
rds:RestoreDBInstanceFromDBSnapshot | Grants permission to restore the DB instance from a DB snapshot
rds:RestoreDBClusterToPointInTime | Grants permission to restore the DB cluster to a point in time
rds:RestoreDBInstanceToPointInTime | Grants permission to restore the DB instance to a point in time
ec2:DescribeAccountAttributes | Allows describing attributes of an AWS account.
ec2:DescribeAvailabilityZones | Allows describing Amazon EC2 availability zones.
ec2:DescribeRegions | Allows describing Amazon EC2 regions.
ec2:DescribeSecurityGroups | Allows describing Amazon EC2 security groups.
ec2:DescribeSubnets | Allows describing Amazon VPC subnets.
ec2:DescribeVpcs | Allows describing Amazon VPCs (Virtual Private Clouds).
iam:GetAccountAuthorizationDetails | Allows retrieving details of IAM policies and permissions attached to the AWS account.
iam:GetUser | Allows retrieving information about an IAM user. Required for authentication of user and the session.
iam:PassRole | Allows a user to delegate permissions to an AWS service by passing an IAM role to that service.
kms:CreateGrant | Allows creating a grant for an AWS KMS key. A grant is a policy instrument that allows AWS principals to use KMS keys in cryptographic operations.
kms:DescribeKey | Allows describing details of an AWS KMS key. This detailed information includes the key ARN, creation date (and deletion date, if applicable), the key state, and the origin and expiration date (if any) of the key material. It includes fields, like KeySpec, that help you distinguish different types of KMS keys.
kms:Decrypt | Allows decrypting data using an AWS KMS key.
kms:Encrypt | Allows encrypting data using an AWS KMS key.
kms:GenerateDataKey | Allows generating a data encryption key using an AWS KMS key.
kms:GenerateDataKeyWithoutPlaintext | Controls permission to use the AWS KMS key to generate a data key. Unlike the GenerateDataKey operation, this operation returns an encrypted data key without a plaintext version of the data key.
kms:ListAliases | Allows listing KMS key aliases. These include aliases that one created and associated with their customer managed keys, and aliases that AWS created and associated with AWS managed keys in your account. AWS aliases have the format aws/, such as aws/rds.
kms:ListKeys | Allows listing AWS KMS keys. It has similar functionality to kms:ListAliases. It is used to get a list of all KMS keys in the caller’s AWS account and Region.
kms:ListResourceTags | Allows listing tags of an AWS KMS key.
kms:ReEncrypt | Allows re-encrypting data using an AWS Key Management Service (KMS) key.

×

Loading...