

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

# Preparação de segurança
<a name="preparing-security"></a>

Esta seção discute os principais requisitos de segurança do AWS IoT Device Management Software Package Catalog.

## Autenticação baseada em recurso
<a name="resource-based-authorization"></a>

O Catálogo de pacotes de software usa autorização baseada em recursos para fornecer segurança adicional ao atualizar o software em sua frota. Isso significa que você deve criar uma política AWS Identity and Access Management (IAM) que conceda direitos de execução`create`,`read`, `update``delete`, e `list` ações para pacotes e versões de pacotes de software e referenciar os pacotes de software e as versões de pacotes específicos que você deseja implantar na `Resources` seção. Você também precisa desses direitos para poder atualizar a [sombra nomeada reservada](https://docs.aws.amazon.com/iot/latest/developerguide/preparing-to-use-software-package-catalog.html#reserved-named-shadow). Você faz referência aos pacotes de software e às versões dos pacotes incluindo o nome do recurso da Amazon (ARN) para cada entidade.

**nota**  
*Se você pretende que a política conceda direitos para chamadas de API da versão do pacote (como [CreatePackageVersion[UpdatePackageVersion](https://docs.aws.amazon.com/iot/latest/apireference/API_UpdatePackageVersion.html)](https://docs.aws.amazon.com/iot/latest/apireference/API_CreatePackageVersion.html),, [DeletePackageVersion](https://docs.aws.amazon.com/iot/latest/apireference/API_DeletePackageVersion.html)), é necessário incluir o pacote de software e a versão do pacote ARNs na política.* Se você pretende que a política conceda direitos para chamadas de API de pacotes de software (como [CreatePackage[UpdatePackage](https://docs.aws.amazon.com/iot/latest/apireference/API_UpdatePackage.html)](https://docs.aws.amazon.com/iot/latest/apireference/API_CreatePackage.html), e [DeletePackage](https://docs.aws.amazon.com/iot/latest/apireference/API_DeletePackage.html)), você deve incluir somente o ARN do pacote de software na política.

Estruture o pacote de software e a versão do pacote da ARNs seguinte forma:
+ Pacote de software: `arn:aws:iot:<region>:<accountID>:package/<packageName>/package` 
+ Versão do pacote: `arn:aws:iot:<region>:<accountID>:package/<packageName>/version/<versionName>` 

**nota**  
Há outros direitos relacionados que você pode incluir nesta política. Por exemplo, você pode incluir um ARN para o `job`, `thinggroup`, e `jobtemplate`. Para obter mais informações e uma lista completa das opções de política, consulte [Protegendo usuários e dispositivos com AWS IoT trabalhos](https://docs.aws.amazon.com/iot/latest/developerguide/iot-jobs-security.html).

Por exemplo, se você tiver um pacote de software e uma versão do pacote com o seguinte nome:
+ AWS IoT coisa: `myThing`
+ Nome do pacote: `samplePackage`
+ Versão `1.0.0`

A política pode ser igual a este exemplo:

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iot:createPackage",
                "iot:createPackageVersion",
                "iot:updatePackage",
                "iot:updatePackageVersion"
            ],
            "Resource": [
               "arn:aws:iot:us-east-1:111122223333:package/samplePackage",
               "arn:aws:iot:us-east-1:111122223333:package/samplePackage/version/1.0.0"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iot:GetThingShadow",
                "iot:UpdateThingShadow"
            ],
            "Resource": "arn:aws:iot:us-east-1:111122223333:thing/myThing/$package"
        }
    ]
}
```

## AWS IoT Job rights para implantar versões de pacotes
<a name="job-rights-deploy-versions"></a>

Para fins de segurança, é importante conceder direitos para implantar pacotes e versões de pacotes e nomear os pacotes e versões de pacotes específicos que eles podem implantar. Para fazer isso, você cria uma política e um perfil do IAM que concedem permissão para implantar tarefas com versões de pacotes. A política deve especificar as versões do pacote de destino como um recurso.

**Política do IAM**

A política do IAM concede o direito de criar uma tarefa que inclua o pacote e a versão nomeados na seção `Resource`.

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iot:CreateJob",
                "iot:CreateJobTemplate"
            ],
            "Resource":[
                "arn:aws:iot:*:111122223333:job/<jobId>",
                "arn:aws:iot:*:111122223333:thing/<thingName>/$package",
                "arn:aws:iot:*:111122223333:thinggroup/<thingGroupName>",
                "arn:aws:iot:*:111122223333:jobtemplate/<jobTemplateName>",
                "arn:aws:iot:*:111122223333:package/<packageName>/version/<versionName>"
            ]
        }
    ]
}
```

**nota**  
Se você quiser implantar uma tarefa que desinstale um pacote de software e uma versão do pacote, você deve autorizar um ARN em que a versão do pacote seja `$null`, como mostrado a seguir:

```
arn:aws:iot:<regionCode>:111122223333:package/<packageName>/version/$null
```

## AWS IoT Job rights para atualizar a sombra nomeada reservada
<a name="job-rights-update-reserved-named-shadow"></a>

Para permitir que as tarefas atualizem a sombra de nome reservada do objeto quando a tarefa for concluída com êxito, você deve criar um perfil e uma política do IAM. Você pode fazer isso de duas maneiras no console AWS IoT . A primeira é quando você cria um pacote de software no console. Se você vir a caixa de diálogo **Habilitar dependências para gerenciamento de pacotes**, poderá optar por usar uma função existente ou criar uma nova função. Ou, no console AWS IoT , escolha **Configurações**, em seguida **Gerenciar indexação** e, então, **Gerenciar indexação para pacotes e versões de dispositivos**. 

**nota**  
Se você optar por fazer com que o serviço AWS IoT Job atualize a sombra nomeada reservada quando um trabalho for concluído com êxito, a chamada da API será contabilizada nas **operações de Device Shadow e de registro** e poderá ter um custo. Para obter mais informações, consulte [Preços do AWS IoT Core](https://aws.amazon.com/iot-core/pricing/).

Quando você usa a opção **Criar função**, o nome da função gerada começa com `aws-iot-role-update-shadows` e contém as seguintes políticas:

**Configuração de um perfil**

**Permissões**  
A política de permissões concede os direitos de consultar e atualizar a sombra do objeto. O parâmetro `$package` no ARN do recurso tem como alvo a sombra nomeada reservada.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iot:DescribeEndpoint",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iot:GetThingShadow",
                "iot:UpdateThingShadow"
            ],
            "Resource": [
            "arn:aws:iot:us-east-1:111122223333:thing/<thingName>/$package"
            ]
        }
    ]
}
```

**Relação de confiança**  
Além da política de permissões, a função exige uma relação de confiança com AWS IoT Core para que a entidade possa assumir a função e atualizar a sombra nomeada reservada.    
****  

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

**Configuração de uma política de usuário**

**objetivo: PassRole permissão**  
Por fim, você deve ter a permissão para passar a função AWS IoT Core ao chamar a operação da [ UpdatePackageConfiguration](https://docs.aws.amazon.com/iot/latest/apireference/API_UpdatePackageConfiguration.html)API.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iam:PassRole",
                "iot:UpdatePackageConfiguration"
            ],
            "Resource": "arn:aws:iam::111122223333:role/<roleName>"
        }
    ]
}
```

