Perfil de serviço do Greengrass - 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á.

Perfil de serviço do Greengrass

perfil de serviçoO perfil de serviço do Greengrass é um perfil de serviço do (IAM) AWS Identity and Access Management que autoriza o AWS IoT Greengrass a acessar recursos de serviços da AWS em seu nome. Isso permite que o AWS IoT Greengrass execute tarefas essenciais, como a recuperação de suas funções do AWS Lambda e o gerenciamento de shadows da AWS IoT.

Para permitir que o AWS IoT Greengrass acesse seus recursos, o perfil de serviço do Greengrass deve estar associado à sua Conta da AWS e você deve especificar o AWS IoT Greengrass como uma entidade confiável. A função deve incluir a política gerenciada AWSGreengrassResourceAccessRolePolicy ou uma política personalizada que define permissões equivalentes para os atributos do AWS IoT Greengrass que você usa. Essa política é mantida pela AWS e define o conjunto de permissões que o AWS IoT Greengrass usa para acessar os recursos do AWS.

É possível reutilizar o mesmo perfil de serviço do Greengrass em todas as Região da AWSs, mas é necessário associá-lo à sua conta em cada Região da AWS em que você usar o AWS IoT Greengrass. Haverá falha na implantação de grupos seo perfilperfil de serviço não existir na Conta da AWS e na Região atuais.

As seções a seguir descrevem como criar e gerenciar o perfil de serviço do Greengrass no AWS Management Console ou na AWS CLI.

nota

Além do perfil de serviço que autoriza o acesso em nível de serviço, é possível atribuir uma função de grupo a um grupo do AWS IoT Greengrass. A função de grupo é um perfil do IAM separada que controla como os conectores e as funções do Lambda do Greengrass no grupo podem acessar os serviços da AWS.

Gerenciar o perfil de serviço do Greengrass (console)

O console do AWS IoT facilita o gerenciamento do perfil de serviço do Greengrass. Por exemplo, quando você cria ou implanta um grupo do Greengrass, o console verifica se a Conta da AWS está anexada a um perfil de serviço do Greengrass na Região da AWS que está selecionado no console. Caso contrário, o console pode criar e configurar um perfil de serviço para você. Para obter mais informações, consulte Criar o perfil de serviço do Greengrass (console).

É possível usar o console do AWS IoT para as seguintes tarefas de gerenciamento de função:

nota

O usuário que está conectado no console deve ter permissões para visualizar, criar ou alterar o perfil de serviço.

 

Encontrar o perfil de serviço do Greengrass (console)

Use as etapas a seguir para encontrar um perfil de serviço que o AWS IoT Greengrass está usando na Região da AWS atual.

  1. No painel de navegação do console do AWS IoT, selecione Configurações.

  2. Role até a seção Perfil de serviço do Greengrass para ver o perfil de serviço e as políticas dela.

    Se não for exibida um perfil de serviço, deixe que o console crie ou configure uma para você. Para obter mais informações, consulte Criar o perfil de serviço do Greengrass.

 

Criar o perfil de serviço do Greengrass (console)

O console pode criar e configurar um perfil de serviço padrão do Greengrass para você. Essa função tem as propriedades a seguir.

Propriedade Valor
Nome Greengrass_ServiceRole
Entidade confiável AWS service: greengrass
Política AWSGreengrassResourceAccessRolePolicy
nota

Se a configuração do dispositivo do Greengrass criar o perfil de serviço, o nome da função será GreengrassServiceRole_random-string.

Quando você cria ou implanta um grupo do Greengrass pelo console do AWS IoT, o console verifica se um perfil de serviço do Greengrass está associado à Conta da AWS na Região da AWS que está selecionada no console. Caso contrário, o console solicita sua permissão para que o AWS IoT Greengrass faça leitura e gravação em serviços AWS em seu nome.

