AmazonRDSDataFullAccess
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.
| Service | Granted | Access levels and limits | Granted by |
|---|---|---|---|
| DBQMS | 9 of 13 | 2 List, 1 Read, 6 Write; 0 restricted, 0 conditional | dbqms:CreateFavoriteQuery, dbqms:CreateQueryHistory, dbqms:DeleteFavoriteQueries, dbqms:DeleteQueryHistory, dbqms:DescribeFavoriteQueries, dbqms:DescribeQueryHistory, dbqms:GetQueryString, dbqms:UpdateFavoriteQuery, dbqms:UpdateQueryHistory |
| Secrets Manager | 9 of 27 | 1 List, 1 Permissions management, 3 Read, 1 Tagging, 3 Write; 6 restricted, 0 conditional | secretsmanager:CreateSecret, secretsmanager:DeleteSecret, secretsmanager:DescribeSecret, secretsmanager:GetRandomPassword, secretsmanager:GetSecretValue, secretsmanager:ListSecrets, secretsmanager:PutResourcePolicy, secretsmanager:PutSecretValue, secretsmanager:TagResource |
| Resource Group Tagging | 1 of 9 | 1 Read; 0 restricted, 0 conditional | tag: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.
| Service | Granted | Access levels and limits | Granted by |
|---|---|---|---|
| RDS Data API | All 6 actions (see the RDS Data API page) | 6 Write; 0 restricted, 0 conditional | rds-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.
Related policies
Same service
- AlexaForBusinessDeviceSetup
- AlexaForBusinessNetworkProfileServicePolicy
- AmazonCognitoIdpServiceRolePolicy
- AmazonDataZonePreviewConsoleFullAccess
- AmazonDocDBElasticFullAccess
- AmazonECSInfrastructureRolePolicyForServiceConnectTransportLayerSecurity
- AmazonEKSLocalOutpostServiceRolePolicy
- AmazonEventBridgeApiDestinationsServiceRolePolicy
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
{
"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/AmazonRDSDataFullAccessCloudFormation
Resources:
ExampleRole:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument: {} # replace with your trust policy
ManagedPolicyArns:
- arn:aws:iam::aws:policy/AmazonRDSDataFullAccessTerraform
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
- AmazonRDSDataFullAccess (AWS Managed Policy Reference Guide) (retrieved ; supports summary, practicalScope, useCases, securityConsiderations, assignmentGuidance, faqs)
- Identity and access management for Amazon RDS: AWS managed policies (Amazon RDS User Guide) (retrieved ; supports summary, useCases, securityConsiderations, assignmentGuidance, faqs)
- AWS managed policies for job functions (IAM User Guide) (retrieved ; supports bestPractices, faqs)
- Managed policies and inline policies (IAM User Guide) (retrieved ; supports securityConsiderations, faqs)