Actions, resources, and condition keys for Amazon IoT Greengrass
Amazon IoT Greengrass (service prefix: greengrass) provides the following
service-specific operations, resources, actions, and condition keys for use in IAM permission
policies.
References:
-
Learn how to configure this service.
-
View a list of the API operations available for this service.
-
Learn how to secure this service and its resources by using IAM permission policies.
-
View the programmatic service authorization reference
for this service.
Topics
API operations defined by Amazon IoT Greengrass
The following table maps API operations to the IAM actions they authorize. Only condition keys that have static values for the given API and action are listed; for the full set of condition keys supported by each action, see the Actions table.
| Operation | IAM action | Condition key | Possible value(s) | Access level |
|---|---|---|---|---|
|
AssociateRoleToGroup |
Write |
|||
iam:PassedToService |
greengrass.amazonaws.com |
Write |
||
|
AssociateServiceRoleToAccount |
Permissions management, Write |
|||
iam:PassedToService |
greengrass.amazonaws.com |
Write |
||
|
CreateConnectorDefinition |
Write |
|||
Tagging, Write |
||||
|
CreateConnectorDefinitionVersion |
Write |
|||
|
CreateCoreDefinition |
Write |
|||
Tagging, Write |
||||
|
CreateCoreDefinitionVersion |
Write |
|||
|
CreateDeployment |
Write |
|||
Tagging, Write |
||||
|
CreateDeviceDefinition |
Write |
|||
Tagging, Write |
||||
|
CreateDeviceDefinitionVersion |
Write |
|||
|
CreateFunctionDefinition |
Write |
|||
Tagging, Write |
||||
|
CreateFunctionDefinitionVersion |
Write |
|||
|
CreateGroup |
Write |
|||
Tagging, Write |
||||
|
CreateGroupCertificateAuthority |
Write |
|||
|
CreateGroupVersion |
Write |
|||
|
CreateLoggerDefinition |
Write |
|||
Tagging, Write |
||||
|
CreateLoggerDefinitionVersion |
Write |
|||
|
CreateResourceDefinition |
Write |
|||
Tagging, Write |
||||
|
CreateResourceDefinitionVersion |
Write |
|||
|
CreateSoftwareUpdateJob |
Write |
|||
iam:PassedToService |
greengrass.amazonaws.com |
Write |
||
|
CreateSubscriptionDefinition |
Write |
|||
Tagging, Write |
||||
|
CreateSubscriptionDefinitionVersion |
Write |
|||
|
DeleteConnectorDefinition |
Write |
|||
|
DeleteCoreDefinition |
Write |
|||
|
DeleteDeviceDefinition |
Write |
|||
|
DeleteFunctionDefinition |
Write |
|||
|
DeleteGroup |
Write |
|||
|
DeleteLoggerDefinition |
Write |
|||
|
DeleteResourceDefinition |
Write |
|||
|
DeleteSubscriptionDefinition |
Write |
|||
|
DisassociateRoleFromGroup |
Write |
|||
|
DisassociateServiceRoleFromAccount |
Write |
|||
|
GetAssociatedRole |
Read |
|||
|
GetBulkDeploymentStatus |
Read |
|||
|
GetConnectivityInfo |
Read |
|||
|
GetConnectorDefinition |
Read |
|||
|
GetConnectorDefinitionVersion |
Read |
|||
|
GetCoreDefinition |
Read |
|||
|
GetCoreDefinitionVersion |
Read |
|||
|
GetDeploymentStatus |
Read |
|||
|
GetDeviceDefinition |
Read |
|||
|
GetDeviceDefinitionVersion |
Read |
|||
|
GetFunctionDefinition |
Read |
|||
|
GetFunctionDefinitionVersion |
Read |
|||
|
GetGroup |
Read |
|||
|
GetGroupCertificateAuthority |
Read |
|||
|
GetGroupCertificateConfiguration |
Read |
|||
|
GetGroupVersion |
Read |
|||
|
GetLoggerDefinition |
Read |
|||
|
GetLoggerDefinitionVersion |
Read |
|||
|
GetResourceDefinition |
Read |
|||
|
GetResourceDefinitionVersion |
Read |
|||
|
GetServiceRoleForAccount |
Read |
|||
|
GetSubscriptionDefinition |
Read |
|||
|
GetSubscriptionDefinitionVersion |
Read |
|||
|
GetThingRuntimeConfiguration |
Read |
|||
|
ListBulkDeploymentDetailedReports |
Read |
|||
|
ListBulkDeployments |
List |
|||
|
ListConnectorDefinitionVersions |
List |
|||
|
ListConnectorDefinitions |
List |
|||
|
ListCoreDefinitionVersions |
List |
|||
|
ListCoreDefinitions |
List |
|||
|
ListDeployments |
List |
|||
|
ListDeviceDefinitionVersions |
List |
|||
|
ListDeviceDefinitions |
List |
|||
|
ListFunctionDefinitionVersions |
List |
|||
|
ListFunctionDefinitions |
List |
|||
|
ListGroupCertificateAuthorities |
List |
|||
|
ListGroupVersions |
List |
|||
|
ListGroups |
List |
|||
|
ListLoggerDefinitionVersions |
List |
|||
|
ListLoggerDefinitions |
List |
|||
|
ListResourceDefinitionVersions |
List |
|||
|
ListResourceDefinitions |
List |
|||
|
ListSubscriptionDefinitionVersions |
List |
|||
|
ListSubscriptionDefinitions |
List |
|||
|
ListTagsForResource |
Read |
|||
|
ResetDeployments |
Write |
|||
|
StartBulkDeployment |
Write |
|||
Tagging, Write |
||||
iam:PassedToService |
greengrass.amazonaws.com |
Write |
||
|
StopBulkDeployment |
Write |
|||
|
TagResource |
Tagging, Write |
|||
|
UntagResource |
Tagging, Write |
|||
|
UpdateConnectivityInfo |
Write |
|||
|
UpdateConnectorDefinition |
Write |
|||
|
UpdateCoreDefinition |
Write |
|||
|
UpdateDeviceDefinition |
Write |
|||
|
UpdateFunctionDefinition |
Write |
|||
|
UpdateGroup |
Write |
|||
|
UpdateGroupCertificateConfiguration |
Write |
|||
|
UpdateLoggerDefinition |
Write |
|||
|
UpdateResourceDefinition |
Write |
|||
|
UpdateSubscriptionDefinition |
Write |
|||
|
UpdateThingRuntimeConfiguration |
Write |
Actions defined by Amazon IoT Greengrass
You can specify the following actions in the Action element of an IAM
policy statement. Use policies to grant permissions to perform an operation in Amazon. When
you use an action in a policy, you usually allow or deny access to the API operation or CLI
command with the same name. However, in some cases, a single action controls access to more
than one operation. Alternatively, some operations require several different actions.
| Actions | Description | Resource types (*required) | Condition keys | Access level |
|---|---|---|---|---|
Grants permission to associate a role with a group. The role's permissions must allow Greengrass core Lambda functions and connectors to perform actions in other Amazon services |
Write |
|||
Grants permission to associate a role with your account. Amazon IoT Greengrass uses this role to access your Lambda functions and Amazon IoT resources |
Permissions management, Write |
|||
Grants permission to create a connector definition |
Write |
|||
Grants permission to create a version of an existing connector definition |
Write |
|||
Grants permission to create a core definition |
Write |
|||
Grants permission to create a version of an existing core definition. Greengrass groups must each contain exactly one Greengrass core |
Write |
|||
Grants permission to create a deployment |
Write |
|||
Grants permission to create a device definition |
Write |
|||
Grants permission to create a version of an existing device definition |
Write |
|||
Grants permission to create a Lambda function definition to be used in a group that contains a list of Lambda functions and their configurations |
Write |
|||
Grants permission to create a version of an existing Lambda function definition |
Write |
|||
Grants permission to create a group |
Write |
|||
Grants permission to create a CA for the group, or rotate the existing CA |
Write |
|||
Grants permission to create a version of a group that has already been defined |
Write |
|||
Grants permission to create a logger definition |
Write |
|||
Grants permission to create a version of an existing logger definition |
Write |
|||
Grants permission to create a resource definition that contains a list of resources to be used in a group |
Write |
|||
Grants permission to create a version of an existing resource definition |
Write |
|||
Grants permission to create an Amazon IoT job that will trigger your Greengrass cores to update the software they are running |
Write |
|||
Grants permission to create a subscription definition |
Write |
|||
Grants permission to create a version of an existing subscription definition |
Write |
|||
Grants permission to delete a connector definition |
Write |
|||
Grants permission to delete a core definition. Deleting a definition that is currently in use in a deployment affects future deployments |
Write |
|||
Grants permission to delete a device definition. Deleting a definition that is currently in use in a deployment affects future deployments |
Write |
|||
Grants permission to delete a Lambda function definition. Deleting a definition that is currently in use in a deployment affects future deployments |
Write |
|||
Grants permission to delete a group that is not currently in use in a deployment |
Write |
|||
Grants permission to delete a logger definition. Deleting a definition that is currently in use in a deployment affects future deployments |
Write |
|||
Grants permission to delete a resource definition |
Write |
|||
Grants permission to delete a subscription definition. Deleting a definition that is currently in use in a deployment affects future deployments |
Write |
|||
Grants permission to disassociate the role from a group |
Write |
|||
Grants permission to disassociate the service role from an account. Without a service role, deployments will not work |
Write |
|||
Grants permission to retrieve information required to connect to a Greengrass core |
Read |
|||
Grants permission to retrieve the role associated with a group |
Read |
|||
Grants permission to return the status of a bulk deployment |
Read |
|||
Grants permission to retrieve the connectivity information for a core |
Read |
|||
Grants permission to retrieve information about a connector definition |
Read |
|||
Grants permission to retrieve information about a connector definition version |
Read |
|||
Grants permission to retrieve information about a core definition |
Read |
|||
Grants permission to retrieve information about a core definition version |
Read |
|||
Grants permission to return the status of a deployment |
Read |
|||
Grants permission to retrieve information about a device definition |
Read |
|||
Grants permission to retrieve information about a device definition version |
Read |
|||
Grants permission to retrieve information about a Lambda function definition, such as its creation time and latest version |
Read |
|||
Grants permission to retrieve information about a Lambda function definition version, such as which Lambda functions are included in the version and their configurations |
Read |
|||
Grants permission to retrieve information about a group |
Read |
|||
Grants permission to return the public key of the CA associated with a group |
Read |
|||
Grants permission to retrieve the current configuration for the CA used by a group |
Read |
|||
Grants permission to retrieve information about a group version |
Read |
|||
Grants permission to retrieve information about a logger definition |
Read |
|||
Grants permission to retrieve information about a logger definition version |
Read |
|||
Grants permission to retrieve information about a resource definition, such as its creation time and latest version |
Read |
|||
Grants permission to retrieve information about a resource definition version, such as which resources are included in the version |
Read |
|||
Grants permission to retrieve the service role that is attached to an account |
Read |
|||
Grants permission to retrieve information about a subscription definition |
Read |
|||
Grants permission to retrieve information about a subscription definition version |
Read |
|||
Grants permission to retrieve runtime configuration of a thing |
Read |
|||
Grants permission to retrieve a paginated list of the deployments that have been started in a bulk deployment operation and their current deployment status |
Read |
|||
Grants permission to retrieve a list of bulk deployments |
List |
|||
Grants permission to list the versions of a connector definition |
List |
|||
Grants permission to retrieve a list of connector definitions |
List |
|||
Grants permission to list the versions of a core definition |
List |
|||
Grants permission to retrieve a list of core definitions |
List |
|||
Grants permission to retrieve a list of all deployments for a group |
List |
|||
Grants permission to list the versions of a device definition |
List |
|||
Grants permission to retrieve a list of device definitions |
List |
|||
Grants permission to list the versions of a Lambda function definition |
List |
|||
Grants permission to retrieve a list of Lambda function definitions |
List |
|||
Grants permission to retrieve a list of current CAs for a group |
List |
|||
Grants permission to list the versions of a group |
List |
|||
Grants permission to retrieve a list of groups |
List |
|||
Grants permission to list the versions of a logger definition |
List |
|||
Grants permission to retrieve a list of logger definitions |
List |
|||
Grants permission to list the versions of a resource definition |
List |
|||
Grants permission to retrieve a list of resource definitions |
List |
|||
Grants permission to list the versions of a subscription definition |
List |
|||
Grants permission to retrieve a list of subscription definitions |
List |
|||
Grants permission to list the tags for a resource |
Read |
|||
Grants permission to reset a group's deployments |
Write |
|||
Grants permission to deploy multiple groups in one operation |
Write |
|||
Grants permission to stop the execution of a bulk deployment |
Write |
|||
Grants permission to add tags to a resource |
Tagging, Write |
|||
Grants permission to remove tags from a resource |
Tagging, Write |
|||
Grants permission to update the connectivity information for a Greengrass core. Any devices that belong to the group that has this core will receive this information in order to find the location of the core and connect to it |
Write |
|||
Grants permission to update a connector definition |
Write |
|||
Grants permission to update a core definition |
Write |
|||
Grants permission to update a device definition |
Write |
|||
Grants permission to update a Lambda function definition |
Write |
|||
Grants permission to update a group |
Write |
|||
Grants permission to update the certificate expiry time for a group |
Write |
|||
Grants permission to update a logger definition |
Write |
|||
Grants permission to update a resource definition |
Write |
|||
Grants permission to update a subscription definition |
Write |
|||
Grants permission to update runtime configuration of a thing |
Write |
Resource types defined by Amazon IoT Greengrass
The following resource types are defined by this service and can be used in the
Resource element of IAM permission policy statements.
| Resource types | ARN | Condition keys |
|---|---|---|
arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/bulk/deployments/${BulkDeploymentId} |
||
arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/groups/${GroupId}/certificateauthorities/${CertificateAuthorityId} |
||
arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/things/${ThingName}/connectivityInfo |
||
arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/connectors/${ConnectorDefinitionId} |
||
arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/connectors/${ConnectorDefinitionId}/versions/${VersionId} |
||
arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/cores/${CoreDefinitionId} |
||
arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/cores/${CoreDefinitionId}/versions/${VersionId} |
||
arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/groups/${GroupId}/deployments/${DeploymentId}, arn:${Partition}:greengrass:${Region}:${Account}:deployments:${DeploymentId} |
||
arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/devices/${DeviceDefinitionId} |
||
arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/devices/${DeviceDefinitionId}/versions/${VersionId} |
||
arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/functions/${FunctionDefinitionId} |
||
arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/functions/${FunctionDefinitionId}/versions/${VersionId} |
||
arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/groups/${GroupId} |
||
arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/groups/${GroupId}/versions/${VersionId} |
||
arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/loggers/${LoggerDefinitionId} |
||
arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/loggers/${LoggerDefinitionId}/versions/${VersionId} |
||
arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/resources/${ResourceDefinitionId} |
||
arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/resources/${ResourceDefinitionId}/versions/${VersionId} |
||
arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/subscriptions/${SubscriptionDefinitionId} |
||
arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/subscriptions/${SubscriptionDefinitionId}/versions/${VersionId} |
||
arn:${Partition}:iot:${Region}:${Account}:thing/${ThingName} |
||
arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/things/${ThingName}/runtimeconfig |
Condition keys for Amazon IoT Greengrass
Amazon IoT Greengrass defines the following condition keys that can be used in the
Condition element of an IAM policy.
| Condition keys | Description | Type |
|---|---|---|
Filters access by the allowed set of values for each of the mandatory tags |
String |
|
Filters access by the tag value associated with the resource |
String |
|
Filters access by the presence of mandatory tags in the request |
ArrayOfString |