

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

# Controlando o acesso com AWS IoT FleetWise
<a name="controlling-access"></a>

**Importante**  
O acesso a determinados FleetWise recursos de AWS IoT está atualmente bloqueado. Para obter mais informações, consulte [AWS Disponibilidade de regiões e recursos na AWS IoT FleetWise](fleetwise-regions.md).

As seções a seguir abordam como controlar o acesso de e para seus AWS IoT FleetWise recursos. As informações que eles abrangem incluem como conceder acesso ao seu aplicativo para que a AWS IoT FleetWise possa transferir dados do veículo durante as campanhas. Eles também descrevem como você pode conceder AWS IoT FleetWise acesso ao seu bucket Amazon S3 (S3) ou ao banco de dados e tabela do Amazon Timestream para armazenar dados ou às mensagens MQTT usadas para enviar dados de veículos.

A tecnologia para gerenciar todas essas formas de acesso é AWS Identity and Access Management (IAM). Para obter mais informações sobre o IAM, consulte [O que é o IAM?](https://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_Introduction.html).

**Topics**
+ [Conceder AWS IoT FleetWise permissão para enviar e receber dados sobre um tópico do MQTT](#using-iam-mqtt)
+ [Conceder AWS IoT FleetWise acesso a um destino do Amazon S3](#using-iam-s3)
+ [Conceda AWS IoT FleetWise acesso a um destino do Amazon Timestream](#using-timestream)
+ [Conceda AWS IoT Device Management permissão para gerar a carga útil para comandos com AWS IoT FleetWise](#generate-command-payload)

## Conceder AWS IoT FleetWise permissão para enviar e receber dados sobre um tópico do MQTT
<a name="using-iam-mqtt"></a>

Quando você usa um [tópico MQTT](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html), seus veículos enviam dados usando o agente de mensagens AWS IoT MQTT. Você deve conceder AWS IoT FleetWise permissão para assinar o tópico do MQTT que você especificar. Se você também usa AWS IoT regras para agir ou rotear dados para outros destinos, deve anexar políticas a uma função do IAM para permitir o encaminhamento de dados AWS IoT FleetWise para as regras de IoT.

Além disso, seus outros aplicativos ou dispositivos podem se inscrever no tópico que você especificar para receber dados do veículo quase em tempo real, e esses aplicativos ou dispositivos devem receber permissões e acesso conforme necessário.

Para obter mais informações sobre o uso do MQTT e as funções e permissões necessárias, consulte:
+ [Protocolos de comunicação do dispositivo](https://docs.aws.amazon.com/iot/latest/developerguide/protocols.html)
+ [Regras para AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html) 
+ [Conceder a uma AWS IoT regra o acesso que ela exige](https://docs.aws.amazon.com/iot/latest/developerguide/iot-create-role.html)
+ [Passe permissões de função](https://docs.aws.amazon.com/iot/latest/developerguide/pass-role.html)

Antes de começar, verifique o seguinte:

**Importante**  
Você deve usar a mesma AWS região ao criar recursos de campanha de veículos para AWS IoT FleetWise. Se você mudar de AWS região, poderá ter problemas para acessar os recursos. 
AWS A IoT FleetWise está disponível no Leste dos EUA (Norte da Virgínia) e na Europa (Frankfurt).

Você pode usar o AWS CLI para criar uma função do IAM com uma política de confiança para mensagens MQTT. Para criar um perfil do IAM, execute o comando a seguir.

**Para criar um perfil do IAM com uma política de confiança**
+ *IotTopicExecutionRole*Substitua pelo nome da função que você está criando.
+ *trust-policy*Substitua pelo arquivo JSON que contém a política de confiança.

```
aws iam create-role --role-name IotTopicExecutionRole --assume-role-policy-document file://trust-policy.json
```

### Política de confiança
<a name="mqtt-example-trust-policy"></a>

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "mqttTopicTrustPolicy",
      "Effect": "Allow",
      "Principal": {
        "Service": "iotfleetwise.amazonaws.com"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
          "aws:SourceArn": [
            "arn:aws:iotfleetwise:region:123456789012:campaign/campaign-name"
          ],
          "aws:SourceAccount": [
            "123456789012"
          ]
        }
      }
    }
  ]
}
```

------

Crie uma política de permissões para dar FleetWise permissões à AWS IoT para publicar mensagens no tópico do MQTT que você especificou. Para criar uma política de permissões, execute o seguinte comando.

**Para criar uma política de permissões**
+ *AWSIoTFleetwiseAccessIotTopicPermissionsPolicy*Substitua pelo nome da política que você está criando.
+ *permissions-policy*Substitua pelo nome do arquivo JSON que contém a política de permissões.

```
aws iam create-policy --policy-name AWSIoTFleetwiseAccessIotTopicPermissionsPolicy --policy-document file://permissions-policy.json
```

### Política de permissões
<a name="mqtt-example-permissions-policy"></a>

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Effect": "Allow",
        "Action": [
          "iot:Publish"
        ],
        "Resource": [
          "topic-arn"
        ]
      }
    ]
}
```

------

**Para anexar a política de permissões ao perfil do IAM**

1. Na saída, copie o nome de recurso da Amazon (ARN) da política de permissões.

1. Para anexar a política de permissões do perfil do IAM, execute o comando a seguir.
   + *permissions-policy-arn*Substitua pelo ARN que você copiou na etapa anterior.
   + *IotTopicExecutionRole*Substitua pelo nome da função do IAM que você criou.

   ```
   aws iam attach-role-policy --policy-arn permissions-policy-arn --role-name IotTopicExecutionRole
   ```

Para obter mais informações, consulte [Gerenciamento de acesso para recursos do AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html) no *Guia do usuário do IAM*.

## Conceder AWS IoT FleetWise acesso a um destino do Amazon S3
<a name="using-iam-s3"></a>

Quando você usa um destino do Amazon S3, AWS IoT FleetWise entrega os dados do veículo para o seu bucket do S3 e, opcionalmente, pode usar uma AWS KMS chave que você possui para criptografia de dados. Se o registro de erros estiver ativado, AWS IoT FleetWise também enviará erros de entrega de dados para seu grupo de CloudWatch registros e fluxos. É necessário ter uma perfil do IAM ao criar um fluxo de entrega.

AWS IoT FleetWise usa uma política de bucket com o principal de serviço para o destino S3. Para obter mais informações sobre como adicionar políticas de bucket, consulte [Adicionar uma política de bucket usando o console do Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/add-bucket-policy.html) no *Guia do usuário do Amazon Simple Storage Service*.

Use a política de acesso a seguir para permitir o acesso AWS IoT FleetWise ao seu bucket do S3. Se você não tiver o bucket do S3, adicione `s3:PutObjectAcl` à lista de ações do Amazon S3. Isso concede ao proprietário do bucket acesso total aos objetos entregues por AWS IoT FleetWise. Para obter mais informações sobre como proteger o acesso a objetos em seus buckets, consulte [Exemplos de políticas de bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html) no *Guia do usuário do Amazon Simple Storage Service*.

### Política de bucket para uma campanha específica
<a name="example-campaign-policy"></a>

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "iotfleetwise.amazonaws.com"
        ]
      },
      "Action": [
        "s3:ListBucket"
      ],
      "Resource": "arn:aws:s3:::bucket-name"
    },
    {
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "iotfleetwise.amazonaws.com"
        ]
      },
      "Action": [
        "s3:GetObject",
        "s3:PutObject"
      ],
      "Resource": "arn:aws:s3:::bucket-name/*",
      "Condition": {
        "StringEquals": {
          "aws:SourceArn": "campaign-arn",
          "aws:SourceAccount": "123456789012"
        }
      }
    }
  ]
}
```

------

### Política de bucket para todas as campanhas
<a name="example-multiple-campaigns-policy"></a>

A política de bucket a seguir se aplica a todas as campanhas em uma conta em uma região da AWS .

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "iotfleetwise.amazonaws.com"
        ]
      },
      "Action": [
        "s3:ListBucket"
      ],
      "Resource": "arn:aws:s3:::bucket-name"
    },
    {
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "iotfleetwise.amazonaws.com"
        ]
      },
      "Action": [
        "s3:GetObject",
        "s3:PutObject"
      ],
      "Resource": "arn:aws:s3:::bucket-name/*",
      "Condition": {
        "StringLike": {
          "aws:SourceArn": "arn:aws:iotfleetwise:region:123456789012:campaign/*",
          "aws:SourceAccount": "123456789012"
        }
      }
    }
  ]
}
```

