

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

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