- Newest
- Most votes
- Most comments
Hey, this is a common one when setting up a Glue crawler for Redshift. Even if you’ve attached all the right policies, that "Crawler cannot be started" error usually means either a missing secretsmanager:ListSecrets permission or a misconfiguration in the iam:PassRole setup.
Let’s walk through what to check and fix:
-
Make sure your role can actually access the secret Your inline policy covers specific secret actions, but for Glue crawlers, you also need this permission to list secrets globally: { "Effect": "Allow", "Action": "secretsmanager:ListSecrets", "Resource": "*" } Without ListSecrets, the crawler fails during setup because it can't look up the secret ID from Glue’s metadata reference.
-
Double-check the iam:PassRole permission Make sure: The IAM role running the crawler has iam:PassRole for the Glue role (not just itself) The Resource should match the full ARN of the role passed to the crawler:
"iam:PassRole", "Resource": "arn:aws:iam::<account>:role/AWSGlueServiceRole-RedshiftCrawlerAccess" And confirm that:
This exact role ARN is used in the crawler setup The role trusts the Glue service (glue.amazonaws.com)
- Check the trust relationship In the Glue role (AWSGlueServiceRole-RedshiftCrawlerAccess), verify the trust policy includes:
{ "Effect": "Allow", "Principal": { "Service": "glue.amazonaws.com" }, "Action": "sts:AssumeRole" } If this is missing, the crawler won’t be able to assume the role even if it’s attached.
Try running the crawler again after updating the above. If it still fails, check CloudTrail for failed PassRole or GetSecretValue actions, it’ll tell you which exact permission is missing.
answered a year ago
It appears that your Glue Crawler is encountering permission issues despite the policies you've attached to the IAM role. Here are a few things to check and consider:
-
Ensure that the IAM role you've created is actually associated with the Glue Crawler. Sometimes, the error can occur if the correct role isn't selected for the crawler.
-
The inline policy you've provided looks good for Secrets Manager access, but make sure the ARNs are correct for your specific resources.
-
For Redshift access, instead of using the broad AmazonRedshiftFullAccess policy, consider creating a more specific policy that grants only the necessary permissions for your use case. This should include permissions to describe clusters and get cluster credentials.
-
Ensure that your Redshift cluster's security group allows incoming traffic from AWS Glue.
-
Check if your Redshift cluster requires SSL connections. If so, make sure your Glue connection is configured to use SSL.
-
Verify that the secret in Secrets Manager contains the correct credentials for your Redshift cluster.
-
Make sure the AWSGlueServiceRole policy is the AWS managed policy and not a custom one.
-
Consider adding explicit permissions for Glue operations in your role, such as "glue:GetConnection" and "glue:GetSecurityConfiguration".
-
Check CloudTrail logs for more detailed information about which specific permissions might be missing.
If the issue persists after verifying these points, you may need to temporarily enable more verbose logging for the Glue service to pinpoint the exact permission or configuration causing the problem.
Sources
AWS managed policy: AmazonDataZoneRedshiftGlueProvisioningPolicy - Amazon DataZone
Unload data from an Amazon Redshift cluster across accounts to Amazon S3 - AWS Prescriptive Guidance
answered a year ago

Thank you very much for your response!
When you talk about the PassRole permission I don't know if I understand you well. Do you mean that I have to add the PassRole permission to the role that starts the crawler so that role can pass the role AWSGlueServiceRole-RedshiftCrawlerAccess to the crawler?
If that is the case, my role has the AwsGlueConsoleFullAccess so it is already giving permission to pass roles named AWSGlueServiceRole* to glue.
Also, I have checked and the role trusts the Glue service, and after adding the permissions for the action secretsmanager:ListSecrets that I didn't have to the role AWSGlueServiceRole-RedshiftCrawlerAccess I ran again the crawler and got the same result.
Can I be missing something else?
Thank you for answering!