Skip to main content
IAM Policy Map

AmazonRedshiftReadOnlyAccess

ReaderAWS managedActiveReviewedShow on mapCompare

Summary

Provides read only access to Amazon Redshift via the AWS Management Console. The Amazon Redshift Management Guide says it grants read-only access to all Amazon Redshift 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/AmazonRedshiftReadOnlyAccess
Default version
v2
Created
Last edited
Services
cloudwatch, ec2, redshift, sns

Control-plane actions (136)

By access level: 51 List, 85 Read.

Control-plane actions by service
ServiceGrantedAccess levels and limitsGranted by
CloudWatch65 of 16024 List, 41 Read; 0 restricted, 0 conditionalcloudwatch:Describe*, cloudwatch:Get*, cloudwatch:List*
EC27 of 8347 List; 0 restricted, 0 conditionalec2:DescribeAccountAttributes, ec2:DescribeAddresses, ec2:DescribeAvailabilityZones, ec2:DescribeInternetGateways, ec2:DescribeSecurityGroups, ec2:DescribeSubnets, ec2:DescribeVpcs
Redshift48 of 16713 List, 35 Read; 0 restricted, 0 conditionalredshift:Describe*, redshift:ListRecommendations, redshift:ViewQueriesInConsole
SNS16 of 407 List, 9 Read; 0 restricted, 0 conditionalsns:Get*, sns:List*
CloudWatch: 65 actions
  • cloudwatch:DescribeAlarmHistory (Read)
  • cloudwatch:DescribeAlarms (Read)
  • cloudwatch:DescribeAlarmsForMetric (Read)
  • cloudwatch:DescribeAnomalyDetectors (Read)
  • cloudwatch:DescribeInsightRules (Read)
  • cloudwatch:GetAccessGrant (Read)
  • cloudwatch:GetAccessProfile (Read)
  • cloudwatch:GetAgentGraph (Read)
  • cloudwatch:GetAlarmMuteRule (Read)
  • cloudwatch:GetAlert (Read)
  • cloudwatch:GetContextGraph (Read)
  • cloudwatch:GetDashboard (Read)
  • cloudwatch:GetDataset (Read)
  • cloudwatch:GetDomain (Read)
  • cloudwatch:GetDomainAccessGrantForOrganization (Read)
  • cloudwatch:GetDomainForOrganization (Read)
  • cloudwatch:GetIngestionEndpoint (Read)
  • cloudwatch:GetInsightRuleReport (Read)
  • cloudwatch:GetIntegration (Read)
  • cloudwatch:GetIntelligenceConfiguration (Read)
  • cloudwatch:GetMetricDataQueryDefinition (Read)
  • cloudwatch:GetMetricStream (Read)
  • cloudwatch:GetOTelEnrichment (Read)
  • cloudwatch:GetOmniDashboard (Read)
  • cloudwatch:GetOmniThread (Read)
  • cloudwatch:GetPreferences (Read)
  • cloudwatch:GetProfileRecords (Read)
  • cloudwatch:GetRecords (Read)
  • cloudwatch:GetResourceMetricsConfiguration (Read)
  • cloudwatch:GetService (Read)
  • cloudwatch:GetServiceData (Read)
  • cloudwatch:GetServiceLevelObjective (Read)
  • cloudwatch:GetSpace (Read)
  • cloudwatch:GetSpaceCredentials (Read)
  • cloudwatch:GetSpaceCredentialsForOrganization (Read)
  • cloudwatch:GetSpaceDataAccess (Read)
  • cloudwatch:GetTelemetryQueryResults (Read)
  • cloudwatch:GetTopologyDiscoveryStatus (Read)
  • cloudwatch:GetTopologyMap (Read)
  • cloudwatch:GetView (Read)
  • cloudwatch:ListAccessGrants (List)
  • cloudwatch:ListAccessProfiles (List)
  • cloudwatch:ListAlarmMuteRules (List)
  • cloudwatch:ListAlertContributors (List)
  • cloudwatch:ListAlerts (List)
  • cloudwatch:ListDashboards (List)
  • cloudwatch:ListDomainAccessGrantsForOrganization (List)
  • cloudwatch:ListDomains (List)
  • cloudwatch:ListEntitiesForMetric (List)
  • cloudwatch:ListIngestionEndpoints (List)
  • cloudwatch:ListIntegrations (List)
  • cloudwatch:ListManagedInsightRules (Read)
  • cloudwatch:ListMetricDataQueryDefinitions (List)
  • cloudwatch:ListMetricStreams (List)
  • cloudwatch:ListOmniDashboards (List)
  • cloudwatch:ListOmniThreads (List)
  • cloudwatch:ListServiceLevelObjectives (List)
  • cloudwatch:ListServices (List)
  • cloudwatch:ListSpaceAccess (List)
  • cloudwatch:ListSpaces (List)
  • cloudwatch:ListSpacesForOrganization (List)
  • cloudwatch:ListTagsForResource (List)
  • cloudwatch:ListTelemetryFields (List)
  • cloudwatch:ListTelemetryQuerySessions (List)
  • cloudwatch:ListViews (List)
