Como AWS IoT Greengrass funciona com IAM - AWS IoT Greengrass

AWS IoT Greengrass Version 1 entrou na fase de vida útil prolongada em 30 de junho de 2023. Para obter mais informações, consulte política de manutenção do AWS IoT Greengrass V1. Após essa data, AWS IoT Greengrass V1 não lançaremos atualizações que forneçam recursos, aprimoramentos, correções de erros ou patches de segurança. Os dispositivos que funcionam AWS IoT Greengrass V1 não serão interrompidos e continuarão operando e se conectando à nuvem. É altamente recomendável que você migre para AWS IoT Greengrass Version 2, o que adiciona novos recursos significativos e suporte para plataformas adicionais.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Como AWS IoT Greengrass funciona com IAM

Antes de usar IAM para gerenciar o acesso ao AWS IoT Greengrass, você deve entender os IAM recursos com os quais você pode usar AWS IoT Greengrass.

Para obter uma visão geral de como outros AWS serviços funcionam comIAM, consulte AWS serviços que funcionam com IAM no Guia do IAM usuário.

Políticas baseadas em identidade para AWS IoT Greengrass

Com políticas IAM baseadas em identidade, você pode especificar ações e recursos permitidos ou negados e as condições sob as quais as ações são permitidas ou negadas. AWS IoT Greengrass oferece suporte a ações, recursos e chaves de condição específicos. Para saber mais sobre todos os elementos que você usa em uma política, consulte a referência IAM JSON de elementos de política no Guia IAM do usuário.

Ações

Os administradores podem usar AWS JSON políticas para especificar quem tem acesso ao quê. Ou seja, qual entidade principal pode executar ações em quais recursos, e em que condições.

O Action elemento de uma JSON política descreve as ações que você pode usar para permitir ou negar acesso em uma política. As ações de política geralmente têm o mesmo nome da AWS API operação associada. Há algumas exceções, como ações somente com permissão que não têm uma operação correspondente. API Algumas operações também exigem várias ações em uma política. Essas ações adicionais são chamadas de ações dependentes.

Incluem ações em uma política para conceder permissões para executar a operação associada.

Ações de política para AWS IoT Greengrass usar o greengrass: prefixo antes da ação. Por exemplo, para permitir que alguém use a ListGroups API operação para listar os grupos em seus grupos Conta da AWS, você inclui a greengrass:ListGroups ação em sua política. As declarações de política devem incluir um elemento Action ou AWS IoT Greengrass . O NotAction define seu próprio conjunto de ações que descrevem as tarefas que podem ser executadas com esse serviço.

Para especificar várias ações em uma única declaração, coloque-as entre parênteses ([ ]) e separe-as com vírgulas, da seguinte forma:

"Action": [ "greengrass:action1", "greengrass:action2", "greengrass:action3" ]

Você pode usar curingas (*) para especificar várias ações. Por exemplo, para especificar todas as ações que começam com a palavra List, inclua a seguinte ação:

"Action": "greengrass:List*"
nota

Recomendamos que você evite o uso de curingas para especificar todas as ações disponíveis para um serviço. De acordo com as melhores práticas, você deve conceder permissões de privilégio mínimo e definir um escopo de permissões mais específico em uma política. Para obter mais informações, consulte Conceder o mínimo possível de permissões.

Para obter a lista completa de AWS IoT Greengrass ações, consulte Ações definidas por AWS IoT Greengrass no Guia IAM do usuário.

Recursos

Os administradores podem usar AWS JSON políticas para especificar quem tem acesso ao quê. Ou seja, qual entidade principal pode executar ações em quais recursos, e em que condições.

O elemento Resource JSON de política especifica o objeto ou objetos aos quais a ação se aplica. As instruções devem incluir um elemento Resource ou NotResource. Como prática recomendada, especifique um recurso usando seu Amazon Resource Name (ARN). Isso pode ser feito para ações que oferecem compatibilidade com um tipo de recurso específico, conhecido como permissões em nível de recurso.