------

Se você tiver uma chave KMS anexada ao seu bucket S3, a chave precisará da política a seguir. Para obter informações sobre gerenciamento de chaves, consulte [Proteção de dados usando criptografia do lado do servidor com AWS Key Management Service chaves (SSE-KMS)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html) no Guia do usuário do *Amazon* Simple Storage Service.

### Política de chave
<a name="example-key-policy"></a>

```
{
  "Version": "2012-10-17",		 	 	 
  "Effect": "Allow",
  "Principal": {
    "Service": "iotfleetwise.amazonaws.com"
  },
  "Action": [
    "kms:GenerateDataKey",
    "kms:Decrypt"
   ],
  "Resource": "key-arn"
}
```

**Importante**  
Quando você cria um bucket, o S3 cria uma lista de controle de acesso (ACL) padrão que concede ao proprietário do recurso controle total sobre ele. Se a AWS IoT não FleetWise puder fornecer dados para o S3, certifique-se de desativar a ACL no bucket do S3. Para obter mais informações, consulte [Desativação ACLs de todos os novos buckets e imposição da propriedade de objetos no Guia do usuário](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ensure-object-ownership.html) do *Amazon Simple Storage Service*.

## Conceda AWS IoT FleetWise acesso a um destino do Amazon Timestream
<a name="using-timestream"></a>

