

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á.

# Função de serviço do Greengrass
<a name="greengrass-service-role"></a>

<a name="greengrass-service-role-intro"></a>A função de serviço do Greengrass é uma função de serviço AWS Identity and Access Management (IAM) que AWS IoT Greengrass autoriza o acesso a recursos de AWS serviços em seu nome. Essa função possibilita verificar AWS IoT Greengrass a identidade dos dispositivos clientes e gerenciar as principais informações de conectividade do dispositivo.

**nota**  
AWS IoT Greengrass V1 também usa essa função para realizar tarefas essenciais. Para obter mais informações, consulte [Perfil de serviço do Greengrass](https://docs.aws.amazon.com/greengrass/v1/developerguide/service-role.html) no *Guia do Desenvolvedor do AWS IoT Greengrass V1 *.

Para permitir AWS IoT Greengrass o acesso aos seus recursos, a função de serviço do Greengrass deve estar associada à sua Conta da AWS e ser especificada AWS IoT Greengrass como uma entidade confiável. A função deve incluir a política [AWSGreengrassResourceAccessRolePolicy](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/service-role/AWSGreengrassResourceAccessRolePolicy)gerenciada ou uma política personalizada que defina permissões equivalentes para os AWS IoT Greengrass recursos que você usa. AWS mantém essa política, que define o conjunto de permissões que você AWS IoT Greengrass usa para acessar seus AWS recursos. Para obter mais informações, consulte [AWS política gerenciada: AWSGreengrass ResourceAccessRolePolicy](security-iam-aws-managed-policies.md#aws-managed-policies-AWSGreengrassResourceAccessRolePolicy).

Você pode reutilizar a mesma função de serviço do Greengrass Regiões da AWS em todas as partes, mas deve associá-la à sua conta em Região da AWS todos os lugares em que usa. AWS IoT Greengrass Se a função de serviço não estiver configurada na atual Região da AWS, os dispositivos principais falharão em verificar os dispositivos cliente e não atualizarão as informações de conectividade.

As seções a seguir descrevem como criar e gerenciar a função de serviço do Greengrass com o Console de gerenciamento da AWS ou. AWS CLI

**Topics**
+ [Gerenciar o perfil de serviço do Greengrass (console)](#manage-greengrass-service-role-console)
+ [Gerenciar o perfil de serviço do Greengrass (CLI)](#manage-service-role-cli)
+ [Consulte também](#service-role-see-also)

**nota**  
Além do perfil de serviço que autoriza o acesso em nível de serviço, você atribui um *perfil de troca de tokens* aos dispositivos centrais do Greengrass. A função de troca de tokens é uma função separada do IAM que controla como os componentes do Greengrass e as funções do Lambda no dispositivo principal podem acessar os serviços. AWS Para obter mais informações, consulte [Autorize os dispositivos principais a interagir com os serviços AWS](device-service-role.md).

## Gerenciar o perfil de serviço do Greengrass (console)
<a name="manage-greengrass-service-role-console"></a>

O AWS IoT console facilita o gerenciamento de sua função de serviço no Greengrass. Por exemplo, quando você configura a descoberta do dispositivo do cliente para um dispositivo principal, o console verifica se a Conta da AWS está anexada a uma função de serviço do Greengrass na. Região da AWS Caso contrário, o console pode criar e configurar uma função de serviço para você. Para obter mais informações, consulte [Criar a função de serviço do Greengrass (console)](#create-greengrass-service-role-console).

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

**Topics**
+ [Encontrar a função de serviço do Greengrass (console)](#get-greengrass-service-role-console)
+ [Criar a função de serviço do Greengrass (console)](#create-greengrass-service-role-console)
+ [Alterar a função de serviço do Greengrass (console)](#update-greengrass-service-role-console)
+ [Desanexar a função de serviço do Greengrass (console)](#remove-greengrass-service-role-console)

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

### Encontrar a função de serviço do Greengrass (console)
<a name="get-greengrass-service-role-console"></a>

Use as etapas a seguir para encontrar a função de serviço AWS IoT Greengrass usada na atual Região da AWS.

1. <a name="open-iot-console"></a>Navegue até o [console do AWS IoT](https://console.aws.amazon.com/iot).

1. <a name="open-iot-settings"></a>No painel de navegação, selecione **Configurações**.

1. Role até a seção **Função de serviço do Greengrass** para ver a função de serviço e as políticas dela.

   Se não for exibido um perfil de serviço, o console pode criar ou configurar um para você. Para obter mais informações, consulte [Criar a função de serviço do Greengrass](#create-greengrass-service-role-console).

### Criar a função de serviço do Greengrass (console)
<a name="create-greengrass-service-role-console"></a>

O console pode criar e configurar uma função 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](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/service-role/AWSGreengrassResourceAccessRolePolicy) | 

**nota**  
Se você criar essa função com o [script de configuração do AWS IoT Greengrass V1 dispositivo](https://docs.aws.amazon.com/greengrass/v1/developerguide/quick-start.html), o nome da função será`GreengrassServiceRole_{{random-string}}`.

Quando você configura a descoberta do dispositivo cliente para um dispositivo principal, o console verifica se uma função de serviço do Greengrass está associada à sua Conta da AWS no momento. Região da AWS Caso contrário, o console solicitará que você permita AWS IoT Greengrass a leitura e gravação nos AWS serviços 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á a função de serviço à sua Conta da AWS na atual Região da AWS.
+ Se a função não existir, o console cria uma função de serviço padrão do Greengrass e a anexa à sua Conta da AWS na atual. Região da AWS

**nota**  
Se quiser criar uma função 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 [Criação de uma função para delegar permissões a um AWS serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) ou [Modificar uma função no Guia](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_modify.html) 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 confused deputy, consulte [Prevenção contra o ataque do “substituto confuso” em todos os serviços](cross-service-confused-deputy-prevention.md).  
Se você criar uma função de serviço, retorne ao AWS IoT console e anexe a função à sua Conta da AWS. É possível fazer isso no **perfil de serviço do Greengrass**, na página **Configurações**.

### Alterar a função de serviço do Greengrass (console)
<a name="update-greengrass-service-role-console"></a>

Use o procedimento a seguir para escolher uma função de serviço diferente do Greengrass para anexar à sua Conta da AWS na Região da AWS atualmente selecionada no console.

1. <a name="open-iot-console"></a>Navegue até o [console do AWS IoT](https://console.aws.amazon.com/iot).

1. <a name="open-iot-settings"></a>No painel de navegação, selecione **Configurações**.

1. Em **Função de serviço do Greengrass**, selecione **Change role (Mudar perfil)**.

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

1. Selecione a função de serviço do Greengrass a ser anexado.

1. Selecione **Anexar função**.

### Desanexar a função de serviço do Greengrass (console)
<a name="remove-greengrass-service-role-console"></a>

Use o procedimento a seguir para separar a função de serviço do Greengrass da AWS sua conta atual. Região da AWS Isso revoga as permissões AWS IoT Greengrass para acessar AWS serviços no atual Região da AWS.

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

1. <a name="open-iot-console"></a>Navegue até o [console do AWS IoT](https://console.aws.amazon.com/iot).

1. <a name="open-iot-settings"></a>No painel de navegação, selecione **Configurações**.

1. Em **Função de serviço do Greengrass**, selecione **Detach role (Desanexar função)**.

1. 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](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_delete.html) no *Manual do usuário do IAM*.  
Outras funções podem permitir AWS IoT Greengrass o acesso aos seus 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)
<a name="manage-service-role-cli"></a>

Nos procedimentos a seguir, presumimos que o AWS Command Line Interface esteja instalado e configurado para usar seu Conta da AWS. Para mais informações, consulte [Instalar, atualizar e desinstalar a AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/installing.html) e [Configuração da AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) no *Guia do usuário da AWS Command Line Interface *.

Você pode usar o AWS CLI para as seguintes tarefas de gerenciamento de funções:

**Topics**
+ [Obter a função de serviço do Greengrass (CLI)](#get-service-role)
+ [Criar a função de serviço do Greengrass (CLI)](#create-service-role)
+ [Remover a função de serviço do Greengrass (CLI)](#remove-service-role)

### Obter a função de serviço do Greengrass (CLI)
<a name="get-service-role"></a>

Use o procedimento a seguir para descobrir se uma função de serviço do Greengrass está associado à Conta da AWS em uma Região da AWS.
+ Obtenha a função de serviço. {{region}}Substitua pelo seu Região da AWS (por exemplo,`us-west-2`).

  ```
  aws greengrassv2 get-service-role-for-account --region {{region}}
  ```

  Se um perfil de serviço do Greengrass já estiver associado à sua conta, a solicitação retorna os metadados do perfil a seguir.

  ```
  {
    "associatedAt": "{{timestamp}}",
    "roleArn": "arn:aws:iam::{{account-id}}:role/{{path/role-name}}"
  }
  ```

  Se a solicitação não retornar metadados de função, será necessário criar o perfil de serviço (se ele não existir) e associá-lo à sua conta na Região da AWS.

### Criar a função de serviço do Greengrass (CLI)
<a name="create-service-role"></a>

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

**Como criar a função de serviço usando o IAM**

1. Crie uma função com uma política de confiança que AWS IoT Greengrass permita assumir 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 confused deputy, consulte [Prevenção contra o ataque do “substituto confuso” em todos os serviços](cross-service-confused-deputy-prevention.md).

------
#### [ Linux 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": {
           "ArnLike": {
             "aws:SourceArn": "arn:aws:greengrass:{{region}}:{{account-id}}:*"
           },
           "StringEquals": {
             "aws:SourceAccount": "{{account-id}}"
           }
         }
       }
     ]
   }'
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   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}}\"}}}]}"
   ```

------
#### [ PowerShell ]

   ```
   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}}"
           }
         }
       }
     ]
   }'
   ```

------

1. 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.

1. 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 a função de serviço à sua Conta da AWS**
+ Associe a função à sua conta. {{role-arn}}Substitua pelo ARN da função de serviço e {{region}} pelo seu Região da AWS (por exemplo,`us-west-2`).

  ```
  aws greengrassv2 associate-service-role-to-account --role-arn {{role-arn}} --region {{region}}
  ```

  Se a solicitação for bem-sucedida, ela retornará a resposta a seguir.

  ```
  {
    "associatedAt": "{{timestamp}}"
  }
  ```

### Remover a função de serviço do Greengrass (CLI)
<a name="remove-service-role"></a>

Use as etapas a seguir para desassociar a função de serviço do Greengrass de sua Conta da AWS.
+ Desassocie a função de serviço da conta. {{region}}Substitua pelo seu Região da AWS (por exemplo,`us-west-2`).

  ```
  aws greengrassv2 disassociate-service-role-from-account --region {{region}}
  ```

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

  ```
  {
    "disassociatedAt": "{{timestamp}}"
  }
  ```
**nota**  
Você deve excluir a função de serviço se não a estiver usando em nenhuma Região da AWS. Primeiro, use [https://docs.aws.amazon.com/cli/latest/reference/iam/delete-role-policy.html](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-role-policy.html) para desvincular a política gerenciada `AWSGreengrassResourceAccessRolePolicy` do perfil, depois use [https://docs.aws.amazon.com/cli/latest/reference/iam/delete-role.html](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-role.html) para excluir o perfil. Para obter mais informações sobre como excluir uma função, consulte [Excluir funções ou perfis de instância](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_delete.html) no *Manual do usuário do IAM*.

## Consulte também
<a name="service-role-see-also"></a>
+ [Criação de uma função para delegar permissões a um AWS serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) no Guia do *usuário do IAM*
+ [Modificando uma função](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_modify.html) no *Guia do usuário do IAM*
+ [Excluir funções ou perfis de instância](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_delete.html) no *Manual do usuário do IAM*.
+ AWS IoT Greengrass comandos na *Referência de AWS CLI Comandos*
  + [associate-service-role-to-conta](https://docs.aws.amazon.com/cli/latest/reference/greengrassv2/associate-service-role-to-account.html)
  + [disassociate-service-role-from-conta](https://docs.aws.amazon.com/cli/latest/reference/greengrassv2/disassociate-service-role-from-account.html)
  + [get-service-role-for-conta](https://docs.aws.amazon.com/cli/latest/reference/greengrassv2/get-service-role-for-account.html)
+ Comandos do IAM disponíveis na *Referência de comandos do AWS CLI *
  + [attach-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/attach-role-policy.html)
  + [create-role](https://docs.aws.amazon.com/cli/latest/reference/iam/create-role.html)
  + [delete-role](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-role.html)
  + [delete-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-role-policy.html)