AmazonRedshiftDataFullAccess
Summary
Provides full access to the Amazon Redshift Data API and grants scoped access to other required services. The Amazon Redshift Management Guide says it grants full access to the Data API operations and resources for an AWS account.
Permissions imported from the AWS Managed Policy Reference Guide; other sections reviewed against the listed AWS sources.
Identity
- ARN
arn:aws:iam::aws:policy/AmazonRedshiftDataFullAccess- Default version
- v5
- Created
- Last edited
- Services
- iam, redshift, redshift-data, redshift-serverless, secretsmanager
Control-plane actions (15)
By access level: 2 List, 6 Read, 7 Write.
| Service | Granted | Access levels and limits | Granted by |
|---|---|---|---|
| IAM | 1 of 190 | 1 Write; 1 restricted, 1 conditional | iam:CreateServiceLinkedRole |
| Redshift | 2 of 167 | 2 Write; 2 restricted, 0 conditional | redshift:GetClusterCredentials, redshift:GetClusterCredentialsWithIAM |
| Redshift Data API | 10 of 12 | 2 List, 5 Read, 3 Write; 0 restricted, 0 conditional | redshift-data:BatchExecuteStatement, redshift-data:CancelStatement, redshift-data:DescribeStatement, redshift-data:DescribeTable, redshift-data:ExecuteStatement, redshift-data:GetStatementResult, redshift-data:ListDatabases, redshift-data:ListSchemas, redshift-data:ListStatements, redshift-data:ListTables |
| Redshift Serverless | 1 of 69 | 1 Write; 1 restricted, 1 conditional | redshift-serverless:GetCredentials |
| Secrets Manager | 1 of 27 | 1 Read; 1 restricted, 1 conditional | secretsmanager:GetSecretValue |
IAM: 1 actions
- iam:CreateServiceLinkedRole (Write)
Redshift: 2 actions
- redshift:GetClusterCredentials (Write)
- redshift:GetClusterCredentialsWithIAM (Write)
Redshift Data API: 10 actions
- redshift-data:BatchExecuteStatement (Write)
- redshift-data:CancelStatement (Write)
- redshift-data:DescribeStatement (Read)
- redshift-data:DescribeTable (Read)
- redshift-data:ExecuteStatement (Write)
- redshift-data:GetStatementResult (Read)
- redshift-data:ListDatabases (Read)
- redshift-data:ListSchemas (Read)
- redshift-data:ListStatements (List)
- redshift-data:ListTables (List)
Redshift Serverless: 1 actions
- redshift-serverless:GetCredentials (Write)
Secrets Manager: 1 actions
- secretsmanager:GetSecretValue (Read)
Data-plane actions (0)
By access level: none.
This policy grants no actions in this plane.
Excluded and conditional actions
redshift:CreateClusterUser(deny-conditional, statement 5): 1 matching actions
Resource scope and attachment
Resource scope across granted actions: mixed.
Can be attached: Yes, to users, groups and roles.
Why this tier
- Grants 7 write, tagging or permissions-management actions, short of full control of any service.
Guidance
Practical scope
The first statement allows ten redshift-data actions on Resource "*": BatchExecuteStatement, ExecuteStatement, CancelStatement, ListStatements, GetStatementResult, DescribeStatement, ListDatabases, ListSchemas, ListTables and DescribeTable. secretsmanager:GetSecretValue is allowed on secrets only when the secret has the tag key RedshiftDataFullAccess. redshift:GetClusterCredentials is allowed on dbname resources and on dbuser resources named redshift_data_api_user. redshift:GetClusterCredentialsWithIAM is allowed on dbname resources. redshift-serverless:GetCredentials is allowed on workgroups carrying the RedshiftDataFullAccess tag key. redshift:CreateClusterUser is denied on dbuser redshift_data_api_user resources. iam:CreateServiceLinkedRole is allowed only for the AWSServiceRoleForRedshift role when the service name is redshift-data.amazonaws.com.
Use cases
- Run and manage Amazon Redshift Data API statements for the account.
- Run scheduled queries from the query editor. The Amazon Redshift Management Guide says to create an IAM role for the CloudWatch Events service and attach AmazonEventBridgeFullAccess and AmazonRedshiftDataFullAccess to it.
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 redshift-data actions, including ExecuteStatement and BatchExecuteStatement, apply to all resources.
- secretsmanager:GetSecretValue is limited to secrets tagged with RedshiftDataFullAccess, and redshift-serverless:GetCredentials to workgroups tagged the same way, so tag use controls what these grants reach.
- redshift:GetClusterCredentials and redshift:GetClusterCredentialsWithIAM are allowed on database resources. The Amazon Redshift Management Guide describes redshift:GetClusterCredentialsWithIAM as permission to get temporary credentials to access an Amazon Redshift database.
- 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 Redshift Management Guide also shows it attached to a role used for scheduled queries. It fits where Data API access is intended. Where a narrower scope is needed, AWS recommends customer managed policies specific to your use cases.
Related policies
Same service
- AmazonDataZoneEnvironmentRolePermissionsBoundary
- AmazonDataZoneProjectRolePermissionsBoundary
- AmazonDataZoneRedshiftManageAccessRolePolicy
- AmazonGrafanaRedshiftAccess
- AmazonMachineLearningRoleforRedshiftDataSourceV3
- AmazonRedshiftFullAccess
- AmazonRedshiftQueryEditor
- AmazonRedshiftReadOnlyAccess
Same domain
Frequently asked questions
- When should I attach AmazonRedshiftDataFullAccess?
- Attach it to users, groups or roles that need full access to the Amazon Redshift Data API. The Amazon Redshift Management Guide also says to attach it, with AmazonEventBridgeFullAccess, to the IAM role that runs scheduled queries.
- What does AmazonRedshiftDataFullAccess grant?
- It allows ten Data API actions on all resources, and scoped access to secrets, temporary database credentials, and the Redshift service-linked role. It denies redshift:CreateClusterUser for the redshift_data_api_user database user.
- What are the security risks of AmazonRedshiftDataFullAccess?
- The Data API actions apply to all resources, and the policy lets holders obtain database credentials and read tagged secrets. 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": "DataAPIPermissions",
"Effect": "Allow",
"Action": [
"redshift-data:BatchExecuteStatement",
"redshift-data:ExecuteStatement",
"redshift-data:CancelStatement",
"redshift-data:ListStatements",
"redshift-data:GetStatementResult",
"redshift-data:DescribeStatement",
"redshift-data:ListDatabases",
"redshift-data:ListSchemas",
"redshift-data:ListTables",
"redshift-data:DescribeTable"
],
"Resource": "*"
},
{
"Sid": "SecretsManagerPermissions",
"Effect": "Allow",
"Action": [
"secretsmanager:GetSecretValue"
],
"Resource": "arn:aws:secretsmanager:*:*:secret:*",
"Condition": {
"StringLike": {
"secretsmanager:ResourceTag/RedshiftDataFullAccess": "*"
}
}
},
{
"Sid": "GetCredentialsForAPIUser",
"Effect": "Allow",
"Action": "redshift:GetClusterCredentials",
"Resource": [
"arn:aws:redshift:*:*:dbname:*/*",
"arn:aws:redshift:*:*:dbuser:*/redshift_data_api_user"
]
},
{
"Sid": "GetCredentialsWithFederatedIAMCredentials",
"Effect": "Allow",
"Action": "redshift:GetClusterCredentialsWithIAM",
"Resource": "arn:aws:redshift:*:*:dbname:*/*"
},
{
"Sid": "GetCredentialsForServerless",
"Effect": "Allow",
"Action": "redshift-serverless:GetCredentials",
"Resource": "arn:aws:redshift-serverless:*:*:workgroup/*",
"Condition": {
"StringLike": {
"aws:ResourceTag/RedshiftDataFullAccess": "*"
}
}
},
{
"Sid": "DenyCreateAPIUser",
"Effect": "Deny",
"Action": "redshift:CreateClusterUser",
"Resource": [
"arn:aws:redshift:*:*:dbuser:*/redshift_data_api_user"
]
},
{
"Sid": "ServiceLinkedRole",
"Effect": "Allow",
"Action": "iam:CreateServiceLinkedRole",
"Resource": "arn:aws:iam::*:role/aws-service-role/redshift-data.amazonaws.com/AWSServiceRoleForRedshift",
"Condition": {
"StringLike": {
"iam:AWSServiceName": "redshift-data.amazonaws.com"
}
}
}
]
}
Version history
Current version v5, edited by AWS on 2023-04-07. 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/AmazonRedshiftDataFullAccess
aws iam attach-user-policy --user-name USER_NAME --policy-arn arn:aws:iam::aws:policy/AmazonRedshiftDataFullAccess
aws iam attach-group-policy --group-name GROUP_NAME --policy-arn arn:aws:iam::aws:policy/AmazonRedshiftDataFullAccessCloudFormation
Resources:
ExampleRole:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument: {} # replace with your trust policy
ManagedPolicyArns:
- arn:aws:iam::aws:policy/AmazonRedshiftDataFullAccessTerraform
resource "aws_iam_role_policy_attachment" "amazonredshiftdatafullaccess" {
role = aws_iam_role.example.name
policy_arn = "arn:aws:iam::aws:policy/AmazonRedshiftDataFullAccess"
}CDK (TypeScript)
role.addManagedPolicy(
iam.ManagedPolicy.fromAwsManagedPolicyName("AmazonRedshiftDataFullAccess"),
);Sources
- AmazonRedshiftDataFullAccess (AWS Managed Policy Reference Guide) (retrieved ; supports summary, practicalScope, useCases, securityConsiderations, assignmentGuidance, faqs)
- Using identity-based policies (IAM policies) for Amazon Redshift (Amazon Redshift Management 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)