

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) | Sim | 
| [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 `ListCoreDevices` API para listar os dispositivos principais Conta da AWS, você inclui a `greengrass:ListCoreDevices` ação na política dessa pessoa. As declarações de política devem incluir um `NotAction` elemento `Action` ou. AWS IoT Greengrass define seu próprio conjunto de ações que descrevem as tarefas que você pode executar 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*.

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

### 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>

Você pode anexar tags aos AWS IoT Greengrass recursos compatíveis ou passar tags em uma solicitação para AWS IoT Greengrass. Para controlar o acesso baseado em tags, forneça informações sobre as tags no [elemento de condição](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) de uma política usando as chaves de condição `aws:ResourceTag/${TagKey}`, `aws:RequestTag/${TagKey}` ou `aws:TagKeys`. Para obter mais informações, consulte [Marque seus AWS IoT Greengrass Version 2 recursos](tag-resources.md).

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

Um [perfil 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. Obtenha credenciais de segurança temporárias chamando operações de API AWS STS tais 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 do dispositivo](device-service-role.md) são disponibilizadas aos componentes do Greengrass. Se seus componentes 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 os dispositivos principais usam uma função de serviço para permitir que os componentes do Greengrass e as funções do Lambda acessem alguns de seus AWS recursos em seu nome. Para obter mais informações, consulte [Autorize os dispositivos principais a interagir com os serviços AWS](device-service-role.md).

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](greengrass-service-role.md).

# 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*.

## 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": "*"
        }
    ]
}
```

# Autorize os dispositivos principais a interagir com os serviços AWS
<a name="device-service-role"></a>

AWS IoT Greengrass os dispositivos principais usam o provedor de AWS IoT Core credenciais para autorizar chamadas para AWS serviços. O provedor de AWS IoT Core credenciais permite que os dispositivos usem seus certificados X.509 como a identidade exclusiva do dispositivo para autenticar solicitações. AWS Isso elimina a necessidade de armazenar uma ID de chave de AWS acesso e uma chave de acesso secreta em seus dispositivos AWS IoT Greengrass principais. Para obter mais informações, consulte [Autorização de chamadas diretas para AWS serviços](https://docs.aws.amazon.com/iot/latest/developerguide/authorizing-direct-aws.html) no *Guia do AWS IoT Core desenvolvedor*.

Ao executar o software AWS IoT Greengrass Core, você pode optar por provisionar os AWS recursos que o dispositivo principal exige. Isso inclui a função AWS Identity and Access Management (IAM) que seu dispositivo principal assume por meio do provedor de AWS IoT Core credenciais. Use o `--provision true` argumento para configurar uma função e políticas que permitam que o dispositivo principal obtenha AWS credenciais temporárias. Esse argumento também configura um alias de AWS IoT função que aponta para essa função do IAM. Você pode especificar o nome da função do IAM e o alias da AWS IoT função a serem usados. Se você especificar `--provision true` sem esses outros parâmetros de nome, o dispositivo principal do Greengrass cria e usa os seguintes recursos padrão:
+ Perfil do IAM: `GreengrassV2TokenExchangeRole`

  Esse perfil tem um nome de política `GreengrassV2TokenExchangeRoleAccess` e um relacionamento de confiança que permite que `credentials.iot.amazonaws.com` assuma o perfil. A política inclui as permissões mínimas para o dispositivo principal.
**Importante**  
Essa política não inclui acesso a arquivos em buckets do S3. Você deve adicionar permissões ao perfil para permitir que os dispositivos principais recuperem artefatos de componentes dos buckets do S3. Para obter mais informações, consulte [Permitir acesso aos buckets do S3 para artefatos de componentes](#device-service-role-access-s3-bucket).
+ AWS IoT alias de função: `GreengrassV2TokenExchangeRoleAlias`

  Esse alias de perfil se refere ao perfil do IAM.

Para obter mais informações, consulte [Etapa 3: instalar o software AWS IoT Greengrass principal](install-greengrass-v2.md).

Você também pode definir o alias de perfil para um dispositivo principal existente. Para fazer isso, configure o parâmetro de configuração `iotRoleAlias` do [componente do núcleo do Greengrass](greengrass-nucleus-component.md).

Você pode adquirir AWS credenciais temporárias para essa função do IAM para realizar AWS operações em seus componentes personalizados. Para obter mais informações, consulte [Interaja com AWS os serviços](interact-with-aws-services.md).

**Topics**
+ [Permissões de perfil de serviço para dispositivos principais](#device-service-role-permissions)
+ [Permitir acesso aos buckets do S3 para artefatos de componentes](#device-service-role-access-s3-bucket)

## Permissões de perfil de serviço para dispositivos principais
<a name="device-service-role-permissions"></a>

O perfil permite que o seguinte serviço presuma a perfil:
+ `credentials.iot.amazonaws.com`

Se você usa o software AWS IoT Greengrass Core para criar essa função, ele usa a seguinte política de permissões para permitir que os dispositivos principais se conectem e enviem registros para AWS. O nome da política é padronizado para o nome do perfil do IAM que termina com `Access`. Por exemplo, se você usar o nome de perfil do IAM padrão, o nome dessa política será `GreengrassV2TokenExchangeRoleAccess`.

------
#### [ Greengrass nucleus v2.5.0 and later ]

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents",
        "logs:DescribeLogStreams",
        "s3:GetBucketLocation"
      ],
      "Resource": "*"
    }
  ]
}
```

