Skip to main content
IAM Policy Map

AmazonRDSDataFullAccess

High privilegeAdminAWS managedActiveReviewedShow on mapCompare

Summary

Allows full access to use the RDS data APIs, the secret store APIs for RDS database credentials, and the DB console query management APIs to run SQL statements on Aurora Serverless clusters in the account. The Amazon RDS User Guide says it also allows the account to get the value of a secret from AWS Secrets Manager.

Permissions imported from the AWS Managed Policy Reference Guide; other sections reviewed against the listed AWS sources.

Identity

ARN
arn:aws:iam::aws:policy/AmazonRDSDataFullAccess
Default version
v3
Created
Last edited
Services
dbqms, rds-data, secretsmanager, tag

Control-plane actions (19)

By access level: 3 List, 1 Permissions management, 5 Read, 1 Tagging, 9 Write.

Control-plane actions by service
ServiceGrantedAccess levels and limitsGranted by
DBQMS9 of 132 List, 1 Read, 6 Write; 0 restricted, 0 conditionaldbqms:CreateFavoriteQuery, dbqms:CreateQueryHistory, dbqms:DeleteFavoriteQueries, dbqms:DeleteQueryHistory, dbqms:DescribeFavoriteQueries, dbqms:DescribeQueryHistory, dbqms:GetQueryString, dbqms:UpdateFavoriteQuery, dbqms:UpdateQueryHistory
Secrets Manager9 of 271 List, 1 Permissions management, 3 Read, 1 Tagging, 3 Write; 6 restricted, 0 conditionalsecretsmanager:CreateSecret, secretsmanager:DeleteSecret, secretsmanager:DescribeSecret, secretsmanager:GetRandomPassword, secretsmanager:GetSecretValue, secretsmanager:ListSecrets, secretsmanager:PutResourcePolicy, secretsmanager:PutSecretValue, secretsmanager:TagResource
Resource Group Tagging1 of 91 Read; 0 restricted, 0 conditionaltag:GetResources
DBQMS: 9 actions
  • dbqms:CreateFavoriteQuery (Write)
  • dbqms:CreateQueryHistory (Write)
  • dbqms:DeleteFavoriteQueries (Write)
  • dbqms:DeleteQueryHistory (Write)
  • dbqms:DescribeFavoriteQueries (List)
  • dbqms:DescribeQueryHistory (List)
  • dbqms:GetQueryString (Read)
  • dbqms:UpdateFavoriteQuery (Write)
  • dbqms:UpdateQueryHistory (Write)
Secrets Manager: 9 actions
  • secretsmanager:CreateSecret (Write)
  • secretsmanager:DeleteSecret (Write)
  • secretsmanager:DescribeSecret (Read)
  • secretsmanager:GetRandomPassword (Read)
  • secretsmanager:GetSecretValue (Read)
  • secretsmanager:ListSecrets (List)
  • secretsmanager:PutResourcePolicy (Permissions management)
  • secretsmanager:PutSecretValue (Write)
  • secretsmanager:TagResource (Tagging)
Resource Group Tagging: 1 actions
  • tag:GetResources (Read)

Data-plane actions (6)

By access level: 6 Write.

Data-plane actions by service
ServiceGrantedAccess levels and limitsGranted by
RDS Data APIAll 6 actions (see the RDS Data API page)6 Write; 0 restricted, 0 conditionalrds-data:BatchExecuteStatement, rds-data:BeginTransaction, rds-data:CommitTransaction, rds-data:ExecuteSql, rds-data:ExecuteStatement, rds-data:RollbackTransaction

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 at least 80% of the write and permissions-management actions of: rds-data (6 of 6).
  • Grants data-plane write actions on a data store on all resources without conditions.

Guidance

Practical scope

One statement allows secretsmanager:GetSecretValue, PutResourcePolicy, PutSecretValue, DeleteSecret, DescribeSecret and TagResource on secrets whose names begin with rds-db-credentials/. A second statement allows, on Resource "*", nine dbqms query actions (favorite queries and query history), six rds-data actions (ExecuteSql, ExecuteStatement, BatchExecuteStatement, BeginTransaction, CommitTransaction, RollbackTransaction), secretsmanager:CreateSecret, ListSecrets and GetRandomPassword, and tag:GetResources.