Quando você usa um destino Timestream, AWS IoT FleetWise entrega os dados do veículo para uma tabela Timestream. Você deve anexar as políticas à função do IAM para permitir o envio de dados AWS IoT FleetWise para o Timestream.

Se você usa o console para [criar uma campanha](create-campaign.md#create-campaign-console), a AWS IoT anexa FleetWise automaticamente a política necessária à função.

**nota**  
O Amazon Timestream não está disponível na região Ásia-Pacífico (Mumbai).

Antes de começar, verifique o seguinte:

**Importante**  
Você deve usar a mesma AWS região ao criar recursos de Timestream para IoT AWS . FleetWise Se você mudar de AWS região, poderá ter problemas para acessar os recursos do Timestream. 
AWS A IoT FleetWise está disponível no Leste dos EUA (Norte da Virgínia), Europa (Frankfurt) e Ásia-Pacífico (Mumbai).
Para ver a lista de regiões compatíveis, consulte [Endpoints e cotas do Timestream](https://docs.aws.amazon.com/general/latest/gr/timestream.html) na *Referência geral da AWS*.
+ É necessário ter um banco de dados do Timestream. Para ver um tutorial, consulte [Criar um banco de dados](https://docs.aws.amazon.com/timestream/latest/developerguide/console_timestream.html#console_timestream.db.using-console) no *Amazon Timestream* Developer Guide.
+ Você deve ter uma tabela criada no banco de dados do Timestream especificado. Para ver um tutorial, consulte [Criar uma tabela](https://docs.aws.amazon.com/timestream/latest/developerguide/console_timestream.html#console_timestream.table.using-console) no *Amazon Timestream Developer Guide*.

Você pode usar o AWS CLI para criar uma função do IAM com uma política de confiança para o Timestream. Para criar um perfil do IAM, execute o comando a seguir.

**Para criar um perfil do IAM com uma política de confiança**
+ *TimestreamExecutionRole*Substitua pelo nome da função que você está criando.
+ *trust-policy*Substitua pelo arquivo.json que contém a política de confiança.

```
aws iam create-role --role-name TimestreamExecutionRole --assume-role-policy-document file://trust-policy.json
```

### Política de confiança
<a name="example-trust-policy"></a>

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "timestreamTrustPolicy",
      "Effect": "Allow",
      "Principal": {
        "Service": "iotfleetwise.amazonaws.com"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
           "aws:SourceArn": [
            "arn:aws:iotfleetwise:region:123456789012:campaign/campaign-name"
           ],
           "aws:SourceAccount": [
            "123456789012"
          ]
        }
      }
    }
  ]
}
```

------

Crie uma política de permissões para dar FleetWise permissões à AWS IoT para gravar dados no Timestream. Para criar uma política de permissões, execute o seguinte comando.

**Para criar uma política de permissões**
+ *AWSIoTFleetwiseAccessTimestreamPermissionsPolicy*Substitua pelo nome da política que você está criando.
+ *permissions-policy*Substitua pelo nome do arquivo JSON que contém a política de permissões.

```
aws iam create-policy --policy-name AWSIoTFleetwiseAccessTimestreamPermissionsPolicy --policy-document file://permissions-policy.json
```

### Política de permissões
<a name="example-permissions-policy"></a>

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "timestreamIngestion",
      "Effect": "Allow",
      "Action": [
        "timestream:WriteRecords",
        "timestream:Select",
        "timestream:DescribeTable"
      ],
      "Resource": "table-arn"
    },
    {
      "Sid": "timestreamDescribeEndpoint",
      "Effect": "Allow",
      "Action": [
        "timestream:DescribeEndpoints"
      ],
      "Resource": "*"
    }
  ]
}
```

