

Aviso de fim do suporte: em 7 de outubro de 2026, AWS o suporte para o. AWS IoT Greengrass Version 1 Depois de 7 de outubro de 2026, você não poderá mais acessar os AWS IoT Greengrass V1 recursos. Para obter mais informações, visite [Migrar de AWS IoT Greengrass Version 1](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html).

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

# Gerenciamento de identidade e acesso para AWS IoT Greengrass
<a name="security-iam"></a>

AWS Identity and Access Management (IAM) é uma ferramenta AWS service (Serviço da AWS) que ajuda o administrador a controlar com segurança o acesso aos AWS recursos. Os administradores do IAM controlam quem pode ser *autenticado* (conectado) e *autorizado* (tem permissões) a usar AWS IoT Greengrass os recursos. O IAM é um AWS service (Serviço da AWS) que você pode usar sem custo adicional.

**nota**  
Este tópico descreve conceitos e atributos do IAM. Para obter informações sobre os recursos do IAM compatíveis com AWS IoT Greengrass, consulte[Como AWS IoT Greengrass funciona com o IAM](security_iam_service-with-iam.md).

## Público
<a name="security_iam_audience"></a>

A forma como você usa AWS Identity and Access Management (IAM) difere com base na sua função:
+ **Usuário do serviço**: solicite permissões ao seu administrador se você não conseguir acessar os atributos (consulte [Solução de problemas de identidade e acesso para AWS IoT Greengrass](security_iam_troubleshoot.md)).
+ **Administrador do serviço**: determine o acesso do usuário e envie solicitações de permissão (consulte [Como AWS IoT Greengrass funciona com o IAM](security_iam_service-with-iam.md))
+ **Administrador do IAM**: escreva políticas para gerenciar o acesso (consulte [Exemplos de políticas baseadas em identidade para AWS IoT Greengrass](security_iam_id-based-policy-examples.md))

## Autenticação com identidades
<a name="security_iam_authentication"></a>

A autenticação é a forma como você faz login AWS usando suas credenciais de identidade. Você deve estar autenticado como usuário do IAM ou assumindo uma função do IAM. Usuário raiz da conta da AWS

Você pode fazer login como uma identidade federada usando credenciais de uma fonte de identidade como Centro de Identidade do AWS IAM (IAM Identity Center), autenticação de login único ou credenciais. Google/Facebook Para ter mais informações sobre como fazer login, consulte [Como fazer login em sua Conta da AWS](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) no *Guia do usuário do Início de Sessão da AWS *.

Para acesso programático, AWS fornece um SDK e uma CLI para assinar solicitações criptograficamente. Para ter mais informações, consulte [AWS Signature Version 4 para solicitações de API](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) no *Guia do usuário do IAM*.

### Conta da AWS usuário root
<a name="security_iam_authentication-rootuser"></a>

 Ao criar um Conta da AWS, você começa com uma identidade de login chamada *usuário Conta da AWS raiz* que tem acesso completo a todos Serviços da AWS os recursos. É altamente recomendável não usar o usuário-raiz em tarefas diárias. Consulte as tarefas que exigem credenciais de usuário-raiz em [Tarefas que exigem credenciais de usuário-raiz](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks) no *Guia do usuário do IAM*. 

### Usuários e grupos do IAM
<a name="security_iam_authentication-iamuser"></a>

Um *[usuário do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)* é uma identidade com permissões específicas para uma única pessoa ou aplicação. É recomendável usar credenciais temporárias, em vez de usuários do IAM com credenciais de longo prazo. Para obter mais informações, consulte [Exigir que usuários humanos usem a federação com um provedor de identidade para acessar AWS usando credenciais temporárias](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp) no *Guia do usuário do IAM*.

Um [https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) especifica um conjunto de usuários do IAM e facilita o gerenciamento de permissões para grandes conjuntos de usuários. Para ter mais informações, consulte [Casos de uso de usuários do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/gs-identities-iam-users.html) no *Guia do usuário do IAM*.

### Perfis do IAM
<a name="security_iam_authentication-iamrole"></a>