Para ações que não oferecem compatibilidade com permissões em nível de recurso, como operações de listagem, use um curinga (*) para indicar que a instrução se aplica a todos os recursos.

"Resource": "*"

A tabela a seguir contém o AWS IoT Greengrass recurso ARNs que pode ser usado no Resource elemento de uma declaração de política. Para um mapeamento das permissões de nível de recurso suportadas para AWS IoT Greengrass ações, consulte Ações definidas por AWS IoT Greengrass no Guia do IAM usuário.

Recurso ARN
Group arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/groups/${GroupId}
GroupVersion arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/groups/${GroupId}/versions/${VersionId}
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}
ConnectorDefinition arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/connectors/${ConnectorDefinitionId}
ConnectorDefinitionVersion arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/connectors/${ConnectorDefinitionId}/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}
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}
SubscriptionDefinition arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/subscriptions/${SubscriptionDefinitionId}
SubscriptionDefinitionVersion arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/definition/subscriptions/${SubscriptionDefinitionId}/versions/${VersionId}
ConnectivityInfo arn:${Partition}:greengrass:${Region}:${Account}:/greengrass/things/${ThingName}/connectivityInfo

O Resource elemento de exemplo a seguir especifica o ARN de um grupo na região Oeste dos EUA (Oregon) no: Conta da AWS 123456789012

"Resource": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/groups/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111

Ou, para especificar todos os grupos que pertencem a um Conta da AWS em um específico Região da AWS, use o caractere curinga no lugar da ID do grupo:

"Resource": "arn:aws:greengrass:us-west-2:123456789012:/greengrass/groups/*"

Algumas AWS IoT Greengrass ações (por exemplo, algumas operações de lista) não podem ser executadas em um recurso específico. Nesses casos, você deve usar apenas o caractere curinga.

"Resource": "*"

Para especificar vários recursos ARNs em uma instrução, liste-os entre colchetes ([]) e separe-os com vírgulas, da seguinte forma:

"Resource": [ "resource-arn1", "resource-arn2", "resource-arn3" ]

Para obter mais informações sobre ARN formatos, consulte Amazon Resource Names (ARNs) e namespaces de AWS serviços no. Referência geral da Amazon Web Services

Chaves de condição

Os administradores podem usar AWS JSON políticas para especificar quem tem acesso ao quê. Ou seja, qual entidade principal pode executar ações em quais recursos, e em que condições.

O elemento Condition (ou bloco Condition) permite que você especifique condições nas quais uma instrução estiver em vigor. O elemento Condition é opcional. É possível criar expressões condicionais que usem agentes de condição, como “igual a” ou “menor que”, para fazer a condição da política corresponder aos valores na solicitação.

Se você especificar vários elementos Condition em uma instrução ou várias chaves em um único Condition elemento, a AWS os avaliará usando uma operação lógica AND. Se você especificar vários valores para uma única chave de condição, AWS avalia a condição usando uma OR operação lógica. Todas as condições devem ser atendidas antes que as permissões da instrução sejam concedidas.

Você também pode usar variáveis de espaço reservado ao especificar condições. Por exemplo, você pode conceder permissão a um IAM usuário para acessar um recurso somente se ele estiver marcado com o nome de IAM usuário. Para obter mais informações, consulte elementos de IAM política: variáveis e tags no Guia IAM do usuário.

AWS suporta chaves de condição globais e chaves de condição específicas do serviço. Para ver todas as chaves de condição AWS globais, consulte as chaves de contexto de condição AWS global no Guia IAM do usuário.

AWS IoT Greengrass suporta as seguintes chaves de condição globais.