------

**Para anexar a política de permissões ao perfil do IAM**

1. Na saída, copie o nome de recurso da Amazon (ARN) da política de permissões.

1. Para anexar a política de permissões do perfil do IAM, execute o comando a seguir.
   + *permissions-policy-arn*Substitua pelo ARN que você copiou na etapa anterior.
   + *TimestreamExecutionRole*Substitua pelo nome da função do IAM que você criou.

   ```
   aws iam attach-role-policy --policy-arn permissions-policy-arn --role-name TimestreamExecutionRole
   ```

Para obter mais informações, consulte [Gerenciamento de acesso para recursos do AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html) no *Guia do usuário do IAM*.

## Conceda AWS IoT Device Management permissão para gerar a carga útil para comandos com AWS IoT FleetWise
<a name="generate-command-payload"></a>

Quando você usa o recurso de comandos para iniciar a execução de um comando, AWS IoT Device Management buscará o comando e os parâmetros do comando da solicitação recebida. Em seguida, ele exige permissões para acessar os FleetWise recursos de AWS IoT para validar a solicitação e gerar a carga útil. A carga útil é então enviada ao veículo AWS IoT Device Management por meio do MQTT para o tópico de solicitação de comando no qual seu veículo se inscreveu.

Primeiro, você deve criar uma função do IAM que AWS IoT Device Management conceda as permissões necessárias para gerar a carga. Em seguida, forneça o ARN dessa função à [https://docs.aws.amazon.com/iot/latest/apireference/API_CreateCommand.html](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateCommand.html)API usando o `roleArn` campo. Veja a seguir alguns exemplos de políticas.

**Importante**  
Para a função do IAM, você deve usar a Região da AWS mesma em que criou o veículo e os recursos de comando. Se você mudar Região da AWS, poderá ter problemas para acessar os recursos.

A função do IAM precisa ter a seguinte política de confiança.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "RemoteCommandsTrustPolicy",
      "Effect": "Allow",
      "Principal": {
        "Service": "iot.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

### Conceda permissões a todos os veículos (coisas de IoT)
<a name="generate-command-payload-example1"></a>

O exemplo a seguir mostra como conceder permissões para gerar a carga útil para todos os veículos registrados como AWS IoT itens.

**nota**  
Essa política pode ser excessivamente permissiva. Use o princípio do privilégio mínimo para garantir que você conceda somente as permissões necessárias.
Em vez disso, para negar permissões, altere `"Effect": "Allow"` para `"Effect": "Deny"` a política do IAM.

Neste exemplo, substitua:
+ *region*com você Região da AWS onde você está usando os recursos de AWS IoT. FleetWise 
+ *111122223333*com seu Conta da AWS número.

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

****  

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

------

### Conceda permissão a um veículo específico (coisa de IoT)
<a name="generate-command-payload-example2"></a>

O exemplo a seguir mostra como conceder permissões para gerar a carga útil de um veículo específico registrado como uma AWS IoT coisa.

Neste exemplo, substitua:
+ *region*com você Região da AWS onde você está usando os recursos de AWS IoT. FleetWise 
+ *111122223333*com seu Conta da AWS número.
+ *<VEHICLE\$1NAME>*com o nome IoT do seu veículo.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iotfleetwise:GenerateCommandPayload",
            "Resource": "arn:aws:iot:us-east-1:111122223333:thing/<VEHICLE_NAME>"
        }
    ]
}
```

------

### Conceda permissões para veículos e sinais específicos
<a name="generate-command-payload-example3"></a>

O exemplo a seguir mostra como conceder permissões para gerar a carga útil do atuador para um veículo específico.

Neste exemplo, substitua:
+ *region*com você Região da AWS onde você está usando os recursos de AWS IoT. FleetWise 
+ *111122223333*com seu Conta da AWS número.
+ *<VEHICLE\$1NAME>*com o nome IoT do seu veículo.
+ *<SIGNAL\$1FQN>*com o nome do sinal, como*<Vehicle.actuator2>*.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Statement1",
            "Effect": "Allow",
            "Action": "iotfleetwise:GenerateCommandPayload",
            "Resource": "arn:aws:iot:us-east-1:111122223333:thing/<VEHICLE_NAME>",
            "Condition": {
                "ForAnyValue:StringEquals": {
                    "iotfleetwise:Signals": [
                        "<SIGNAL_FQN>"
                    ]
                }
            }
        }
    ]
}
```