Uma *[perfil do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)* é uma identidade com permissões específicas que oferece credenciais temporárias. Você pode assumir uma função [mudando de um usuário para uma função do IAM (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html) ou chamando uma operação de AWS API AWS CLI ou. Para saber mais, consulte [Métodos para assumir um perfil](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html) no *Manual do usuário do IAM*.

Os perfis do IAM são úteis para acesso de usuário federado, permissões de usuário do IAM temporárias, acesso entre contas, acesso entre serviços e aplicações em execução no Amazon EC2. Consulte mais informações em [Acesso a recursos entre contas no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) no *Guia do usuário do IAM*.

## Gerenciar o acesso usando políticas
<a name="security_iam_access-manage"></a>

Você controla o acesso AWS criando políticas e anexando-as a AWS identidades ou recursos. Uma política define permissões quando associada a uma identidade ou recurso. AWS avalia essas políticas quando um diretor faz uma solicitação. A maioria das políticas é armazenada AWS como documentos JSON. Para ter mais informações sobre documentos de política JSON, consulte [Visão geral das políticas JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json) no *Guia do usuário do IAM*.

Por meio de políticas, os administradores especificam quem tem acesso a que, definindo qual **entidade principal** pode realizar **ações** em quais **recursos** e sob quais **condições**.

Por padrão, usuários e perfis não têm permissões. Um administrador do IAM cria políticas do IAM e as adiciona aos perfis, os quais os usuários podem então assumir. As políticas do IAM definem permissões, independentemente do método usado para realizar a operação.

### Políticas baseadas em identidade
<a name="security_iam_access-manage-id-based-policies"></a>

As políticas baseadas em identidade são documentos de políticas de permissão JSON que você anexa a uma identidade (usuário, grupo ou perfil). Essas políticas controlam quais ações as identidades podem realizar, em quais recursos e sob quais condições. Para saber como criar uma política baseada em identidade, consulte [Definir permissões personalizadas do IAM com as políticas gerenciadas pelo cliente](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) no *Guia do Usuário do IAM*.

As políticas baseadas em identidade podem ser políticas *em linha* (incorporadas diretamente em uma única identidade) ou *políticas gerenciadas* (políticas autônomas anexadas a várias identidades). Para saber como escolher entre uma política gerenciada e políticas em linha, consulte [Escolher entre políticas gerenciadas e políticas em linha](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-choosing-managed-or-inline.html) no *Guia do usuário do IAM*.

### Políticas baseadas em recursos
<a name="security_iam_access-manage-resource-based-policies"></a>

Políticas baseadas em recursos são documentos de políticas JSON que você anexa a um recurso. Entre os exemplos estão *políticas de confiança de perfil* do IAM e *políticas de bucket* do Amazon S3. Em serviços compatíveis com políticas baseadas em recursos, os administradores de serviço podem usá-las para controlar o acesso a um recurso específico. É necessário [especificar uma entidade principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) em uma política baseada em recursos.

Políticas baseadas em recursos são políticas em linha localizadas nesse serviço. Você não pode usar políticas AWS gerenciadas do IAM em uma política baseada em recursos.

### Listas de controle de acesso (ACLs)
<a name="security_iam_access-manage-acl"></a>

As listas de controle de acesso (ACLs) controlam quais diretores (membros da conta, usuários ou funções) têm permissões para acessar um recurso. ACLs são semelhantes às políticas baseadas em recursos, embora não usem o formato de documento de política JSON.

O Amazon S3 e o AWS WAF Amazon VPC são exemplos de serviços que oferecem suporte. ACLs Para saber mais ACLs, consulte a [visão geral da lista de controle de acesso (ACL)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html) no *Guia do desenvolvedor do Amazon Simple Storage Service*.

### Outros tipos de política
<a name="security_iam_access-manage-other-policies"></a>

AWS oferece suporte a tipos de políticas adicionais que podem definir o máximo de permissões concedidas por tipos de políticas mais comuns:
+ **Limites de permissões**: definem o número máximo de permissões que uma política baseada em identidade pode conceder a uma entidade do IAM. Para saber mais sobre limites de permissões, consulte [Limites de permissões para identidades do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) no *Guia do usuário do IAM*.
+ **Políticas de controle de serviço (SCPs)** — Especifique as permissões máximas para uma organização ou unidade organizacional em AWS Organizations. Para saber mais, consulte [Políticas de controle de serviço](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) no *Guia do usuário do AWS Organizations *.
+ **Políticas de controle de recursos (RCPs)** — Defina o máximo de permissões disponíveis para recursos em suas contas. Para obter mais informações, consulte [Políticas de controle de recursos (RCPs)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html) no *Guia AWS Organizations do usuário*.
+ **Políticas de sessão**: políticas avançadas transmitidas como um parâmetro durante a criação de uma sessão temporária para um perfil ou um usuário federado. Para saber mais, consulte [Políticas de sessão](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) no *Guia do usuário do IAM*.

### Vários tipos de política
<a name="security_iam_access-manage-multiple-policies"></a>

Quando vários tipos de política são aplicáveis a uma solicitação, é mais complicado compreender as permissões resultantes. Para saber como AWS determinar se uma solicitação deve ser permitida quando vários tipos de políticas estão envolvidos, consulte [Lógica de avaliação de políticas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html) no *Guia do usuário do IAM*.

## Consulte também
<a name="security_iam_service-see-also"></a>
+ [Como AWS IoT Greengrass funciona com o IAM](security_iam_service-with-iam.md)
+ [Exemplos de políticas baseadas em identidade para AWS IoT Greengrass](security_iam_id-based-policy-examples.md)
+ [Solução de problemas de identidade e acesso para AWS IoT Greengrass](security_iam_troubleshoot.md)

# Como AWS IoT Greengrass funciona com o IAM
<a name="security_iam_service-with-iam"></a>

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


| Recurso do IAM | Compatível com o Greengrass? | 
| --- | --- | 
| [Políticas baseadas em identidade com permissões em nível de recurso](#security_iam_service-with-iam-id-based-policies) | Sim | 
| [Políticas baseadas em recurso](#security_iam_service-with-iam-resource-based-policies) | Não | 
| [Listas de controle de acesso (ACLs)](#security_iam_service-with-iam-acls) | Não | 
| [Autorização baseada em tags](#security_iam_service-with-iam-tags) | Não | 
| [Credenciais temporárias](#security_iam_service-with-iam-roles-tempcreds) | Sim | 
| [Perfis vinculados a serviço](#security_iam_service-with-iam-roles-service-linked) | Não | 
| [Perfis de serviço](#security_iam_service-with-iam-roles-service-linked) | Sim | 

Para uma visão de alto nível de como outros AWS serviços funcionam com o IAM, consulte [AWS os serviços que funcionam com o IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) no *Guia do usuário do IAM*.

## Políticas baseadas em identidade para AWS IoT Greengrass
<a name="security_iam_service-with-iam-id-based-policies"></a>

Com as políticas baseadas em identidade do IAM, 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 usados em uma política, consulte [Referência de elementos de política JSON do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) no *Guia do usuário do IAM*.

### Ações
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

Os administradores podem usar políticas AWS JSON 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 `Action` de uma política JSON descreve as ações que podem ser usadas para permitir ou negar acesso em uma política. 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 operação da `ListGroups` API para listar os grupos Conta da AWS, você inclui a `greengrass:ListGroups` ação na política dessa pessoa. 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](security-best-practices.md#least-privilege).

Para ver a lista completa de AWS IoT Greengrass ações, consulte [Ações definidas por AWS IoT Greengrass](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsiotgreengrass.html#awsiotgreengrass-actions-as-permissions) no *Guia do usuário do IAM*.

### Recursos
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

Os administradores podem usar políticas AWS JSON 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 de política JSON `Resource` especifica o objeto ou os objetos aos quais a ação se aplica. Como prática recomendada, especifique um recurso usando seu [nome do recurso da Amazon (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html). Para ações que não oferecem compatibilidade com permissões em nível de recurso, use um curinga (\$1) 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 compatíveis em nível de recurso para AWS IoT Greengrass ações, consulte Ações [definidas por AWS IoT Greengrass](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsiotgreengrass.html#awsiotgreengrass-actions-as-permissions) no Guia do usuário do *IAM*.


| Recurso | ARN | 
| --- | --- | 
|   [https://docs.aws.amazon.com/greengrass/v1/apireference/listgroups-get.html](https://docs.aws.amazon.com/greengrass/v1/apireference/listgroups-get.html)  |  arn:\$1\$1Partition\$1:greengrass:\$1\$1Region\$1:\$1\$1Account\$1:/greengrass/groups/\$1\$1GroupId\$1  | 
|   [https://docs.aws.amazon.com/greengrass/v1/apireference/listgroupversions-get.html](https://docs.aws.amazon.com/greengrass/v1/apireference/listgroupversions-get.html)  |  arn:\$1\$1Partition\$1:greengrass:\$1\$1Region\$1:\$1\$1Account\$1:/greengrass/groups/\$1\$1GroupId\$1/versions/\$1\$1VersionId\$1  | 
|   [https://docs.aws.amazon.com/greengrass/v1/apireference/listgroupcertificateauthorities-get.html](https://docs.aws.amazon.com/greengrass/v1/apireference/listgroupcertificateauthorities-get.html)  |  arn:\$1\$1Partition\$1:greengrass:\$1\$1Region\$1:\$1\$1Account\$1:/greengrass/groups/\$1\$1GroupId\$1/certificateauthorities/\$1\$1CertificateAuthorityId\$1  | 
|   [https://docs.aws.amazon.com/greengrass/v1/apireference/listdeployments-get.html](https://docs.aws.amazon.com/greengrass/v1/apireference/listdeployments-get.html)  |  arn:\$1\$1Partition\$1:greengrass:\$1\$1Region\$1:\$1\$1Account\$1:/greengrass/groups/\$1\$1GroupId\$1/deployments/\$1\$1DeploymentId\$1  | 
|   [https://docs.aws.amazon.com/greengrass/v1/apireference/listbulkdeployments-get.html](https://docs.aws.amazon.com/greengrass/v1/apireference/listbulkdeployments-get.html)  |  arn:\$1\$1Partition\$1:greengrass:\$1\$1Region\$1:\$1\$1Account\$1:/greengrass/bulk/deployments/\$1\$1BulkDeploymentId\$1  | 
|   [https://docs.aws.amazon.com/greengrass/v1/apireference/listconnectordefinitions-get.html](https://docs.aws.amazon.com/greengrass/v1/apireference/listconnectordefinitions-get.html)  |  arn:\$1\$1Partition\$1:greengrass:\$1\$1Region\$1:\$1\$1Account\$1:/greengrass/definition/connectors/\$1\$1ConnectorDefinitionId\$1  | 
|   [https://docs.aws.amazon.com/greengrass/v1/apireference/listconnectordefinitionversions-get.html](https://docs.aws.amazon.com/greengrass/v1/apireference/listconnectordefinitionversions-get.html)  |  arn:\$1\$1Partition\$1:greengrass:\$1\$1Region\$1:\$1\$1Account\$1:/greengrass/definition/connectors/\$1\$1ConnectorDefinitionId\$1/versions/\$1\$1VersionId\$1  | 
|   [https://docs.aws.amazon.com/greengrass/v1/apireference/listcoredefinitions-get.html](https://docs.aws.amazon.com/greengrass/v1/apireference/listcoredefinitions-get.html)  |  arn:\$1\$1Partition\$1:greengrass:\$1\$1Region\$1:\$1\$1Account\$1:/greengrass/definition/cores/\$1\$1CoreDefinitionId\$1  | 
|   [https://docs.aws.amazon.com/greengrass/v1/apireference/listcoredefinitionversions-get.html](https://docs.aws.amazon.com/greengrass/v1/apireference/listcoredefinitionversions-get.html)  |  arn:\$1\$1Partition\$1:greengrass:\$1\$1Region\$1:\$1\$1Account\$1:/greengrass/definition/cores/\$1\$1CoreDefinitionId\$1/versions/\$1\$1VersionId\$1  | 
|   [https://docs.aws.amazon.com/greengrass/v1/apireference/listdevicedefinitions-get.html](https://docs.aws.amazon.com/greengrass/v1/apireference/listdevicedefinitions-get.html)  |  arn:\$1\$1Partition\$1:greengrass:\$1\$1Region\$1:\$1\$1Account\$1:/greengrass/definition/devices/\$1\$1DeviceDefinitionId\$1  | 
|   [https://docs.aws.amazon.com/greengrass/v1/apireference/listdevicedefinitionversions-get.html](https://docs.aws.amazon.com/greengrass/v1/apireference/listdevicedefinitionversions-get.html)  |  arn:\$1\$1Partition\$1:greengrass:\$1\$1Region\$1:\$1\$1Account\$1:/greengrass/definition/devices/\$1\$1DeviceDefinitionId\$1/versions/\$1\$1VersionId\$1  | 
|   [https://docs.aws.amazon.com/greengrass/v1/apireference/listfunctiondefinitions-get.html](https://docs.aws.amazon.com/greengrass/v1/apireference/listfunctiondefinitions-get.html)  |  arn:\$1\$1Partition\$1:greengrass:\$1\$1Region\$1:\$1\$1Account\$1:/greengrass/definition/functions/\$1\$1FunctionDefinitionId\$1  | 
|   [https://docs.aws.amazon.com/greengrass/v1/apireference/listfunctiondefinitionversions-get.html](https://docs.aws.amazon.com/greengrass/v1/apireference/listfunctiondefinitionversions-get.html)  |  arn:\$1\$1Partition\$1:greengrass:\$1\$1Region\$1:\$1\$1Account\$1:/greengrass/definition/functions/\$1\$1FunctionDefinitionId\$1/versions/\$1\$1VersionId\$1  | 
|   [https://docs.aws.amazon.com/greengrass/v1/apireference/listloggerdefinitions-get.html](https://docs.aws.amazon.com/greengrass/v1/apireference/listloggerdefinitions-get.html)  |  arn:\$1\$1Partition\$1:greengrass:\$1\$1Region\$1:\$1\$1Account\$1:/greengrass/definition/loggers/\$1\$1LoggerDefinitionId\$1  | 
|   [https://docs.aws.amazon.com/greengrass/v1/apireference/listloggerdefinitionversions-get.html](https://docs.aws.amazon.com/greengrass/v1/apireference/listloggerdefinitionversions-get.html)  |  arn:\$1\$1Partition\$1:greengrass:\$1\$1Region\$1:\$1\$1Account\$1:/greengrass/definition/loggers/\$1\$1LoggerDefinitionId\$1/versions/\$1\$1VersionId\$1  | 
|   [https://docs.aws.amazon.com/greengrass/v1/apireference/listresourcedefinitions-get.html](https://docs.aws.amazon.com/greengrass/v1/apireference/listresourcedefinitions-get.html)  |  arn:\$1\$1Partition\$1:greengrass:\$1\$1Region\$1:\$1\$1Account\$1:/greengrass/definition/resources/\$1\$1ResourceDefinitionId\$1  | 
|   [https://docs.aws.amazon.com/greengrass/v1/apireference/listresourcedefinitionversions-get.html](https://docs.aws.amazon.com/greengrass/v1/apireference/listresourcedefinitionversions-get.html)  |  arn:\$1\$1Partition\$1:greengrass:\$1\$1Region\$1:\$1\$1Account\$1:/greengrass/definition/resources/\$1\$1ResourceDefinitionId\$1/versions/\$1\$1VersionId\$1  | 
|   [https://docs.aws.amazon.com/greengrass/v1/apireference/listsubscriptiondefinitions-get.html](https://docs.aws.amazon.com/greengrass/v1/apireference/listsubscriptiondefinitions-get.html)  |  arn:\$1\$1Partition\$1:greengrass:\$1\$1Region\$1:\$1\$1Account\$1:/greengrass/definition/subscriptions/\$1\$1SubscriptionDefinitionId\$1  | 
|   [https://docs.aws.amazon.com/greengrass/v1/apireference/listsubscriptiondefinitionversions-get.html](https://docs.aws.amazon.com/greengrass/v1/apireference/listsubscriptiondefinitionversions-get.html)  |  arn:\$1\$1Partition\$1:greengrass:\$1\$1Region\$1:\$1\$1Account\$1:/greengrass/definition/subscriptions/\$1\$1SubscriptionDefinitionId\$1/versions/\$1\$1VersionId\$1  | 
|   [https://docs.aws.amazon.com/greengrass/v1/apireference/definitions-connectivityinfo.html](https://docs.aws.amazon.com/greengrass/v1/apireference/definitions-connectivityinfo.html)  |  arn:\$1\$1Partition\$1:greengrass:\$1\$1Region\$1:\$1\$1Account\$1:/greengrass/things/\$1\$1ThingName\$1/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 formatos ARN, consulte [Amazon Resource Names (ARNs) e namespaces AWS de serviços](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) no. *Referência geral da Amazon Web Services*

### Chaves de condição
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

Os administradores podem usar políticas AWS JSON 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` especifica quando as instruções são executadas com base em critérios definidos. É possível criar expressões condicionais que usem [agentes de condição](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html), como “igual a” ou “menor que”, para fazer a condição da política corresponder aos valores na solicitação. Para ver todas as chaves de condição AWS globais, consulte as [chaves de contexto de condição AWS global](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) no *Guia do usuário do IAM*.

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


| Chave | Description | 
| --- | --- | 
| aws:CurrentTime  | Filtra o acesso verificando date/time as condições da data e hora atuais. | 
| aws:EpochTime | Filtra o acesso verificando date/time as condições da data e hora atuais na época ou na hora 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 a 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/\$1\$1TagKey\$1 | Filtra as solicitações de criação com base no conjunto de valores permitidos para cada uma das tags obrigatórias. | 
| aws:ResourceTag/\$1\$1TagKey\$1 | 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. | 
| 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 [Chaves de contexto de condição global da AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) no *Guia do usuário do IAM*.

### Exemplos
<a name="security_iam_service-with-iam-id-based-policies-examples"></a>



Para ver exemplos de políticas AWS IoT Greengrass baseadas em identidade, consulte. [Exemplos de políticas baseadas em identidade para AWS IoT Greengrass](security_iam_id-based-policy-examples.md)

## Políticas baseadas em recursos para AWS IoT Greengrass
<a name="security_iam_service-with-iam-resource-based-policies"></a>

AWS IoT Greengrass não oferece suporte a políticas [baseadas em recursos](security-iam.md#security_iam_access-manage-resource-based-policies).

## Listas de controle de acesso (ACLs)
<a name="security_iam_service-with-iam-acls"></a>

AWS IoT Greengrass não suporta [ACLs](security-iam.md#security_iam_access-manage-acl).

## Autorização baseada em AWS IoT Greengrass tags
<a name="security_iam_service-with-iam-tags"></a>

AWS IoT Greengrass não oferece suporte à autorização baseada em tags.

## Funções do IAM para AWS IoT Greengrass
<a name="security_iam_service-with-iam-roles"></a>

Uma [função do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) é uma entidade dentro da sua Conta da AWS que tem permissões específicas.

### Usando credenciais temporárias com AWS IoT Greengrass
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

Credenciais temporárias são usadas para fazer login com federação, assumir um perfil do IAM ou assumir uma função entre contas. Você obtém credenciais de segurança temporárias chamando operações de AWS STS API, como [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)ou [GetFederationToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html).

No núcleo do Greengrass, credenciais temporárias para a [função de grupo](group-role.md) 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 o AWS SDK faz isso por você.

### Perfis vinculados ao serviço
<a name="security_iam_service-with-iam-roles-service-linked"></a>

AWS IoT Greengrass não oferece suporte a funções [vinculadas a serviços](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role).

### Perfis de serviço
<a name="security_iam_service-with-iam-roles-service"></a>

Esse atributo permite que um serviço assuma um [perfil de serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-role) em seu nome. O perfil permite que o serviço acesse recursos em outros serviços para concluir uma ação em seu nome. Os perfis de serviço aparecem em sua conta do IAM e são de propriedade da conta. Isso significa que um administrador do IAM pode alterar as permissões para esse perfil. 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 [Função de serviço do Greengrass](service-role.md).

### Escolha de uma função do IAM no AWS IoT Greengrass console
<a name="security_iam_service-with-iam-roles-choose"></a>

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 funções do IAM 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 [Função de serviço do Greengrass](service-role.md).
+ 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.](group-role.md).

# Função de serviço do Greengrass
<a name="service-role"></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. Isso possibilita AWS IoT Greengrass a execução de tarefas essenciais, como recuperar suas AWS Lambda funções e gerenciar AWS IoT sombras.

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. Essa política é mantida AWS e define o conjunto de permissões que você AWS IoT Greengrass usa para acessar seus AWS recursos.

Você pode reutilizar a mesma função de serviço do Greengrass Região da AWS entre s, mas deve associá-la à sua conta em Região da AWS todos os lugares em que usa. AWS IoT Greengrass A implantação do grupo falhará se a função de serviço não existir na região atual Conta da AWS e na região.

As seções a seguir descrevem como criar e gerenciar a função de serviço do Greengrass no Console de gerenciamento da AWS ou. AWS CLI
+ [Gerenciar a função de serviço (console)](#manage-service-role-console)
+ [Gerenciar a função de serviço (CLI)](#manage-service-role-cli)

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

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

O AWS IoT console facilita o gerenciamento de sua função de serviço no Greengrass. Por exemplo, quando você cria ou implanta um grupo do Greengrass, o console verifica se você Conta da AWS está vinculado a uma função de serviço do Greengrass na Região da AWS que está atualmente selecionada no console. 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-service-role-console).

Você pode usar o AWS IoT console para as seguintes tarefas de gerenciamento de funções:
+ [Encontrar a função de serviço do Greengrass](#get-service-role-console)
+ [Criar a função de serviço do Greengrass](#create-service-role-console)
+ [Alterar a função de serviço do Greengrass](#update-service-role-console)
+ [Desanexar a função de serviço do Greengrass](#remove-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-service-role-console"></a>

Use as etapas a seguir para encontrar a função de serviço que AWS IoT Greengrass está sendo usada no momento Região da AWS.

1. <a name="iot-settings"></a>No painel de navegação do [console do AWS IoT](https://console.aws.amazon.com/iot/), 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 exibida uma função de serviço, deixe que o console crie ou configure uma para você. Para obter mais informações, consulte [Criar a função de serviço do Greengrass](#create-service-role-console).

 

### Criar a função de serviço do Greengrass (console)
<a name="create-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\$1ServiceRole | 
| 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 a [configuração do dispositivo do Greengrass](quick-start.md) criar o perfil de serviço, o nome da função será `GreengrassServiceRole_random-string`.

Quando você cria ou implanta um grupo do Greengrass a partir do AWS IoT console, o console verifica se uma função de serviço do Greengrass está associada à sua Conta da AWS no Região da AWS que está atualmente selecionado no console. 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 do problema do substituto confuso entre 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 ao grupo. É possível fazer isso na **função de serviço do Greengrass**, na página **Configurações** do grupo.

 

### Alterar a função de serviço do Greengrass (console)
<a name="update-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="iot-settings"></a>No painel de navegação do [console do AWS IoT](https://console.aws.amazon.com/iot/), 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**.

**nota**  
Para permitir que o console crie uma função 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 a função de serviço do Greengrass (console)
<a name="remove-service-role-console"></a>

Use o procedimento a seguir para separar a função de serviço do Greengrass da Conta da AWS sua na Região da AWS atualmente selecionada no console. 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="iot-settings"></a>No painel de navegação do [console do AWS IoT](https://console.aws.amazon.com/iot/), 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 a função de serviço do Greengrass (CLI)
<a name="manage-service-role-cli"></a>

Nos procedimentos a seguir, presumimos que o AWS CLI esteja instalado e configurado para usar sua Conta da AWS ID. Para obter mais informações, consulte [Instalando a interface de linha de AWS comando](https://docs.aws.amazon.com/cli/latest/userguide/installing.html) e [Configurando a AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) no *Guia do AWS Command Line Interface Usuário*.

Você pode usar o AWS CLI para as seguintes tarefas de gerenciamento de funções:
+ [Obter a função de serviço do Greengrass](#get-service-role)
+ [Criar a função de serviço do Greengrass](#create-service-role)
+ [Remover a função de serviço do Greengrass](#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á associada à sua Conta da AWS em um. 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 Greengrass get-service-role-for-account --region region
  ```

  Se uma função 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 a função de serviço (se ele não existir) e associá-la á 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 a 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 do problema do substituto confuso entre serviços](cross-service-confused-deputy-prevention.md).

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

------

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 greengrass associate-service-role-to-account --role-arn role-arn --region region
  ```

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

  ```
  {
    "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 greengrass 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/greengrass/associate-service-role-to-account.html)
  + [disassociate-service-role-from-conta](https://docs.aws.amazon.com/cli/latest/reference/greengrass/disassociate-service-role-from-account.html)
  + [get-service-role-for-conta](https://docs.aws.amazon.com/cli/latest/reference/greengrass/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)

# Função do grupo do Greengrass.
<a name="group-role"></a>

A função de grupo do Greengrass é um perfil do IAM que autoriza o código em execução em um núcleo do Greengrass a acessar seus recursos da AWS . Você cria a função e gerencia as permissões no AWS Identity and Access Management (IAM) e anexa a função ao seu grupo do Greengrass. Um grupo do Greengrass tem uma função de grupo única. Para adicionar ou alterar permissões, você pode anexar uma função diferente ou alterar as políticas do IAM anexadas à função.

A função deve ser definida AWS IoT Greengrass como uma entidade confiável. Dependendo do seu caso de negócio, a função de grupo pode conter políticas do IAM que definem:
+ Permissões para funções [Lambda](lambda-functions.md) definidas pelo usuário acessarem AWS serviços.
+ Permissões para [conectores](connectors.md) acessarem AWS serviços.
+ Permissões para que o [gerenciador de streams](stream-manager.md) exporte streams para o Kinesis Data Streams AWS IoT Analytics e o Kinesis Data Streams.
+ Permissões para permitir o [registro em log do CloudWatch ](greengrass-logs-overview.md).

As seções a seguir descrevem como anexar ou desanexar uma função de grupo do Greengrass no Console de gerenciamento da AWS ou. AWS CLI
+ [Gerenciar a função de grupo (console)](#manage-group-role-console)
+ [Gerenciar a função de grupo (CLI)](#manage-group-role-cli)

**nota**  
Além da função de grupo que autoriza o acesso a partir do núcleo do Greengrass, você pode atribuir uma função de [serviço do Greengrass](service-role.md) que AWS IoT Greengrass permite AWS acessar recursos em seu nome.

## Gerenciar a função de grupo do Greengrass (console)
<a name="manage-group-role-console"></a>

Você pode usar o AWS IoT console para as seguintes tarefas de gerenciamento de funções:
+ [Encontrar a função de grupo do Greengrass](#get-group-role-console)
+ [Adicionar ou alterar a função de grupo do Greengrass](#add-or-change-group-role-console)
+ [Remover a função de grupo do Greengrass](#remove-group-role-console)

**nota**  
O usuário que está conectado ao console deve ter permissões para gerenciar a função.

 

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

Siga estas etapas para encontrar a função anexada a um grupo do Greengrass.

1. <a name="console-gg-groups"></a>No painel de navegação do AWS IoT console, em **Gerenciar**, expanda dispositivos **Greengrass** e **escolha Grupos (**V1).

1. <a name="group-choose-target-group"></a>Selecione o grupo de destino.

1. <a name="shared-group-settings"></a>Na página de configuração do grupo, selecione **Visualizar configurações**.

Se uma função estiver anexada ao grupo, ela será exibida em **Função de grupo**.

 

### Adicionar ou alterar a função de grupo do Greengrass (console)
<a name="add-or-change-group-role-console"></a>

Siga estas etapas para escolher uma função do IAM Conta da AWS para adicionar a um grupo do Greengrass.

Uma função de grupo tem os seguintes requisitos:
+ AWS IoT Greengrass definido como uma entidade confiável.
+ As políticas de permissão anexadas à função devem conceder aos seus AWS recursos as permissões exigidas pelas funções e conectores do Lambda no grupo e pelos componentes do sistema Greengrass. 

**nota**  
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 do problema do substituto confuso entre serviços](cross-service-confused-deputy-prevention.md).

Use o console do IAM para criar e configurar o perfil e suas permissões. Para obter etapas que criam o exemplo de um perfil que permite acesso a uma tabela do Amazon DynamoDB, consulte [Configurar a função do grupo](config-iam-roles.md). Para ver as etapas gerais, consulte [Criação de uma função para um AWS serviço (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html#roles-creatingrole-service-console) no *Guia do usuário do IAM*.

 

Depois que a função for configurada, use o AWS IoT console para adicionar a função ao grupo.

**nota**  
Este procedimento é necessário apenas para escolher uma função para o grupo. Não é necessário depois de alterar as permissões da função de grupo selecionada no momento.

1. <a name="console-gg-groups"></a>No painel de navegação do AWS IoT console, em **Gerenciar**, expanda dispositivos **Greengrass** e **escolha Grupos (**V1).

1. <a name="group-choose-target-group"></a>Selecione o grupo de destino.

1. <a name="shared-group-settings"></a>Na página de configuração do grupo, selecione **Visualizar configurações**.

1. Em **Função do grupo**, selecione adicionar ou alterar a função:
   + Para adicionar a função, selecione **Associar função** e, em seguida, selecione sua função na lista de funções. Essas são as suas funções Conta da AWS que se definem AWS IoT Greengrass como uma entidade confiável.
   + Para escolher uma função diferente, selecione **Editar função** e, em seguida, selecione sua função na lista de funções.

1. Selecione **Salvar**.

 

### Remover a função de grupo do Greengrass (console)
<a name="remove-group-role-console"></a>

Siga estas etapas para separar a função de um grupo do Greengrass.

1. <a name="console-gg-groups"></a>No painel de navegação do AWS IoT console, em **Gerenciar**, expanda dispositivos **Greengrass** e **escolha Grupos (**V1).

1. <a name="group-choose-target-group"></a>Selecione o grupo de destino.

1. <a name="shared-group-settings"></a>Na página de configuração do grupo, selecione **Visualizar configurações**.

1. Em **Função do grupo**, selecione **Desassociar função**. 

1. Na caixa de diálogo de confirmação, selecione **Desassociar função**. Esta etapa remove a função do grupo, mas não exclui a função. Se você quiser excluir a função, use o console do IAM.

## Gerenciar a função de grupo do Greengrass (CLI)
<a name="manage-group-role-cli"></a>

Você pode usar o AWS CLI para as seguintes tarefas de gerenciamento de funções:
+ [Obter a função de grupo do Greengrass](#get-group-role)
+ [Criar a função de grupo do Greengrass](#create-group-role)
+ [Remover a função de grupo do Greengrass](#remove-group-role)

 

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

Siga estas etapas para descobrir se um grupo do Greengrass tem uma função associada.

1. <a name="cli-list-groups"></a>Obtenha o ID do grupo-alvo na lista de seus grupos.

   ```
   aws greengrass list-groups
   ```

   Esta é uma resposta de exemplo do `list-groups`. Cada grupo na resposta inclui uma propriedade `Id` que contém o ID do grupo.

   ```
   {
       "Groups": [
           {
               "LatestVersionArn": "arn:aws:us-west-2:123456789012:/greengrass/groups/00dedaaa-ac16-484d-ad77-c3eedEXAMPLE/versions/4cbc3f07-fc5e-48c4-a50e-7d356EXAMPLE",
               "Name": "MyFirstGroup",
               "LastUpdatedTimestamp": "2019-11-11T05:47:31.435Z",
               "LatestVersion": "4cbc3f07-fc5e-48c4-a50e-7d356EXAMPLE",
               "CreationTimestamp": "2019-11-11T05:47:31.435Z",
               "Id": "00dedaaa-ac16-484d-ad77-c3eedEXAMPLE",
               "Arn": "arn:aws:us-west-2:123456789012:/greengrass/groups/00dedaaa-ac16-484d-ad77-c3eedEXAMPLE"
           },
           {
               "LatestVersionArn": "arn:aws:us-west-2:123456789012:/greengrass/groups/036ceaf9-9319-4716-ba2a-237f9EXAMPLE/versions/8fe9e8ec-64d1-4647-b0b0-01dc8EXAMPLE",
               "Name": "GreenhouseSensors",
               "LastUpdatedTimestamp": "2020-01-07T19:58:36.774Z",
               "LatestVersion": "8fe9e8ec-64d1-4647-b0b0-01dc8EXAMPLE",
               "CreationTimestamp": "2020-01-07T19:58:36.774Z",
               "Id": "036ceaf9-9319-4716-ba2a-237f9EXAMPLE",
               "Arn": "arn:aws:us-west-2:123456789012:/greengrass/groups/036ceaf9-9319-4716-ba2a-237f9EXAMPLE"
           },
           ...
       ]
   }
   ```

   Para obter mais informações, incluindo exemplos que usam a opção `query` para filtrar resultados, consulte [Obter o ID do grupo](deployments.md#api-get-group-id).

1. <a name="cli-list-groups-copy-id"></a>Copie da saída o `Id` do grupo de destino.

1. Obtenha a função de grupo. *group-id*Substitua pelo ID do grupo-alvo.

   ```
   aws greengrass get-associated-role --group-id group-id
   ```

   Se uma função estiver associada ao seu grupo do Greengrass, os seguintes metadados de função serão retornados.

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

   Se o seu grupo não tiver uma função associada, o seguinte erro será retornado.

   ```
   An error occurred (404) when calling the GetAssociatedRole operation: You need to attach an IAM role to this deployment group.
   ```

 

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

Siga estas etapas para criar uma função e associá-la a um grupo do Greengrass.

**Para criar a função de grupo usando o IAM**

1. Crie a 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 `MyGreengrassGroupRole`, 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 do problema do substituto confuso entre serviços](cross-service-confused-deputy-prevention.md).

------
#### [ Linux, macOS, or Unix ]

   ```
   aws iam create-role --role-name MyGreengrassGroupRole --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:/greengrass/groups/group-id"
           }
         }
       }
     ]
   }'
   ```

------
#### [ Windows command prompt ]

   ```
   aws iam create-role --role-name MyGreengrassGroupRole --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:/greengrass/groups/group-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 ao seu grupo.

1. Anexe políticas gerenciadas ou em linha à função para dar suporte ao seu caso de negócio. Por exemplo, se uma função do Lambda definida pelo usuário ler do Amazon S3, você pode anexar a política gerenciada `AmazonS3ReadOnlyAccess` à função.

   ```
   aws iam attach-role-policy --role-name MyGreengrassGroupRole --policy-arn arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess
   ```

   Se for bem-sucedido, nenhuma resposta será retornada.

 

**Como associar a função ao seu grupo do Greengrass**

1. <a name="cli-list-groups"></a>Obtenha o ID do grupo-alvo na lista de seus grupos.

   ```
   aws greengrass list-groups
   ```

   Esta é uma resposta de exemplo do `list-groups`. Cada grupo na resposta inclui uma propriedade `Id` que contém o ID do grupo.

   ```
   {
       "Groups": [
           {
               "LatestVersionArn": "arn:aws:us-west-2:123456789012:/greengrass/groups/00dedaaa-ac16-484d-ad77-c3eedEXAMPLE/versions/4cbc3f07-fc5e-48c4-a50e-7d356EXAMPLE",
               "Name": "MyFirstGroup",
               "LastUpdatedTimestamp": "2019-11-11T05:47:31.435Z",
               "LatestVersion": "4cbc3f07-fc5e-48c4-a50e-7d356EXAMPLE",
               "CreationTimestamp": "2019-11-11T05:47:31.435Z",
               "Id": "00dedaaa-ac16-484d-ad77-c3eedEXAMPLE",
               "Arn": "arn:aws:us-west-2:123456789012:/greengrass/groups/00dedaaa-ac16-484d-ad77-c3eedEXAMPLE"
           },
           {
               "LatestVersionArn": "arn:aws:us-west-2:123456789012:/greengrass/groups/036ceaf9-9319-4716-ba2a-237f9EXAMPLE/versions/8fe9e8ec-64d1-4647-b0b0-01dc8EXAMPLE",
               "Name": "GreenhouseSensors",
               "LastUpdatedTimestamp": "2020-01-07T19:58:36.774Z",
               "LatestVersion": "8fe9e8ec-64d1-4647-b0b0-01dc8EXAMPLE",
               "CreationTimestamp": "2020-01-07T19:58:36.774Z",
               "Id": "036ceaf9-9319-4716-ba2a-237f9EXAMPLE",
               "Arn": "arn:aws:us-west-2:123456789012:/greengrass/groups/036ceaf9-9319-4716-ba2a-237f9EXAMPLE"
           },
           ...
       ]
   }
   ```

   Para obter mais informações, incluindo exemplos que usam a opção `query` para filtrar resultados, consulte [Obter o ID do grupo](deployments.md#api-get-group-id).

1. <a name="cli-list-groups-copy-id"></a>Copie da saída o `Id` do grupo de destino.

1. Associe a função ao grupo. *group-id*Substitua pelo ID do grupo-alvo e *role-arn* pelo ARN da função do grupo.

   ```
   aws greengrass associate-role-to-group --group-id group-id --role-arn role-arn
   ```

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

   ```
   {
     "AssociatedAt": "timestamp"
   }
   ```

 

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

Siga estas etapas para desassociar a função de grupo do seu grupo do Greengrass.

1. <a name="cli-list-groups"></a>Obtenha o ID do grupo-alvo na lista de seus grupos.

   ```
   aws greengrass list-groups
   ```

   Esta é uma resposta de exemplo do `list-groups`. Cada grupo na resposta inclui uma propriedade `Id` que contém o ID do grupo.

   ```
   {
       "Groups": [
           {
               "LatestVersionArn": "arn:aws:us-west-2:123456789012:/greengrass/groups/00dedaaa-ac16-484d-ad77-c3eedEXAMPLE/versions/4cbc3f07-fc5e-48c4-a50e-7d356EXAMPLE",
               "Name": "MyFirstGroup",
               "LastUpdatedTimestamp": "2019-11-11T05:47:31.435Z",
               "LatestVersion": "4cbc3f07-fc5e-48c4-a50e-7d356EXAMPLE",
               "CreationTimestamp": "2019-11-11T05:47:31.435Z",
               "Id": "00dedaaa-ac16-484d-ad77-c3eedEXAMPLE",
               "Arn": "arn:aws:us-west-2:123456789012:/greengrass/groups/00dedaaa-ac16-484d-ad77-c3eedEXAMPLE"
           },
           {
               "LatestVersionArn": "arn:aws:us-west-2:123456789012:/greengrass/groups/036ceaf9-9319-4716-ba2a-237f9EXAMPLE/versions/8fe9e8ec-64d1-4647-b0b0-01dc8EXAMPLE",
               "Name": "GreenhouseSensors",
               "LastUpdatedTimestamp": "2020-01-07T19:58:36.774Z",
               "LatestVersion": "8fe9e8ec-64d1-4647-b0b0-01dc8EXAMPLE",
               "CreationTimestamp": "2020-01-07T19:58:36.774Z",
               "Id": "036ceaf9-9319-4716-ba2a-237f9EXAMPLE",
               "Arn": "arn:aws:us-west-2:123456789012:/greengrass/groups/036ceaf9-9319-4716-ba2a-237f9EXAMPLE"
           },
           ...
       ]
   }
   ```

   Para obter mais informações, incluindo exemplos que usam a opção `query` para filtrar resultados, consulte [Obter o ID do grupo](deployments.md#api-get-group-id).

1. <a name="cli-list-groups-copy-id"></a>Copie da saída o `Id` do grupo de destino.

1. Desassocie a função do seu grupo. *group-id*Substitua pelo ID do grupo-alvo.

   ```
   aws greengrass disassociate-role-from-group --group-id group-id
   ```

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

   ```
   {
     "DisassociatedAt": "timestamp"
   }
   ```
**nota**  
Você pode excluir a função de grupo se não estiver usando. 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 desanexar cada política gerenciada da função e, 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 a função. 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="group-role-see-also"></a>
+ Tópicos relacionados no *Guia do usuário do IAM*
  + [Criação de uma função para delegar permissões a um serviço AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)
  + [Modificar uma função](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_modify.html)
  + [Adicionar e remover permissões de identidade IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)
  + [Excluir funções ou perfis de instância](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_delete.html)
+ AWS IoT Greengrass comandos na *Referência de AWS CLI Comandos*
  + [list-groups](https://docs.aws.amazon.com/cli/latest/reference/greengrass/list-groups.html)
  + [associate-role-to-group](https://docs.aws.amazon.com/cli/latest/reference/greengrass/associate-role-to-group.html)
  + [disassociate-role-from-group](https://docs.aws.amazon.com/cli/latest/reference/greengrass/disassociate-role-from-group.html)
  + [get-associated-role](https://docs.aws.amazon.com/cli/latest/reference/greengrass/get-associated-role.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)

# Prevenção do problema do substituto confuso entre serviços
<a name="cross-service-confused-deputy-prevention"></a>

O problema "confused deputy" é um problema de segurança em que uma entidade que não tem permissão para executar uma ação pode coagir uma entidade mais privilegiada a executar a ação. Em AWS, a falsificação de identidade entre serviços pode resultar no problema confuso do deputado. A personificação entre serviços pode ocorrer quando um serviço (o *serviço de chamada*) chama outro serviço (o *serviço chamado*). O serviço de chamada pode ser manipulado de modo a usar suas permissões para atuar nos recursos de outro cliente de uma forma na qual ele não deveria ter permissão para acessar. Para evitar isso, a AWS fornece ferramentas que ajudam você a proteger seus dados para todos os serviços com entidades principais de serviço que receberam acesso aos recursos em sua conta. 

Recomendamos usar as chaves de contexto de condição [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount)global [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn)e as chaves de contexto nas políticas de recursos para limitar as permissões que AWS IoT Greengrass concedem outro serviço ao recurso. Se você utilizar ambas as chaves de contexto de condição global, o valor `aws:SourceAccount` e a conta `aws:SourceArn` no valor deverão utilizar o mesmo ID de conta quando utilizados na mesma instrução de política.

O valor de `aws:SourceArn` deve ser o recurso do cliente do Greengrass associado à solicitação `sts:AssumeRole`.

A maneira mais eficaz de se proteger do problema ‘confused deputy’ é usar a chave de contexto de condição global `aws:SourceArn` com o ARN completo do recurso. Se você não souber o ARN completo do recurso ou se especificar vários recursos, use a chave de condição de contexto global `aws:SourceArn` com curingas (`*`) para as partes desconhecidas do ARN. Por exemplo, .`arn:aws:greengrass:region:account-id:*` 

Para obter exemplos de políticas que usam as chaves de contexto de condição global `aws:SourceArn` e `aws:SourceAccount`, consulte os seguintes tópicos: 
+ [Criar a função de serviço do Greengrass](service-role.md#create-service-role)
+ [Criar a função de grupo do Greengrass](group-role.md#create-group-role)
+ [Criar e configurar uma função de execução do IAM para implantação em lote](bulk-deploy-cli.md#bulk-deploy-cli-create-role)

# Exemplos de políticas baseadas em identidade para AWS IoT Greengrass
<a name="security_iam_id-based-policy-examples"></a>

Por padrão, os usuários e os perfis do IAM não têm permissão para criar ou modificar recursos do AWS IoT Greengrass . Eles também não podem realizar tarefas usando a AWS API Console de gerenciamento da AWS AWS CLI, ou. Um administrador do IAM deve criar políticas do IAM que concedam aos usuários e perfis permissão para executarem operações de API específicas nos recursos especificados de que precisam. O administrador deve anexar essas políticas aos usuários ou grupos do IAM que exigem essas permissões.

## Práticas recomendadas de política
<a name="security_iam_service-with-iam-policy-best-practices"></a>

As políticas baseadas em identidade determinam se alguém pode criar, acessar ou excluir AWS IoT Greengrass recursos em sua conta. Essas ações podem incorrer em custos para sua Conta da AWS. Ao criar ou editar políticas baseadas em identidade, siga estas diretrizes e recomendações:
+ **Comece com as políticas AWS gerenciadas e avance para as permissões de privilégios mínimos — Para começar a conceder permissões** aos seus usuários e cargas de trabalho, use as *políticas AWS gerenciadas* que concedem permissões para muitos casos de uso comuns. Eles estão disponíveis no seu Conta da AWS. Recomendamos que você reduza ainda mais as permissões definindo políticas gerenciadas pelo AWS cliente que sejam específicas para seus casos de uso. Para saber mais, consulte [Políticas gerenciadas pela AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) ou [Políticas gerenciadas pela AWS para funções de trabalho](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) no *Guia do usuário do IAM*.
+ **Aplique permissões de privilégio mínimo**: ao definir permissões com as políticas do IAM, conceda apenas as permissões necessárias para executar uma tarefa. Você faz isso definindo as ações que podem ser executadas em recursos específicos sob condições específicas, também conhecidas como *permissões de privilégio mínimo*. Para saber mais sobre como usar o IAM para aplicar permissões, consulte [Políticas e permissões no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) no *Guia do usuário do IAM*.
+ **Use condições nas políticas do IAM para restringir ainda mais o acesso**: é possível adicionar uma condição às políticas para limitar o acesso a ações e recursos. Por exemplo, é possível escrever uma condição de política para especificar que todas as solicitações devem ser enviadas usando SSL. Você também pode usar condições para conceder acesso às ações de serviço se elas forem usadas por meio de uma ação específica AWS service (Serviço da AWS), como CloudFormation. Para saber mais, consulte [Elementos da política JSON do IAM: condição](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) no *Guia do usuário do IAM*.
+ **Use o IAM Access Analyzer para validar suas políticas do IAM a fim de garantir permissões seguras e funcionais**: o IAM Access Analyzer valida as políticas novas e existentes para que elas sigam a linguagem de política do IAM (JSON) e as práticas recomendadas do IAM. O IAM Access Analyzer oferece mais de cem verificações de política e recomendações práticas para ajudar a criar políticas seguras e funcionais. Para saber mais, consulte [Validação de políticas do IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) no *Guia do Usuário do IAM*.
+ **Exigir autenticação multifator (MFA**) — Se você tiver um cenário que exija usuários do IAM ou um usuário root, ative Conta da AWS a MFA para obter segurança adicional. Para exigir MFA quando as operações de API forem chamadas, adicione condições de MFA às suas políticas. Para saber mais, consulte [Configuração de acesso à API protegido por MFA](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html) no *Guia do Usuário do IAM*.

Para saber mais sobre as práticas recomendadas do IAM, consulte [Práticas recomendadas de segurança no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) no *Guia do usuário do IAM*.

## AWS políticas gerenciadas para AWS IoT Greengrass
<a name="security_iam_service-with-iam-id-based-policies-gg-managed"></a>

AWS IoT Greengrass mantém as seguintes políticas AWS gerenciadas que você pode usar para conceder permissões aos usuários e funções do IAM.


| Política | Description | 
| --- | --- | 
| [AWSGreengrassFullAccess](https://console.aws.amazon.com/iam/home?region=us-west-2#/policies/arn%3Aaws%3Aiam%3A%3Aaws%3Apolicy%2FAWSGreengrassFullAccess) | Permite todas AWS IoT Greengrass as ações para todos os seus AWS recursos. Essa política é recomendada para [administradores AWS IoT Greengrass de serviços](security-iam.md#security_iam_audience) ou para fins de teste. | 
| [ AWSGreengrassReadOnlyAccess](https://console.aws.amazon.com/iam/home?region=us-west-2#/policies/arn%3Aaws%3Aiam%3A%3Aaws%3Apolicy%2FAWSGreengrassReadOnlyAccess) | `List`Permissões e `Get` AWS IoT Greengrass ações para todos os seus AWS recursos. | 
| [ AWSGreengrassResourceAccessRolePolicy](https://console.aws.amazon.com/iam/home?region=us-west-2#/policies/arn%3Aaws%3Aiam%3A%3Aaws%3Apolicy%2Fservice-role%2FAWSGreengrassResourceAccessRolePolicy) | Permite acesso a recursos de AWS serviços, incluindo AWS Lambda AWS IoT Device Shadow. Esta é a política padrão usada para a [função de serviço do Greengrass](service-role.md). Esta política foi concebida para proporcionar facilidade geral de acesso. Você pode definir uma política personalizada que seja mais restritiva. | 
| [Greengrass OTAUpdate ArtifactAccess](https://console.aws.amazon.com/iam/home?region=us-west-2#/policies/arn%3Aaws%3Aiam%3A%3Aaws%3Apolicy%2Fservice-role%2FGreengrassOTAUpdateArtifactAccess) | Permite acesso somente de leitura aos artefatos de atualização over-the-air (OTA) do software AWS IoT Greengrass Core em todos os sistemas. Região da AWS | 

## Exemplos de políticas
<a name="security_iam_id-based-policy-examples-list"></a>

As políticas de exemplo definidas pelo cliente a seguir concedem permissões para cenários comuns.

**Topics**
+ [Permitir que os usuários visualizem suas próprias permissões](#security_iam_id-based-policy-examples-view-own-permissions)

Para saber como criar uma política baseada em identidade do IAM utilizando esses exemplos de documentos de política JSON, consulte [Criar políticas na guia JSON ](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-json-editor) no *Guia do usuário do IAM*.

### Permitir que os usuários visualizem suas próprias permissões
<a name="security_iam_id-based-policy-examples-view-own-permissions"></a>

Este exemplo mostra como criar uma política que permita que os usuários do IAM visualizem as políticas gerenciadas e em linha anexadas a sua identidade de usuário. Essa política inclui permissões para concluir essa ação no console ou programaticamente usando a API AWS CLI ou AWS .

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewOwnUserInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListUserPolicies",
                "iam:GetUser"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "NavigateInConsole",
            "Effect": "Allow",
            "Action": [
                "iam:GetGroupPolicy",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListGroupPolicies",
                "iam:ListPolicyVersions",
                "iam:ListPolicies",
                "iam:ListUsers"
            ],
            "Resource": "*"
        }
    ]
}
```

# Solução de problemas de identidade e acesso para AWS IoT Greengrass
<a name="security_iam_troubleshoot"></a>

Use as informações a seguir para ajudá-lo a diagnosticar e corrigir problemas comuns que você pode encontrar ao trabalhar com AWS IoT Greengrass um IAM.

**Topics**
+ [Não estou autorizado a realizar uma ação em AWS IoT Greengrass](#security_iam_troubleshoot-no-permissions)
+ [Erro: O Greengrass não está autorizado a assumir o perfil de serviço associado a essa conta ou o erro: Falha: perfil de serviço TES não está associado a essa conta.](#troubleshoot-assume-service-role)
+ [Erro: Permissão negada ao tentar usar a função arn:aws:iam::<account-id>:role/<role-name> to access s3 url https://<region>-greengrass-updates.s3.<region>.amazonaws.com/core/<architecture>/greengrass-core-<distribution-version>.tar.gz.](#troubleshoot-ota-region-access)
+ [O shadow do dispositivo não sincroniza com a nuvem.](#troubleshoot-shadow-sync)
+ [Não estou autorizado a realizar iam: PassRole](#security_iam_troubleshoot-passrole)
+ [Sou administrador e quero permitir que outras pessoas acessem AWS IoT Greengrass](#security_iam_troubleshoot-admin-delegate)
+ [Quero permitir que pessoas fora da minha Conta da AWS acessem meus AWS IoT Greengrass recursos](#security_iam_troubleshoot-cross-account-access)

Para obter ajuda geral com a solução de problemas, consulte [Solução de problemas AWS IoT Greengrass](gg-troubleshooting.md).

## Não estou autorizado a realizar uma ação em AWS IoT Greengrass
<a name="security_iam_troubleshoot-no-permissions"></a>

Se você receber uma mensagem de erro informando que você não está autorizado a executar a ação, entre em contato com o administrador para obter assistência. O administrador é a pessoa que forneceu a você o seu nome de usuário e senha.

O erro de exemplo a seguir ocorre quando o usuário do IAM `mateojackson` do tenta visualizar detalhes sobre uma versão de definição de núcleo, mas não tem as permissões `greengrass:GetCoreDefinitionVersion`.

```
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: greengrass:GetCoreDefinitionVersion on resource: resource: arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/cores/78cd17f3-bc68-ee18-47bd-5bda5EXAMPLE/versions/368e9ffa-4939-6c75-859c-0bd4cEXAMPLE
```

Neste caso, Mateo pede ao administrador para atualizar suas políticas para permitir a ele o acesso ao recurso `arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/cores/78cd17f3-bc68-ee18-47bd-5bda5EXAMPLE/versions/368e9ffa-4939-6c75-859c-0bd4cEXAMPLE` usando a ação `greengrass:GetCoreDefinitionVersion`.

## Erro: O Greengrass não está autorizado a assumir o perfil de serviço associado a essa conta ou o erro: Falha: perfil de serviço TES não está associado a essa conta.
<a name="troubleshoot-assume-service-role"></a>

**Solução:** esse erro pode ser visto quando a implantação falhar. Verifique se uma função de serviço do Greengrass está associada à sua Conta da AWS na Região da AWS atual. Para acessar mais informações, consulte [Gerenciar a função de serviço do Greengrass (CLI)](service-role.md#manage-service-role-cli) ou [Gerenciar a função de serviço do Greengrass (console)](service-role.md#manage-service-role-console).

## Erro: Permissão negada ao tentar usar a função arn:aws:iam::<account-id>:role/<role-name> to access s3 url https://<region>-greengrass-updates.s3.<region>.amazonaws.com/core/<architecture>/greengrass-core-<distribution-version>.tar.gz.
<a name="troubleshoot-ota-region-access"></a>

**Solução:** você pode ver esse erro quando uma atualização over-the-air (OTA) falha. Na política de função assinante, adicione a Região da AWS de destino como `Resource`. Essa função de signatário é usada para predefinir a URL do S3 para a atualização do AWS IoT Greengrass software. Para obter mais informações, consulte [Função assinante do URL do S3](core-ota-update.md#s3-url-signer-role).

## O shadow do dispositivo não sincroniza com a nuvem.
<a name="troubleshoot-shadow-sync"></a>

**Solução:** Certifique-se de que AWS IoT Greengrass tenha permissões `iot:UpdateThingShadow` e `iot:GetThingShadow` ações na função de [serviço do Greengrass](service-role.md). Se a função de serviço usa a política gerenciada `AWSGreengrassResourceAccessRolePolicy`, essas permissões são incluídas por padrão.

Consulte [Solução de problemas de intervalo de sincronização de shadow](gg-troubleshooting.md#troubleshooting-shadow-sync).

Veja a seguir os problemas gerais do IAM que você pode encontrar ao trabalhar com AWS IoT Greengrass.

## Não estou autorizado a realizar iam: PassRole
<a name="security_iam_troubleshoot-passrole"></a>

Se você receber uma mensagem de erro informando que não está autorizado a executar a ação `iam:PassRole`, as suas políticas devem ser atualizadas para permitir que você passe uma função para o AWS IoT Greengrass.

Alguns Serviços da AWS permitem que você passe uma função existente para esse serviço em vez de criar uma nova função de serviço ou uma função vinculada ao serviço. Para fazê-lo, você deve ter permissões para passar o perfil para o serviço.

O exemplo de erro a seguir ocorre quando uma usuária do IAM chamada `marymajor` tenta utilizar o console para executar uma ação no AWS IoT Greengrass. No entanto, a ação exige que o serviço tenha permissões concedidas por um perfil de serviço. Mary não tem permissões para passar o perfil para o serviço.

```
User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole
```

Nesse caso, as políticas de Mary devem ser atualizadas para permitir que ela realize a ação `iam:PassRole`.

Se precisar de ajuda, entre em contato com seu AWS administrador. Seu administrador é a pessoa que forneceu suas credenciais de login.

## Sou administrador e quero permitir que outras pessoas acessem AWS IoT Greengrass
<a name="security_iam_troubleshoot-admin-delegate"></a>

Para permitir que outras pessoas acessem AWS IoT Greengrass, você deve conceder permissão às pessoas ou aplicativos que precisam de acesso. Se você estiver usando o Centro de Identidade do AWS IAM para gerenciar pessoas e aplicações, atribua conjuntos de permissões a usuários ou grupos para definir o nível de acesso. Os conjuntos de permissões criam e atribuem automaticamente políticas do IAM aos perfis do IAM associados à pessoa ou aplicação. Para ter mais informações, consulte [Conjuntos de permissões](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html) no *Guia do usuário do Centro de Identidade do AWS IAM *.

Se você não estiver usando o Centro de Identidade do IAM, deverá criar entidades do IAM (usuários ou perfis) para as pessoas ou aplicações que precisam de acesso. Você deve anexar uma política à entidade que concede a eles as permissões corretas no AWS IoT Greengrass. Depois que as permissões forem concedidas, forneça as credenciais ao usuário ou desenvolvedor da aplicação. Eles usarão essas credenciais para acessar AWS. Para saber mais sobre como criar grupos, políticas, permissões e usuários do IAM, consulte [Identidades do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html) e [Políticas e permissões no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) no *Guia do usuário do IAM*.

## Quero permitir que pessoas fora da minha Conta da AWS acessem meus AWS IoT Greengrass recursos
<a name="security_iam_troubleshoot-cross-account-access"></a>

Você pode criar uma função do IAM que usuários de outras contas ou pessoas fora da sua organização possam usar para acessar seus AWS recursos. Você pode especificar quem é confiável para assumir a função. Para obter mais informações, consulte [Fornecer acesso a um usuário do IAM em outro Conta da AWS de sua](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html) propriedade e [Fornecer acesso a contas da Amazon Web Services pertencentes a terceiros](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_third-party.html) no *Guia do usuário do IAM*.

AWS IoT Greengrass não oferece suporte ao acesso entre contas com base em políticas baseadas em recursos ou listas de controle de acesso (). ACLs