------

------
#### [ v2.4.x ]

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "iot:DescribeCertificate",
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents",
        "logs:DescribeLogStreams",
        "s3:GetBucketLocation"
      ],
      "Resource": "*"
    }
  ]
}
```

------

------
#### [ Earlier than v2.4.0 ]

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "iot:DescribeCertificate",
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents",
        "logs:DescribeLogStreams",
        "iot:Connect",
        "iot:Publish",
        "iot:Subscribe",
        "iot:Receive",
        "s3:GetBucketLocation"
      ],
      "Resource": "*"
    }
  ]
}
```

------

------

## Permitir acesso aos buckets do S3 para artefatos de componentes
<a name="device-service-role-access-s3-bucket"></a>

O perfil padrão do dispositivo principal não permite que os dispositivos principais acessem os buckets do S3. Para implantar componentes que tenham artefatos em buckets do S3, adicione a permissão `s3:GetObject` para permitir que os dispositivos principais baixem artefatos de componentes. Você pode adicionar uma nova política ao perfil do dispositivo principal para conceder essa permissão.

**Para adicionar uma política que permita o acesso a artefatos de componentes no Amazon S3**

1. Crie um arquivo chamado `component-artifact-policy.json` e copie o JSON a seguir no arquivo. Essa política permite acesso a todos os arquivos em um bucket do S3. Substitua amzn-s3-demo-bucket pelo nome do bucket S3 para permitir o acesso do dispositivo principal.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "s3:GetObject"
         ],
         "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
       }
     ]
   }
   ```

------

1. Execute o comando a seguir para criar a política com base no documento em `component-artifact-policy.json`.

------
#### [ Linux or Unix ]

   ```
   aws iam create-policy \
     --policy-name MyGreengrassV2ComponentArtifactPolicy \
     --policy-document file://component-artifact-policy.json
   ```

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

   ```
   aws iam create-policy ^
     --policy-name MyGreengrassV2ComponentArtifactPolicy ^
     --policy-document file://component-artifact-policy.json
   ```

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

   ```
   aws iam create-policy `
     --policy-name MyGreengrassV2ComponentArtifactPolicy `
     --policy-document file://component-artifact-policy.json
   ```

------

   Copie o nome do recurso da Amazon (ARN) da política dos metadados na saída. Na próxima etapa, você vai usar esse ARN para anexar a política ao perfil do dispositivo principal.

1. Execute o comando a seguir para anexar a política ao perfil do dispositivo principal. *GreengrassV2TokenExchangeRole*Substitua pelo nome da função que você especificou ao executar o software AWS IoT Greengrass Core. Em seguida, substitua o ARN da política pelo ARN da etapa anterior.

------
#### [ Linux or Unix ]

   ```
   aws iam attach-role-policy \
     --role-name GreengrassV2TokenExchangeRole \
     --policy-arn arn:aws:iam::123456789012:policy/MyGreengrassV2ComponentArtifactPolicy
   ```

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

   ```
   aws iam attach-role-policy ^
     --role-name GreengrassV2TokenExchangeRole ^
     --policy-arn arn:aws:iam::123456789012:policy/MyGreengrassV2ComponentArtifactPolicy
   ```

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

   ```
   aws iam attach-role-policy `
     --role-name GreengrassV2TokenExchangeRole `
     --policy-arn arn:aws:iam::123456789012:policy/MyGreengrassV2ComponentArtifactPolicy
   ```

------

   Se o comando não tiver saída, ele foi bem-sucedido e seu dispositivo principal poderá acessar os artefatos que você carrega nesse bucket do S3.

# Política mínima de IAM para o instalador provisionar recursos
<a name="provision-minimal-iam-policy"></a>

Ao instalar o software AWS IoT Greengrass Core, você pode provisionar AWS os recursos necessários, como uma AWS IoT coisa e uma função do IAM para seu dispositivo. Você também pode implantar ferramentas de desenvolvimento local no dispositivo. O instalador requer AWS credenciais para poder realizar essas ações no seu Conta da AWS. Para obter mais informações, consulte [Instalar o software do AWS IoT Greengrass Core](install-greengrass-core-v2.md).

O exemplo de política a seguir inclui o conjunto mínimo de ações que o instalador exige para provisionar esses recursos. Essas permissões são necessárias se você especificar o argumento `--provision` para o instalador. *account-id*Substitua pelo seu Conta da AWS ID e *GreengrassV2TokenExchangeRole* substitua pelo nome da função de troca de tokens que você especifica com o [argumento do `--tes-role-name` instalador](configure-installer.md).

**nota**  
A declaração de política `DeployDevTools` é necessária somente se você especificar o argumento `--deploy-dev-tools` para o instalador.

------
#### [ Greengrass nucleus v2.5.0 and later ]

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CreateTokenExchangeRole",
            "Effect": "Allow",
            "Action": [
                "iam:AttachRolePolicy",
                "iam:CreatePolicy",
                "iam:CreateRole",
                "iam:GetPolicy",
                "iam:GetRole",
                "iam:PassRole"
            ],
            "Resource": [
                "arn:aws:iam::123456789012:role/GreengrassV2TokenExchangeRole",
                "arn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccess",
                "arn:aws:iam::aws:policy/GreengrassV2TokenExchangeRoleAccess"
            ]
        },
        {
            "Sid": "CreateIoTResources",
            "Effect": "Allow",
            "Action": [
                "iot:AddThingToThingGroup",
                "iot:AttachPolicy",
                "iot:AttachThingPrincipal",
                "iot:CreateKeysAndCertificate",
                "iot:CreatePolicy",
                "iot:CreateRoleAlias",
                "iot:CreateThing",
                "iot:CreateThingGroup",
                "iot:DescribeEndpoint",
                "iot:DescribeRoleAlias",
                "iot:DescribeThingGroup",
                "iot:GetPolicy"
            ],
            "Resource": "*"
        },
        {
            "Sid": "DeployDevTools",
            "Effect": "Allow",
            "Action": [
                "greengrass:CreateDeployment",
                "iot:CancelJob",
                "iot:CreateJob",
                "iot:DeleteThingShadow",
                "iot:DescribeJob",
                "iot:DescribeThing",
                "iot:DescribeThingGroup",
                "iot:GetThingShadow",
                "iot:UpdateJob",
                "iot:UpdateThingShadow"
            ],
            "Resource": "*"
        }
    ]
}
```