Se você conceder permissão, o console verifica se uma função chamada Greengrass_ServiceRole existe na Conta da AWS.

  • Se a função existir, o console anexará o perfil de serviço à Conta da AWS na Região da AWS atual.

  • Se a função não existir, o console criará um perfil de serviço padrão do Greengrass e a anexará à Conta da AWS na Região da AWS atual.

nota

Se quiser criar um perfil de serviço com políticas de função personalizadas, use o console do IAM para criar ou modificar a função. Para obter mais informações, consulte Criando uma função para delegar permissões a um serviço da AWS ou Modificando uma função no Manual do usuário do IAM. Verifique se a função concede permissões equivalentes à política gerenciada AWSGreengrassResourceAccessRolePolicy para os atributos e as características que você utiliza. Recomendamos que você também inclua as chaves de contexto de condição global aws:SourceArn e aws:SourceAccount em sua política de confiança para ajudar a evitar o problema de segurança confused deputy. As chaves de contexto de condição restringem o acesso para permitir somente as solicitações provenientes da conta especificada e do espaço de trabalho do Greengrass. Para obter mais informações sobre o problema substituto confuso, consulte Prevenção do problema do substituto confuso entre serviços.

Se você criar um perfil de serviço, retorne ao console do AWS IoT e anexe a função ao grupo. É possível fazer isso na perfil de serviço do Greengrass, na página Configurações do grupo.

 

Alterar o perfil de serviço do Greengrass (console)

Use o procedimento a seguir para escolher outro perfil de serviço do Greengrass para anexar à Conta da AWS na Região da AWS que está selecionada no console.

  1. No painel de navegação do console do AWS IoT, selecione Configurações.

  2. Em Perfil de serviço do Greengrass, selecione Change role (Mudar perfil).

    A caixa de diálogo Atualizar perfil de serviço do Greengrass é aberta e mostra as funções do IAM em sua Conta da AWS que definem AWS IoT Greengrass como uma entidade confiável.

  3. Selecione o perfil de serviço do Greengrass a ser anexado.

  4. Selecione Anexar função.

nota

Para permitir que o console crie um perfil de serviço padrão do Greengrass para você, selecione Create role for me (Criar função para mim) em vez de escolher uma função na lista. O link Criar função para mim não aparecerá se uma função chamada Greengrass_ServiceRole estiver na Conta da AWS.

 

Desanexar o perfil de serviço do Greengrass (console)

Use o procedimento a seguir para desanexar o perfil de serviço do Greengrass da Conta da AWS na Região da AWS que está selecionada no console. Isso revoga as permissões para que o AWS IoT Greengrass acesse os serviços da AWS na Região da AWS atual.

Importante

Desanexar o perfil de serviço pode interromper operações ativas.

  1. No painel de navegação do console do AWS IoT, selecione Configurações.

  2. Em Perfil de serviço do Greengrass, selecione Detach role (Desanexar função).

  3. Na caixa de diálogo de confirmação, selecione Detach (Desvincular).

nota

Se você não precisar mais da função, poderá excluí-la no console do IAM. Para obter mais informações sobre como excluir uma função, consulte Excluir funções ou perfis de instância no Manual do usuário do IAM.

Outras funções podem permitir que o AWS IoT Greengrass acesse os recursos. Para encontrar todas as funções que permitem que o AWS IoT Greengrass assuma permissões em seu nome, no console do IAM, na página Funções, procure as funções que incluem AWS service: greengrass na coluna Entidades confiáveis.

Gerenciar o perfil de serviço do Greengrass (CLI)

Nos procedimentos a seguir, vamos considerar que a AWS CLI está instalada e configurada para usar o ID de sua conta da Conta da AWS. Para obter mais informações, consulte Instalar a interface de linhas de comando da AWS e Configurar a AWS CLI no Manual do usuário da AWS Command Line Interface.

É possível usar a AWS CLI para as seguintes tarefas de gerenciamento de função:

 