Chave Descrição
aws:CurrentTime Filtra o acesso verificando as condições de data/hora da data e hora atuais.
aws:EpochTime Filtra o acesso verificando as condições de data/hora da data e hora atuais em epoch ou horário do Unix.
aws:MultiFactorAuthAge Filtra o acesso verificando há quanto tempo (em segundos) as credenciais de segurança validadas pela autenticação multifator (MFA) na solicitação foram emitidas usando. MFA
aws:MultiFactorAuthPresent Filtra o acesso verificando se a autenticação multifator (MFA) foi usada para validar as credenciais de segurança temporárias que fizeram a solicitação atual.
aws:RequestTag/${TagKey} Filtra as solicitações de criação com base no conjunto de valores permitidos para cada uma das tags obrigatórias.
aws:ResourceTag/${TagKey} Filtra as ações com base no valor da tag associada ao recurso.
aws:SecureTransport Filtra o acesso verificando se a solicitação foi enviada usando SSL o.
aws:TagKeys Filtra solicitações de criação com base na presença de etiquetas obrigatórias na solicitação.
aws:UserAgent Filtra o acesso pelo aplicativo cliente do solicitante.

Para obter mais informações, consulte as chaves de contexto de condição AWS global no Guia IAM do usuário.

Exemplos

Para ver exemplos de políticas AWS IoT Greengrass baseadas em identidade, consulte. Exemplos de políticas baseadas em identidade para o AWS IoT Greengrass

Políticas baseadas em recursos para AWS IoT Greengrass

AWS IoT Greengrass não oferece suporte a políticas baseadas em recursos.

Listas de controle de acesso (ACLs)

AWS IoT Greengrass não suporta ACLs.

Autorização baseada em tags do AWS IoT Greengrass

Você pode anexar tags aos AWS IoT Greengrass recursos compatíveis ou passar tags em uma solicitação para AWS IoT Greengrass. Para controlar o acesso baseado em tags, forneça informações sobre as tags no elemento de condição de uma política usando as chaves de condição aws:ResourceTag/${TagKey}, aws:RequestTag/${TagKey} ou aws:TagKeys. Para obter mais informações, consulte Marcando seus Recursos AWS IoT Greengrass.

IAMfunções para AWS IoT Greengrass

Uma IAMfunção é uma entidade dentro da sua Conta da AWS que tem permissões específicas.

Usando credenciais temporárias com AWS IoT Greengrass

As credenciais temporárias são usadas para entrar na federação, assumir uma IAM função ou assumir uma função entre contas. Você obtém credenciais de segurança temporárias ligando para AWS STS API operações como AssumeRoleou GetFederationToken.

No núcleo do Greengrass, credenciais temporárias para a função de grupo são disponibilizadas para funções e conectores do Lambda definidos pelo usuário. Se suas funções do Lambda usam o AWS SDK, você não precisa adicionar lógica para obter as credenciais, pois AWS SDK ele faz isso por você.

Funções vinculadas a serviço

AWS IoT Greengrass não oferece suporte a funções vinculadas a serviços.

Perfis de serviço

Esse atributo permite que um serviço assuma um perfil de serviço em seu nome. O perfil permite que o serviço acesse recursos em outros serviços para concluir uma ação em seu nome. As funções de serviço aparecem na sua IAM conta e são de propriedade da conta. Isso significa que um IAM administrador pode alterar as permissões para essa função. Porém, fazer isso pode alterar a funcionalidade do serviço.

AWS IoT Greengrass usa uma função de serviço para acessar alguns de seus AWS recursos em seu nome. Para obter mais informações, consulte Perfil de serviço do Greengrass.

Escolhendo uma IAM função no AWS IoT Greengrass console

No AWS IoT Greengrass console, talvez você precise escolher uma função de serviço do Greengrass ou uma função de grupo do Greengrass em uma lista de IAM funções em sua conta.

  • A função de serviço do Greengrass permite AWS IoT Greengrass acessar seus AWS recursos em outros serviços em seu nome. Normalmente, você não precisa escolher o perfil de serviço porque o console pode criá-la e configurá-la para você. Para obter mais informações, consulte Perfil de serviço do Greengrass.

  • A função de grupo do Greengrass é usada para permitir que as funções e conectores do Greengrass Lambda no grupo acessem seus recursos. AWS Ele também pode dar AWS IoT Greengrass permissões para exportar fluxos para AWS serviços e gravar CloudWatch registros. Para obter mais informações, consulte Função do grupo do Greengrass..