EC2: 7 actions
  • ec2:DescribeAccountAttributes (List)
  • ec2:DescribeAddresses (List)
  • ec2:DescribeAvailabilityZones (List)
  • ec2:DescribeInternetGateways (List)
  • ec2:DescribeSecurityGroups (List)
  • ec2:DescribeSubnets (List)
  • ec2:DescribeVpcs (List)
Redshift: 48 actions
  • redshift:DescribeAccountAttributes (Read)
  • redshift:DescribeAuthenticationProfiles (Read)
  • redshift:DescribeAutonomicsDenylist (Read)
  • redshift:DescribeClusterDbRevisions (List)
  • redshift:DescribeClusterParameterGroups (Read)
  • redshift:DescribeClusterParameters (Read)
  • redshift:DescribeClusterSecurityGroups (Read)
  • redshift:DescribeClusterSnapshots (Read)
  • redshift:DescribeClusterSubnetGroups (Read)
  • redshift:DescribeClusterTracks (List)
  • redshift:DescribeClusterVersions (Read)
  • redshift:DescribeClusters (List)
  • redshift:DescribeCustomDomainAssociations (List)
  • redshift:DescribeDataShares (Read)
  • redshift:DescribeDataSharesForConsumer (Read)
  • redshift:DescribeDataSharesForProducer (Read)
  • redshift:DescribeDefaultClusterParameters (Read)
  • redshift:DescribeEndpointAccess (Read)
  • redshift:DescribeEndpointAuthorization (List)
  • redshift:DescribeEventCategories (Read)
  • redshift:DescribeEventSubscriptions (Read)
  • redshift:DescribeEvents (List)
  • redshift:DescribeHsmClientCertificates (Read)
  • redshift:DescribeHsmConfigurations (Read)
  • redshift:DescribeInboundIntegrations (List)
  • redshift:DescribeIntegrations (List)
  • redshift:DescribeLoggingStatus (Read)
  • redshift:DescribeNodeConfigurationOptions (List)
  • redshift:DescribeOrderableClusterOptions (Read)
  • redshift:DescribePartners (Read)
  • redshift:DescribeQev2IdcApplications (List)
  • redshift:DescribeQuery (Read)
  • redshift:DescribeRedshiftIdcApplications (List)
  • redshift:DescribeReservedNodeExchangeStatus (Read)
  • redshift:DescribeReservedNodeOfferings (Read)
  • redshift:DescribeReservedNodes (Read)
  • redshift:DescribeResize (Read)
  • redshift:DescribeSavedQueries (Read)
  • redshift:DescribeScheduledActions (Read)
  • redshift:DescribeSnapshotCopyGrants (Read)
  • redshift:DescribeSnapshotSchedules (Read)
  • redshift:DescribeStorage (Read)
  • redshift:DescribeTable (Read)
  • redshift:DescribeTableRestoreStatus (Read)
  • redshift:DescribeTags (Read)
  • redshift:DescribeUsageLimits (Read)
  • redshift:ListRecommendations (List)
  • redshift:ViewQueriesInConsole (List)
SNS: 16 actions
  • sns:GetDataProtectionPolicy (Read)
  • sns:GetEndpointAttributes (Read)
  • sns:GetPlatformApplicationAttributes (Read)
  • sns:GetSMSAttributes (Read)
  • sns:GetSMSSandboxAccountStatus (Read)
  • sns:GetSubscriptionAttributes (Read)
  • sns:GetTopicAttributes (Read)
  • sns:ListEndpointsByPlatformApplication (List)
  • sns:ListOriginationNumbers (List)
  • sns:ListPhoneNumbersOptedOut (Read)
  • sns:ListPlatformApplications (List)
  • sns:ListSMSSandboxPhoneNumbers (List)
  • sns:ListSubscriptions (List)
  • sns:ListSubscriptionsByTopic (List)
  • sns:ListTagsForResource (Read)
  • sns:ListTopics (List)

