Troubleshooting identity and access issues for Amazon IoT Greengrass - Amazon IoT Greengrass
Services or capabilities described in Amazon Web Services documentation might vary by Region. To see the differences applicable to the China Regions, see Getting Started with Amazon Web Services in China.

Amazon IoT Greengrass Version 1 no longer receives feature updates, and will receive only security patches and bug fixes until June 30, 2023. For more information, see the Amazon IoT Greengrass V1 maintenance policy. We strongly recommend that you migrate to Amazon IoT Greengrass Version 2, which adds significant new features and support for additional platforms.

Troubleshooting identity and access issues for Amazon IoT Greengrass

Use the following information to help you diagnose and fix common issues that you might encounter when working with Amazon IoT Greengrass and IAM.

For general troubleshooting help, see Troubleshooting Amazon IoT Greengrass.

I'm not authorized to perform an action in Amazon IoT Greengrass

If you receive an error that states you're not authorized to perform an action, you must contact your administrator for assistance. Your administrator is the person who provided you with your user name and password.

The following example error occurs when the mateojackson IAM user tries to view details about a core definition version, but does not have greengrass:GetCoreDefinitionVersion permissions.

User: arn:aws-cn:iam::123456789012:user/mateojackson is not authorized to perform: greengrass:GetCoreDefinitionVersion on resource: resource: arn:aws-cn:greengrass:us-west-2:123456789012:/greengrass/definition/cores/78cd17f3-bc68-ee18-47bd-5bda5EXAMPLE/versions/368e9ffa-4939-6c75-859c-0bd4cEXAMPLE

In this case, Mateo asks his administrator to update his policies to allow him to access the arn:aws-cn:greengrass:us-west-2:123456789012:/greengrass/definition/cores/78cd17f3-bc68-ee18-47bd-5bda5EXAMPLE/versions/368e9ffa-4939-6c75-859c-0bd4cEXAMPLE resource using the greengrass:GetCoreDefinitionVersion action.

Error: Greengrass is not authorized to assume the Service Role associated with this account, or the error: Failed: TES service role is not associated with this account.

Solution: You might see this error when the deployment fails. Check that a Greengrass service role is associated with your Amazon Web Services account in the current Amazon Web Services Region. For more information, see Managing the Greengrass service role (CLI) or Managing the Greengrass service role (console).

Error: Permission denied when attempting to use role arn:aws-cn:iam::<account-id>:role/<role-name> to access s3 url https://<region>-greengrass-updates.s3.<region>.amazonaws.com/core/<architecture>/greengrass-core-<distribution-version>.tar.gz.

Solution: You might see this error when an over-the-air (OTA) update fails. In the signer role policy, add the target Amazon Web Services Region as a Resource. This signer role is used to presign the S3 URL for the Amazon IoT Greengrass software update. For more information, see S3 URL signer role.

Device shadow does not sync with the cloud.

Solution: Make sure that Amazon IoT Greengrass has permissions for iot:UpdateThingShadow and iot:GetThingShadow actions in the Greengrass service role. If the service role uses the AWSGreengrassResourceAccessRolePolicy managed policy, these permissions are included by default.

See Troubleshooting shadow synchronization timeout issues.

The following are general IAM issues that you might encounter when working with Amazon IoT Greengrass.

I'm not authorized to perform iam:PassRole

If you receive an error that you're not authorized to perform the iam:PassRole action, then you must contact your administrator for assistance. Your administrator is the person that provided you with your user name and password. Ask that person to update your policies to allow you to pass a role to Amazon IoT Greengrass.

Some Amazon Web Services allow you to pass an existing role to that service, instead of creating a new service role or service-linked role. To do this, you must have permissions to pass the role to the service.

The following example error occurs when an IAM user named marymajor tries to use the console to perform an action in Amazon IoT Greengrass. However, the action requires the service to have permissions granted by a service role. Mary does not have permissions to pass the role to the service.

User: arn:aws-cn:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole

In this case, Mary asks her administrator to update her policies to allow her to perform the iam:PassRole action.

I'm an administrator and want to allow others to access Amazon IoT Greengrass

To allow others to access Amazon IoT Greengrass, you must create an IAM entity (user or role) for the person or application that needs access. They will use the credentials for that entity to access Amazon. You must then attach a policy to the entity that grants them the correct permissions in Amazon IoT Greengrass.

To get started right away, see Creating your first IAM delegated user and group in the IAM User Guide.

I want to allow people outside of my Amazon Web Services account to access my Amazon IoT Greengrass resources

You can create an IAM role that users in other accounts or people outside of your organization can use to access your Amazon resources. You can specify the who is trusted to assume the role. For more information, see Providing access to an IAM user in another Amazon Web Services account that you own and Providing access to Amazon Web Services accounts owned by third parties in the IAM User Guide.

Amazon IoT Greengrass doesn't support cross-account access based on resource-based policies or access control lists (ACLs).