------

------
#### [ Earlier than v2.5.0 ]

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CreateTokenExchangeRole",
            "Effect": "Allow",
            "Action": [
                "iam:AttachRolePolicy",
                "iam:CreatePolicy",
                "iam:CreateRole",
                "iam:GetPolicy",
                "iam:GetRole",
                "iam:PassRole"
            ],
            "Resource": [
            "arn:aws:iam::123456789012:role/GreengrassV2TokenExchangeRole",
    "arn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccess",
                "arn:aws:iam::aws:policy/GreengrassV2TokenExchangeRoleAccess"
            ]
        },
        {
            "Sid": "CreateIoTResources",
            "Effect": "Allow",
            "Action": [
                "iot:AddThingToThingGroup",
                "iot:AttachPolicy",
                "iot:AttachThingPrincipal",
                "iot:CreateKeysAndCertificate",
                "iot:CreatePolicy",
                "iot:CreateRoleAlias",
                "iot:CreateThing",
                "iot:CreateThingGroup",
                "iot:DescribeEndpoint",
                "iot:DescribeRoleAlias",
                "iot:DescribeThingGroup",
                "iot:GetPolicy"
            ],
            "Resource": "*"
        },
        {
            "Sid": "DeployDevTools",
            "Effect": "Allow",
            "Action": [
                "greengrass:CreateDeployment",
                "iot:CancelJob",
                "iot:CreateJob",
                "iot:DeleteThingShadow",
                "iot:DescribeJob",
                "iot:DescribeThing",
                "iot:DescribeThingGroup",
                "iot:GetThingShadow",
                "iot:UpdateJob",
                "iot:UpdateThingShadow"
            ],
            "Resource": "*"
        }
    ]
}
```

------

------

# 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\$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 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)

# AWS políticas gerenciadas para AWS IoT Greengrass
<a name="security-iam-aws-managed-policies"></a>

Uma política AWS gerenciada é uma política autônoma criada e administrada por AWS. AWS as políticas gerenciadas são projetadas para fornecer permissões para muitos casos de uso comuns, para que você possa começar a atribuir permissões a usuários, grupos e funções.

Lembre-se de que as políticas AWS gerenciadas podem não conceder permissões de privilégio mínimo para seus casos de uso específicos porque elas estão disponíveis para uso de todos os AWS clientes. Recomendamos que você reduza ainda mais as permissões definindo as [ políticas gerenciadas pelo cliente](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies) que são específicas para seus casos de uso.

Você não pode alterar as permissões definidas nas políticas AWS gerenciadas. Se AWS atualizar as permissões definidas em uma política AWS gerenciada, a atualização afetará todas as identidades principais (usuários, grupos e funções) às quais a política está anexada. AWS é mais provável que atualize uma política AWS gerenciada quando uma nova AWS service (Serviço da AWS) é lançada ou novas operações de API são disponibilizadas para serviços existentes.

Para saber mais, consulte [AWS Políticas gerenciadas pela ](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) no *Guia do usuário do IAM*.

**Topics**
+ [AWS política gerenciada: AWSGreengrass FullAccess](#aws-managed-policies-AWSGreengrassFullAccess)
+ [AWS política gerenciada: AWSGreengrass ReadOnlyAccess](#aws-managed-policies-AWSGreengrassReadOnlyAccess)
+ [AWS política gerenciada: AWSGreengrass ResourceAccessRolePolicy](#aws-managed-policies-AWSGreengrassResourceAccessRolePolicy)
+ [AWS IoT Greengrass atualizações nas políticas AWS gerenciadas](#aws-managed-policy-updates)

## AWS política gerenciada: AWSGreengrass FullAccess
<a name="aws-managed-policies-AWSGreengrassFullAccess"></a>

É possível anexar a política `AWSGreengrassFullAccess` às suas identidades do IAM.

Essa política concede permissões administrativas que permitem a uma entidade principal acessar todas as ações do AWS IoT Greengrass .

**Detalhes de permissões**

Esta política inclui as seguintes permissões:
+ `greengrass`: permite às entidades principais acessar todas as ações do AWS IoT Greengrass .

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "greengrass:*"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## AWS política gerenciada: AWSGreengrass ReadOnlyAccess
<a name="aws-managed-policies-AWSGreengrassReadOnlyAccess"></a>

É possível anexar a política `AWSGreengrassReadOnlyAccess` às suas identidades do IAM.

Essa política concede permissões somente leitura que permitem a uma entidade principal visualizar, mas não modificar, as informações no AWS IoT Greengrass. Por exemplo, as entidades principais com essas permissões podem visualizar a lista de componentes implantados em um dispositivo principal do Greengrass, mas não podem criar uma implantação para alterar os componentes que são executados nesse dispositivo.

**Detalhes de permissões**

Esta política inclui as seguintes permissões:
+ `greengrass`: permite às entidades principais executar ações que retornam uma lista de itens ou detalhes sobre um item. Isso inclui as operações de API que começam com `List` ou `Get`.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "greengrass:List*",
                "greengrass:Get*"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## AWS política gerenciada: AWSGreengrass ResourceAccessRolePolicy
<a name="aws-managed-policies-AWSGreengrassResourceAccessRolePolicy"></a>

Você pode anexar a `AWSGreengrassResourceAccessRolePolicy` política às suas entidades do IAM. AWS IoT Greengrass também anexa essa política a uma função de serviço que permite AWS IoT Greengrass realizar ações em seu nome. Para obter mais informações, consulte [Função de serviço do Greengrass](greengrass-service-role.md).

Essa política concede permissões administrativas que permitem AWS IoT Greengrass realizar tarefas essenciais, como recuperar suas funções do Lambda, AWS IoT gerenciar sombras de dispositivos e verificar dispositivos clientes do Greengrass.

**Detalhes das permissões**

Esta política inclui as seguintes permissões.
+ `greengrass`: gerenciar os recursos do Greengrass.
+ `iot`(`*Shadow`) — Gerencie AWS IoT sombras que tenham os seguintes identificadores especiais em seus nomes. Essas permissões são necessárias para que o AWS IoT Greengrass possa se comunicar com os dispositivos principais.
  + `*-gci`— AWS IoT Greengrass usa essa sombra para armazenar as principais informações de conectividade do dispositivo, para que os dispositivos clientes possam descobrir e se conectar aos dispositivos principais.
  + `*-gcm`— A AWS IoT Greengrass V1 usa essa sombra para notificar o dispositivo principal de que o certificado de autoridade de certificação (CA) do grupo Greengrass foi rotacionado.
  + `*-gda`— A AWS IoT Greengrass V1 usa essa sombra para notificar o dispositivo principal sobre uma implantação.
  + `GG_*`: não usada.
+ `iot`(`DescribeThing`e`DescribeCertificate`) — Recupere informações sobre AWS IoT itens e certificados. Essas permissões são necessárias para que AWS IoT Greengrass possamos verificar os dispositivos cliente que se conectam a um dispositivo principal. Para obter mais informações, consulte [Interagir com dispositivos de IoT locais](interact-with-local-iot-devices.md).
+ `lambda`— Recupere informações sobre AWS Lambda funções. Essa permissão é necessária para que a AWS IoT Greengrass V1 possa implantar funções Lambda nos núcleos do Greengrass. Para obter mais informações, consulte [Executar a função Lambda no AWS IoT Greengrass núcleo no Guia do](https://docs.aws.amazon.com/greengrass/v1/developerguide/lambda-functions.html) desenvolvedor da *AWS IoT Greengrass V1*.
+ `secretsmanager`— Recupere o valor dos AWS Secrets Manager segredos cujos nomes começam com`greengrass-`. Essa permissão é necessária para que a AWS IoT Greengrass V1 possa implantar segredos do Secrets Manager nos núcleos do Greengrass. Para obter mais informações, consulte [Implantar segredos no AWS IoT Greengrass núcleo](https://docs.aws.amazon.com/greengrass/v1/developerguide/secrets.html) no *Guia do desenvolvedor AWS IoT Greengrass V1*.
+ `s3`: recuperar os objetos de arquivos dos buckets do S3 que têm nomes com `greengrass` ou `sagemaker`. Essas permissões são necessárias para que a AWS IoT Greengrass V1 possa implantar recursos de aprendizado de máquina que você armazena em buckets do S3. Para obter mais informações, consulte [Recursos de aprendizado de máquina](https://docs.aws.amazon.com/greengrass/v1/developerguide/ml-inference.html#ml-resources) no *Guia do desenvolvedor AWS IoT Greengrass V1*.
+ `sagemaker`— Recupere informações sobre os modelos de inferência de aprendizado de máquina da Amazon SageMaker AI. Essa permissão é necessária para que a AWS IoT Greengrass V1 possa implantar modelos de ML nos núcleos do Greengrass. Para obter mais informações, consulte [Executar inferência de aprendizado de máquina](https://docs.aws.amazon.com/greengrass/v1/developerguide/ml-inference.html) no Guia do *desenvolvedor AWS IoT Greengrass V1*.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowGreengrassAccessToShadows",
            "Action": [
                "iot:DeleteThingShadow",
                "iot:GetThingShadow",
                "iot:UpdateThingShadow"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:iot:*:*:thing/GG_*",
                "arn:aws:iot:*:*:thing/*-gcm",
                "arn:aws:iot:*:*:thing/*-gda",
                "arn:aws:iot:*:*:thing/*-gci"
            ]
        },
        {
            "Sid": "AllowGreengrassToDescribeThings",
            "Action": [
                "iot:DescribeThing"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:iot:*:*:thing/*"
        },
        {
            "Sid": "AllowGreengrassToDescribeCertificates",
            "Action": [
                "iot:DescribeCertificate"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:iot:*:*:cert/*"
        },
        {
            "Sid": "AllowGreengrassToCallGreengrassServices",
            "Action": [
                "greengrass:*"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Sid": "AllowGreengrassToGetLambdaFunctions",
            "Action": [
                "lambda:GetFunction",
                "lambda:GetFunctionConfiguration"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Sid": "AllowGreengrassToGetGreengrassSecrets",
            "Action": [
                "secretsmanager:GetSecretValue"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:secretsmanager:*:*:secret:greengrass-*"
        },
        {
            "Sid": "AllowGreengrassAccessToS3Objects",
            "Action": [
                "s3:GetObject"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::*Greengrass*",
                "arn:aws:s3:::*GreenGrass*",
                "arn:aws:s3:::*greengrass*",
                "arn:aws:s3:::*Sagemaker*",
                "arn:aws:s3:::*SageMaker*",
                "arn:aws:s3:::*sagemaker*"
            ]
        },
        {
            "Sid": "AllowGreengrassAccessToS3BucketLocation",
            "Action": [
                "s3:GetBucketLocation"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Sid": "AllowGreengrassAccessToSageMakerTrainingJobs",
            "Action": [
                "sagemaker:DescribeTrainingJob"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:sagemaker:*:*:training-job/*"
            ]
        }
    ]
}
```