Data-plane actions (4)

By access level: 1 List, 3 Read.

Data-plane actions by service
ServiceGrantedAccess levels and limitsGranted by
CloudWatch4 of 51 List, 3 Read; 0 restricted, 0 conditionalcloudwatch:Get*, cloudwatch:List*
CloudWatch: 4 actions
  • cloudwatch:GetMetricData (Read)
  • cloudwatch:GetMetricStatistics (Read)
  • cloudwatch:GetMetricWidgetImage (Read)
  • cloudwatch:ListMetrics (List)

Excluded and conditional actions

No patterns are excluded by NotAction or Deny statements.

Resource scope and attachment

Resource scope across granted actions: all-resources.

Can be attached: Yes, to users, groups and roles.

Why this tier

  • Grants only List and Read actions.

Guidance

Practical scope

One Allow statement on Resource "*": redshift:Describe*, redshift:ListRecommendations and redshift:ViewQueriesInConsole; ec2 describe actions for account attributes, addresses, availability zones, security groups, subnets, VPCs and internet gateways; sns:Get* and sns:List*; and cloudwatch:Describe*, List* and Get*.

Use cases

  • Give users read-only access to Amazon Redshift resources through the console, along with the EC2, SNS and CloudWatch reads the console needs.
  • Add to a more restrictive IAM policy so users can still use the Amazon Redshift console. The Management Guide says to attach it when your own policy is more restrictive than the console's minimum required permissions.
  • Query editor access. The Management Guide says to attach both AmazonRedshiftQueryEditor and AmazonRedshiftReadOnlyAccess to give a user access to the query editor on the console.

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 policy includes redshift:ViewQueriesInConsole, and cloudwatch and sns Get and List wildcards, on all resources.
  • 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 Management Guide says to attach it to the user to restore console function when their other policy is more restrictive than the minimum console permissions. The reference page also links to guidance on creating a permission set using AWS managed policies in IAM Identity Center.

Same service

Same domain

Frequently asked questions

When should I attach AmazonRedshiftReadOnlyAccess?
The Amazon Redshift Management Guide says to attach it to a user whose own IAM policy is more restrictive than the minimum console permissions, so the Amazon Redshift console still works, and to attach it together with AmazonRedshiftQueryEditor for query editor access. You don't need console permissions for users who call only the AWS CLI or the Amazon Redshift API.
What does AmazonRedshiftReadOnlyAccess grant?
It allows redshift:Describe*, redshift:ListRecommendations and redshift:ViewQueriesInConsole, EC2 describe actions for account attributes, addresses, availability zones, security groups, subnets, VPCs and internet gateways, sns:Get* and sns:List*, and cloudwatch:Describe*, List* and Get*, all on all resources.
What are the security risks of AmazonRedshiftReadOnlyAccess?
The policy has no write actions, but its read actions apply to all resources and include redshift:ViewQueriesInConsole. The IAM User Guide says AWS managed policies don't grant least privilege permissions, and AWS updates to the policy affect every identity it is attached to.

Policy JSON

Download policy.json

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AmazonRedshiftReadOnlyAccess",
      "Action": [
        "redshift:Describe*",
        "redshift:ListRecommendations",
        "redshift:ViewQueriesInConsole",
        "ec2:DescribeAccountAttributes",
        "ec2:DescribeAddresses",
        "ec2:DescribeAvailabilityZones",
        "ec2:DescribeSecurityGroups",
        "ec2:DescribeSubnets",
        "ec2:DescribeVpcs",
        "ec2:DescribeInternetGateways",
        "sns:Get*",
        "sns:List*",
        "cloudwatch:Describe*",
        "cloudwatch:List*",
        "cloudwatch:Get*"
      ],
      "Effect": "Allow",
      "Resource": "*"
    }
  ]
}

Version history

Current version v2, edited by AWS on 2024-02-08. 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/AmazonRedshiftReadOnlyAccess
aws iam attach-user-policy --user-name USER_NAME --policy-arn arn:aws:iam::aws:policy/AmazonRedshiftReadOnlyAccess
aws iam attach-group-policy --group-name GROUP_NAME --policy-arn arn:aws:iam::aws:policy/AmazonRedshiftReadOnlyAccess

CloudFormation

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

Terraform

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

CDK (TypeScript)

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

Sources