------

### Conceda permissões para veículos e modelos de estado específicos
<a name="generate-command-payload-example4"></a>

O exemplo a seguir mostra como conceder permissões para gerar a carga útil para um modelo específico de veículo e estado.

Neste exemplo, substitua:
+ *region*é Região da AWS onde você está usando os recursos de AWS IoT. FleetWise 
+ *111122223333*é o seu Conta da AWS número.
+ *<VEHICLE\$1NAME>*é o nome da IoT para seu veículo.
+ *<STATE\$1TEMPLATE\$1ID>*com o identificador do seu modelo de estado.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Statement1",
            "Effect": "Allow",
            "Action": "iotfleetwise:GenerateCommandPayload",
            "Resource": [
                "arn:aws:iot:us-east-1:111122223333:thing/<VEHICLE_NAME>",
                "arn:aws:iotfleetwise:us-east-1:111122223333:state-template/<STATE_TEMPLATE_ID>"
            ]
        }
    ]
}
```

------

### Conceda permissões para usar chaves KMS gerenciadas pelo cliente
<a name="generate-command-payload-example5"></a>

Se você habilitou as chaves KMS gerenciadas pelo cliente para AWS IoT FleetWise, o exemplo a seguir mostra como conceder permissões para gerar a carga.

Neste exemplo, substitua:
+ *region*com você Região da AWS onde você está usando os recursos de AWS IoT. FleetWise 
+ *111122223333*com seu Conta da AWS número.
+ *<KMS\$1KEY\$1ID>*com o ID da sua chave KMS.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iotfleetwise:GenerateCommandPayload",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "kms:Decrypt",
            "Resource": "arn:aws:kms:us-east-1:111122223333:key/<KMS_KEY_ID>"
        }
    ]
}
```

------