Obter o perfil de serviço do Greengrass (CLI)

Use o procedimento a seguir para descobrir se um perfil de serviço do Greengrass está associado à Conta da AWS em uma Região da AWS.

  • Obtenha o perfil de serviço. Substitua região por sua Região da AWS (por exemplo, us-west-2).

    aws Greengrass get-service-role-for-account --region region

    Se um perfil de serviço do Greengrass já estiver associado à sua conta, os metadados de função serão retornados.

    { "AssociatedAt": "timestamp", "RoleArn": "arn:aws:iam::account-id:role/path/role-name" }

    Se nenhum metadado de função for retornado, você deverá criar o perfil de serviço (se ele não existir) e associá-la á sua conta na Região da AWS.

 

Criar o perfil de serviço do Greengrass (CLI)

Use as etapas a seguir para criar uma função e associá-la à sua Conta da AWS.

Como criar o perfil de serviço usando o IAM
  1. Crie a função com uma política de confiança que permita que o AWS IoT Greengrass assuma a função. Este exemplo cria uma função chamada Greengrass_ServiceRole, mas você pode usar um nome diferente. Recomendamos que você também inclua as chaves de contexto de condição global aws:SourceArn e aws:SourceAccount em sua política de confiança para ajudar a evitar o problema de segurança confused deputy. As chaves de contexto de condição restringem o acesso para permitir somente as solicitações provenientes da conta especificada e do espaço de trabalho do Greengrass. Para obter mais informações sobre o problema substituto confuso, consulte Prevenção do problema do substituto confuso entre serviços.

    Linux, macOS, or Unix
    aws iam create-role --role-name Greengrass_ServiceRole --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "greengrass.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "account-id" }, "ArnLike": { "aws:SourceArn": "arn:aws:greengrass:region:account-id:*" } } } ] }'
    Windows command prompt
    aws iam create-role --role-name Greengrass_ServiceRole --assume-role-policy-document "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"greengrass.amazonaws.com\"},\"Action\":\"sts:AssumeRole\",\"Condition\":{\"ArnLike\":{\"aws:SourceArn\":\"arn:aws:greengrass:region:account-id:*\"},\"StringEquals\":{\"aws:SourceAccount\":\"account-id\"}}}]}"
  2. Copie o ARN da função dos metadados da função na saída. Você usará o ARN para associar a função à sua conta.

  3. Anexe a política do AWSGreengrassResourceAccessRolePolicy à função.

    aws iam attach-role-policy --role-name Greengrass_ServiceRole --policy-arn arn:aws:iam::aws:policy/service-role/AWSGreengrassResourceAccessRolePolicy
Para associar o perfil de serviço à sua conta da Conta da AWS
  • Associe a função à sua conta. Substitua role-arn pelo ARN do perfil de serviço e região por sua Região da AWS (por exemplo, us-west-2).

    aws greengrass associate-service-role-to-account --role-arn role-arn --region region

    Se houver êxito, a resposta a seguir será retornada.

    { "AssociatedAt": "timestamp" }

 

Remover o perfil de serviço do Greengrass (CLI)

Use as etapas a seguir para desassociar o perfil de serviço do Greengrass de sua Conta da AWS.

  • Desassocie a perfil de serviço da conta. Substitua região por sua Região da AWS (por exemplo, us-west-2).

    aws greengrass disassociate-service-role-from-account --region region

    Se houver êxito, a resposta a seguir será retornada.

    { "DisassociatedAt": "timestamp" }
    nota

    Você deverá excluir o perfil de serviço se não o estiver usando em nenhuma Região da AWS. Primeiro, use delete-role-policy para desanexar a política gerenciada AWSGreengrassResourceAccessRolePolicy da função e, depois, use delete-role para excluir a função. Para obter mais informações sobre como excluir uma função, consulte Excluir funções ou perfis de instância no Manual do usuário do IAM.

Consulte também