------

## AWS IoT Greengrass atualizações nas políticas AWS gerenciadas
<a name="aws-managed-policy-updates"></a>

Você pode ver detalhes sobre as atualizações das políticas AWS gerenciadas a AWS IoT Greengrass partir do momento em que esse serviço começou a rastrear essas alterações. Para receber alertas automáticos sobre alterações nessa página, assine o feed RSS na página de [histórico de documentos da AWS IoT Greengrass V2](document-history.md).


| Alteração | Descrição | Data | 
| --- | --- | --- | 
|  AWS IoT Greengrass começou a rastrear as alterações  |  AWS IoT Greengrass começou a rastrear as mudanças em suas políticas AWS gerenciadas.  |  2 de julho de 2021  | 

# Prevenção contra o ataque do “substituto confuso” em todos os 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::account-id:*` 

Para um exemplo de uma política que usa as chaves de contexto de condição global `aws:SourceArn` e `aws:SourceAccount`, consulte [Criar a função de serviço do Greengrass](greengrass-service-role.md#create-service-role).

# 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)
+ [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 V2](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` tenta visualizar detalhes de um dispositivo principal, mas não tem as permissões `greengrass:GetCoreDevice`.

```
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: greengrass:GetCoreDevice on resource: arn:aws:greengrass:us-west-2:123456789012:coreDevices/MyGreengrassCore
```

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:coreDevices/MyGreengrassCore` usando a ação `greengrass:GetCoreDevice`.

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 Conta da AWS um de propriedade de 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