Actions, resources, and condition keys for AWS IoT Greengrass
AWS IoT Greengrass (service prefix: greengrass
) provides the following service-specific resources, actions, and condition context 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.
Topics
Actions defined by AWS 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 AWS. 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.
The Resource types column of the Actions table indicates whether each action supports resource-level permissions. If there is no value for this column, you must specify all resources ("*") to which the policy applies in the Resource
element of your policy statement. If the column includes a resource type, then you can specify an ARN of that type in a statement with that action. If the action has one or more required resources, the caller must have permission to use the action with those resources. Required resources are indicated in the table with an asterisk (*). If you limit resource access with the Resource
element in an IAM policy, you must include an ARN or pattern for each required resource type. Some actions support multiple resource types. If the resource type is optional (not indicated as required), then you can choose to use one of the optional resource types.
The Condition keys column of the Actions table includes keys that you can specify in a policy statement's Condition
element. For more information on the condition keys that are associated with resources for the service, see the Condition keys column of the Resource types table.
Note
Resource condition keys are listed in the Resource types table. You can find a link to the resource type that applies to an action in the Resource types (*required) column of the Actions table. The resource type in the Resource types table includes the Condition keys column, which are the resource condition keys that apply to an action in the Actions table.
For details about the columns in the following table, see Actions table.
Actions | Description | Access level | Resource types (*required) | Condition keys | Dependent actions |
---|---|---|---|---|---|
AssociateRoleToGroup | 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 AWS services | Write | |||
AssociateServiceRoleToAccount | Grants permission to associate a role with your account. AWS IoT Greengrass uses this role to access your Lambda functions and AWS IoT resources | Permissions management | |||
CreateConnectorDefinition | Grants permission to create a connector definition | Write | |||
CreateConnectorDefinitionVersion | Grants permission to create a version of an existing connector definition | Write | |||
CreateCoreDefinition | Grants permission to create a core definition | Write | |||
CreateCoreDefinitionVersion | Grants permission to create a version of an existing core definition. Greengrass groups must each contain exactly one Greengrass core | Write | |||
CreateDeployment | Grants permission to create a deployment | Write | |||
CreateDeviceDefinition | Grants permission to create a device definition | Write | |||
CreateDeviceDefinitionVersion | Grants permission to create a version of an existing device definition | Write | |||
CreateFunctionDefinition | 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 | |||
CreateFunctionDefinitionVersion | Grants permission to create a version of an existing Lambda function definition | Write | |||
CreateGroup | Grants permission to create a group | Write | |||
CreateGroupCertificateAuthority | Grants permission to create a CA for the group, or rotate the existing CA | Write | |||
CreateGroupVersion | Grants permission to create a version of a group that has already been defined | Write | |||
CreateLoggerDefinition | Grants permission to create a logger definition | Write | |||
CreateLoggerDefinitionVersion | Grants permission to create a version of an existing logger definition | Write | |||
CreateResourceDefinition | Grants permission to create a resource definition that contains a list of resources to be used in a group | Write | |||
CreateResourceDefinitionVersion | Grants permission to create a version of an existing resource definition | Write | |||
CreateSoftwareUpdateJob | Grants permission to create an AWS IoT job that will trigger your Greengrass cores to update the software they are running | Write | |||
CreateSubscriptionDefinition | Grants permission to create a subscription definition | Write | |||
CreateSubscriptionDefinitionVersion | Grants permission to create a version of an existing subscription definition | Write | |||
DeleteConnectorDefinition | Grants permission to delete a connector definition | Write | |||
DeleteCoreDefinition | Grants permission to delete a core definition. Deleting a definition that is currently in use in a deployment affects future deployments | Write | |||
DeleteDeviceDefinition | Grants permission to delete a device definition. Deleting a definition that is currently in use in a deployment affects future deployments | Write | |||
DeleteFunctionDefinition | Grants permission to delete a Lambda function definition. Deleting a definition that is currently in use in a deployment affects future deployments | Write | |||
DeleteGroup | Grants permission to delete a group that is not currently in use in a deployment | Write | |||
DeleteLoggerDefinition | Grants permission to delete a logger definition. Deleting a definition that is currently in use in a deployment affects future deployments | Write | |||
DeleteResourceDefinition | Grants permission to delete a resource definition | Write | |||
DeleteSubscriptionDefinition | Grants permission to delete a subscription definition. Deleting a definition that is currently in use in a deployment affects future deployments | Write | |||
DisassociateRoleFromGroup | Grants permission to disassociate the role from a group | Write | |||
DisassociateServiceRoleFromAccount | Grants permission to disassociate the service role from an account. Without a service role, deployments will not work | Write | |||
Discover | Grants permission to retrieve information required to connect to a Greengrass core | Read | |||
GetAssociatedRole | Grants permission to retrieve the role associated with a group | Read | |||
GetBulkDeploymentStatus | Grants permission to return the status of a bulk deployment | Read | |||
GetConnectivityInfo | Grants permission to retrieve the connectivity information for a core | Read | |||
GetConnectorDefinition | Grants permission to retrieve information about a connector definition | Read | |||
GetConnectorDefinitionVersion | Grants permission to retrieve information about a connector definition version | Read | |||
GetCoreDefinition | Grants permission to retrieve information about a core definition | Read | |||
GetCoreDefinitionVersion | Grants permission to retrieve information about a core definition version | Read | |||
GetDeploymentStatus | Grants permission to return the status of a deployment | Read | |||
GetDeviceDefinition | Grants permission to retrieve information about a device definition | Read | |||
GetDeviceDefinitionVersion | Grants permission to retrieve information about a device definition version | Read | |||
GetFunctionDefinition | Grants permission to retrieve information about a Lambda function definition, such as its creation time and latest version | Read | |||
GetFunctionDefinitionVersion | 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 | |||
GetGroup | Grants permission to retrieve information about a group | Read | |||
GetGroupCertificateAuthority | Grants permission to return the public key of the CA associated with a group | Read | |||
GetGroupCertificateConfiguration | Grants permission to retrieve the current configuration for the CA used by a group | Read | |||
GetGroupVersion | Grants permission to retrieve information about a group version | Read | |||
GetLoggerDefinition | Grants permission to retrieve information about a logger definition | Read | |||
GetLoggerDefinitionVersion | Grants permission to retrieve information about a logger definition version | Read | |||
GetResourceDefinition | Grants permission to retrieve information about a resource definition, such as its creation time and latest version | Read | |||
GetResourceDefinitionVersion | Grants permission to retrieve information about a resource definition version, such as which resources are included in the version | Read | |||
GetServiceRoleForAccount | Grants permission to retrieve the service role that is attached to an account | Read | |||
GetSubscriptionDefinition | Grants permission to retrieve information about a subscription definition | Read | |||
GetSubscriptionDefinitionVersion | Grants permission to retrieve information about a subscription definition version | Read | |||
GetThingRuntimeConfiguration | Grants permission to retrieve runtime configuration of a thing | Read | |||
ListBulkDeploymentDetailedReports | 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 | |||
ListBulkDeployments | Grants permission to retrieve a list of bulk deployments | List | |||
ListConnectorDefinitionVersions | Grants permission to list the versions of a connector definition | List | |||
ListConnectorDefinitions | Grants permission to retrieve a list of connector definitions | List | |||
ListCoreDefinitionVersions | Grants permission to list the versions of a core definition | List | |||
ListCoreDefinitions | Grants permission to retrieve a list of core definitions | List | |||
ListDeployments | Grants permission to retrieve a list of all deployments for a group | List | |||
ListDeviceDefinitionVersions | Grants permission to list the versions of a device definition | List | |||
ListDeviceDefinitions | Grants permission to retrieve a list of device definitions | List | |||
ListFunctionDefinitionVersions | Grants permission to list the versions of a Lambda function definition | List | |||
ListFunctionDefinitions | Grants permission to retrieve a list of Lambda function definitions | List | |||
ListGroupCertificateAuthorities | Grants permission to retrieve a list of current CAs for a group | List | |||
ListGroupVersions | Grants permission to list the versions of a group | List | |||
ListGroups | Grants permission to retrieve a list of groups | List | |||
ListLoggerDefinitionVersions | Grants permission to list the versions of a logger definition | List | |||
ListLoggerDefinitions | Grants permission to retrieve a list of logger definitions | List | |||
ListResourceDefinitionVersions | Grants permission to list the versions of a resource definition | List | |||
ListResourceDefinitions | Grants permission to retrieve a list of resource definitions | List | |||
ListSubscriptionDefinitionVersions | Grants permission to list the versions of a subscription definition | List | |||
ListSubscriptionDefinitions | Grants permission to retrieve a list of subscription definitions | List | |||
ListTagsForResource | Grants permission to list the tags for a resource | Read | |||
ResetDeployments | Grants permission to reset a group's deployments | Write | |||
StartBulkDeployment | Grants permission to deploy multiple groups in one operation | Write | |||
StopBulkDeployment | Grants permission to stop the execution of a bulk deployment | Write | |||
TagResource | Grants permission to add tags to a resource | Tagging | |||
UntagResource | Grants permission to remove tags from a resource | Tagging | |||
UpdateConnectivityInfo | 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 | |||
UpdateConnectorDefinition | Grants permission to update a connector definition | Write | |||
UpdateCoreDefinition | Grants permission to update a core definition | Write | |||
UpdateDeviceDefinition | Grants permission to update a device definition | Write | |||
UpdateFunctionDefinition | Grants permission to update a Lambda function definition | Write | |||
UpdateGroup | Grants permission to update a group | Write | |||
UpdateGroupCertificateConfiguration | Grants permission to update the certificate expiry time for a group | Write | |||
UpdateLoggerDefinition | Grants permission to update a logger definition | Write | |||
UpdateResourceDefinition | Grants permission to update a resource definition | Write | |||
UpdateSubscriptionDefinition | Grants permission to update a subscription definition | Write | |||
UpdateThingRuntimeConfiguration | Grants permission to update runtime configuration of a thing | Write |
Resource types defined by AWS IoT Greengrass
The following resource types are defined by this service and can be used in the Resource
element of IAM permission policy statements. Each action in the Actions table identifies the resource types that can be specified with that action. A resource type can also define which condition keys you can include in a policy. These keys are displayed in the last column of the Resource types table. For details about the columns in the following table, see Resource types table.
Resource types | ARN | Condition keys |
---|---|---|
connectivityInfo |
arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/things/${ThingName}/connectivityInfo
|
|
certificateAuthority |
arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/groups/${GroupId}/certificateauthorities/${CertificateAuthorityId}
|
|
deployment |
arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/groups/${GroupId}/deployments/${DeploymentId}
|
|
bulkDeployment |
arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/bulk/deployments/${BulkDeploymentId}
|
|
group |
arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/groups/${GroupId}
|
|
groupVersion |
arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/groups/${GroupId}/versions/${VersionId}
|
|
coreDefinition |
arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/cores/${CoreDefinitionId}
|
|
coreDefinitionVersion |
arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/cores/${CoreDefinitionId}/versions/${VersionId}
|
|
deviceDefinition |
arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/devices/${DeviceDefinitionId}
|
|
deviceDefinitionVersion |
arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/devices/${DeviceDefinitionId}/versions/${VersionId}
|
|
functionDefinition |
arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/functions/${FunctionDefinitionId}
|
|
functionDefinitionVersion |
arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/functions/${FunctionDefinitionId}/versions/${VersionId}
|
|
subscriptionDefinition |
arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/subscriptions/${SubscriptionDefinitionId}
|
|
subscriptionDefinitionVersion |
arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/subscriptions/${SubscriptionDefinitionId}/versions/${VersionId}
|
|
loggerDefinition |
arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/loggers/${LoggerDefinitionId}
|
|
loggerDefinitionVersion |
arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/loggers/${LoggerDefinitionId}/versions/${VersionId}
|
|
resourceDefinition |
arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/resources/${ResourceDefinitionId}
|
|
resourceDefinitionVersion |
arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/resources/${ResourceDefinitionId}/versions/${VersionId}
|
|
connectorDefinition |
arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/connectors/${ConnectorDefinitionId}
|
|
connectorDefinitionVersion |
arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/connectors/${ConnectorDefinitionId}/versions/${VersionId}
|
|
thing |
arn:${Partition}:iot:${Region}:${Account}:thing/${ThingName}
|
|
thingRuntimeConfig |
arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/things/${ThingName}/runtimeconfig
|
Condition keys for AWS IoT Greengrass
AWS IoT Greengrass defines the following condition keys that can be used in the Condition
element of an IAM policy. You can use these keys to further refine the conditions under which the policy statement applies. For details about the columns in the following table, see Condition keys table.
To view the global condition keys that are available to all services, see Available global condition keys.
Condition keys | Description | Type |
---|---|---|
aws:RequestTag/${TagKey} | Filters access by the allowed set of values for each of the mandatory tags | String |
aws:ResourceTag/${TagKey} | Filters access by the tag value associated with the resource | String |
aws:TagKeys | Filters access by the presence of mandatory tags in the request | ArrayOfString |