Use cases

  • Run SQL statements on Aurora Serverless clusters with the Data API and the query editor.

Best practices

  • AWS managed policies don't grant least privilege permissions. The IAM User Guide suggests using IAM Access Analyzer to see which permissions principals actually use, then writing a custom policy or generating one with only the required permissions.

Security considerations

  • The rds-data actions run SQL on Aurora Serverless databases and apply to all resources.
  • secretsmanager:GetSecretValue, PutSecretValue, PutResourcePolicy and DeleteSecret are allowed on all secrets under rds-db-credentials/, so holders can read, replace and delete database credentials.
  • You cannot change the permissions in an AWS managed policy. If AWS updates the policy, the update affects every user, group and role it is attached to.

Assignment guidance

You can attach this policy to your users, groups and roles. The reference page also links to guidance on creating a permission set using AWS managed policies in IAM Identity Center. The Amazon RDS User Guide says you can attach it to your IAM identities. It fits where Data API and query editor access to Aurora Serverless is intended. Where a narrower scope is needed, AWS recommends customer managed policies specific to your use cases.

Same service

Same domain

Frequently asked questions

When should I attach AmazonRDSDataFullAccess?
The Amazon RDS User Guide says you can attach it to your IAM identities to allow full access to the Data API and the query editor on Aurora Serverless clusters in the account. Attach it where that scope is intended.
What does AmazonRDSDataFullAccess grant?
It allows rds-data SQL actions and dbqms query management actions on all resources, secretsmanager read, write and delete actions on rds-db-credentials/ secrets, and secretsmanager:CreateSecret, ListSecrets and GetRandomPassword.
What are the security risks of AmazonRDSDataFullAccess?
It lets holders run SQL against Aurora Serverless databases and read, replace or delete the stored database credentials under rds-db-credentials/. AWS managed policies do not grant least privilege permissions, and an AWS update to the policy affects every identity it is attached to.

Policy JSON

Download policy.json

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "SecretsManagerDbCredentialsAccess",
      "Effect": "Allow",
      "Action": [
        "secretsmanager:GetSecretValue",
        "secretsmanager:PutResourcePolicy",
        "secretsmanager:PutSecretValue",
        "secretsmanager:DeleteSecret",
        "secretsmanager:DescribeSecret",
        "secretsmanager:TagResource"
      ],
      "Resource": "arn:aws:secretsmanager:*:*:secret:rds-db-credentials/*"
    },
    {
      "Sid": "RDSDataServiceAccess",
      "Effect": "Allow",
      "Action": [
        "dbqms:CreateFavoriteQuery",
        "dbqms:DescribeFavoriteQueries",
        "dbqms:UpdateFavoriteQuery",
        "dbqms:DeleteFavoriteQueries",
        "dbqms:GetQueryString",
        "dbqms:CreateQueryHistory",
        "dbqms:DescribeQueryHistory",
        "dbqms:UpdateQueryHistory",
        "dbqms:DeleteQueryHistory",
        "rds-data:ExecuteSql",
        "rds-data:ExecuteStatement",
        "rds-data:BatchExecuteStatement",
        "rds-data:BeginTransaction",
        "rds-data:CommitTransaction",
        "rds-data:RollbackTransaction",
        "secretsmanager:CreateSecret",
        "secretsmanager:ListSecrets",
        "secretsmanager:GetRandomPassword",
        "tag:GetResources"
      ],
      "Resource": "*"
    }
  ]
}

Version history

Current version v3, edited by AWS on 2019-11-20. 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/AmazonRDSDataFullAccess
aws iam attach-user-policy --user-name USER_NAME --policy-arn arn:aws:iam::aws:policy/AmazonRDSDataFullAccess
aws iam attach-group-policy --group-name GROUP_NAME --policy-arn arn:aws:iam::aws:policy/AmazonRDSDataFullAccess

CloudFormation

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

Terraform

resource "aws_iam_role_policy_attachment" "amazonrdsdatafullaccess" {
  role       = aws_iam_role.example.name
  policy_arn = "arn:aws:iam::aws:policy/AmazonRDSDataFullAccess"
}

CDK (TypeScript)

role.addManagedPolicy(
  iam.ManagedPolicy.fromAwsManagedPolicyName("AmazonRDSDataFullAccess"),
);

Sources