## AWS IoT Permissões de trabalho para baixar do Amazon S3
<a name="job-rights-download-job-document"></a>

O documento de trabalho é salvo no Amazon S3. Você se refere a esse arquivo ao enviar por meio de AWS IoT Jobs. Você deve fornecer a AWS IoT Jobs os direitos de baixar o arquivo (`s3:GetObject`). Você também deve estabelecer uma relação de confiança entre o Amazon S3 e AWS IoT Jobs. Para obter instruções sobre como criar essas políticas, consulte [Pré-assinado URLs](https://docs.aws.amazon.com/iot/latest/developerguide/create-manage-jobs.html#create-manage-jobs-presigned-URLs) em [Gerenciando trabalhos](https://docs.aws.amazon.com/iot/latest/developerguide/create-manage-jobs.html).

## Permissões para atualizar a lista de materiais de software para uma versão do pacote
<a name="job-rights-update-sbom"></a>

Para atualizar a lista de materiais de software para uma versão de pacote nos estados de `Draft``Published`, ou `Deprecated` ciclo de vida, você precisa de uma AWS Identity and Access Management função e políticas para localizar a nova lista de materiais de software no Amazon S3 e atualizar a versão do pacote em. AWS IoT Core

Primeiro, você colocará a lista de materiais de software atualizada em seu bucket com versionamento do Amazon S3 e chamará a operação `[UpdatePackageVersion](https://docs.aws.amazon.com/iot/latest/apireference/API_UpdatePackageVersion.html)` da API com o parâmetro `sboms` incluído. Em seguida, seu diretor autorizado assumirá a função do IAM que você criou, localizará a lista de materiais de software atualizada no Amazon S3 e atualizará a versão do pacote no AWS IoT Core Software Package Catalog.

As seguintes políticas são necessárias para realizar essa atualização:

**Políticas**
+ **Política de confiança**: política que estabelece uma relação de confiança com a entidade principal autorizada, assumindo o perfil do IAM, para que ela possa localizar a lista de materiais de software atualizada do seu bucket com versionamento no Amazon S3 e atualizar a versão do pacote em AWS IoT Core.
  +   
****  

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

    ```
    {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "Service": "iot.amazonaws.com"
            },
                "Action": "sts:AssumeRole"
            }
        ]
    }
    ```
+ **Política de permissões**: política para acessar o bucket com versionamento do Amazon S3 em que a lista de materiais do software é armazenada para uma versão do pacote e atualizá-la no AWS IoT Core.
  +   
****  

    ```
    {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "s3:GetObject"
                ],
                "Resource": [
                    "arn:aws:s3:::awsexamplebucket1"
                ]
            }
        ]
    }
    ```
  +   
****  

    ```
    {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "iot:UpdatePackageVersion"
                ],
                "Resource": [
                    "arn:aws:iot:*:111122223333:package/<packageName>/version/<versionName>"
                ]
            }
        ]
    }
    ```
+ **Transmitir permissões de função**: política que concede permissão para passar a função do IAM para o Amazon S3 AWS IoT Core e quando você chama `[UpdatePackageVersion](https://docs.aws.amazon.com/iot/latest/apireference/API_UpdatePackageVersion.html)` a operação da API.
  +   
****  

    ```
    {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "iam:PassRole",
            "s3:GetObject"
          ],
          "Resource": [
            "arn:aws:s3:::awsexamplebucket1"
          ]
        }
      ]
    }
    ```
  +   
****  

    ```
    {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "iam:PassRole",
                    "iot:UpdatePackageVersion"
                ],
                "Resource": "arn:aws:iam::111122223333:role/<roleName>"
            }
        ]
    }
    ```

**nota**  
Você não pode atualizar a lista de materiais do software em uma versão do pacote que tenha passado para o estado de ciclo de vida `Deleted`.

Para obter mais informações sobre como criar uma função do IAM para um AWS serviço, consulte [Criação de uma função para delegar permissão a um AWS serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html).

Para obter mais informações sobre a criação de um bucket do Amazon S3 e o upload de objetos nele, consulte [Criar um bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) e [Fazer upload de objetos](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html).