Preparação de segurança - AWS IoT Core

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

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

Autenticação baseada em recurso

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çãocreate,read, updatedelete, e list ações para pacotes de software e versões de pacotes 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. Você faz referência aos pacotes de software e às versões dos pacotes incluindo um Amazon Resource Name (ARN) para cada entidade.

nota

Se você pretende que a política conceda direitos para API chamadas de versão do pacote (como CreatePackageVersionUpdatePackageVersion,, DeletePackageVersion), então você precisa 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 API chamadas de pacotes de software (como CreatePackageUpdatePackage, e DeletePackage), você deve incluir somente o pacote de software ARN 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 jobthinggroup, jobtemplate e. 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.

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

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 IAM função e uma política que concedem permissão para implantar trabalhos com versões de pacotes. A política deve especificar as versões do pacote de destino como um recurso.

IAMpolítica

A IAM política concede o direito de criar um trabalho que inclua o pacote e a versão nomeados na Resource seção.

{ "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 um trabalho que desinstale um pacote de software e uma versão do pacote, você deve autorizar e ARN onde está a versão do pacote$null, como a seguir:

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

AWS IoT Job rights para atualizar a sombra nomeada reservada

Para permitir que os trabalhos atualizem a sombra do nome reservado da coisa quando o trabalho for concluído com êxito, você deve criar uma IAM função e uma política. 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 API chamada será contabilizada em suas operações de Device Shadow e de registro e poderá ter um custo. Para obter mais informações, consulte Definição de preço do AWS IoT Core.

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 $package parâmetro no recurso ARN 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:<regionCode>: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 permissão para passar a função AWS IoT Core ao chamar a UpdatePackageConfigurationAPIoperação.

{ "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

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 em Gerenciando trabalhos.

Permissões para atualizar a lista de materiais do software para uma versão do pacote

Para atualizar a lista de materiais de software para uma versão de pacote nos estados de DraftPublished, 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 Amazon S3 versionado e chamará UpdatePackageVersion API a operação com sboms o parâmetro incluído. Em seguida, seu diretor autorizado assumirá a IAM função 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 o diretor autorizado, assumindo a IAM função, para que ele possa localizar a lista de materiais de software atualizada do seu bucket versionado 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 versionado do Amazon S3 em que a lista de materiais do software é armazenada para uma versão do pacote e atualizá-la. 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>" ] } ] }
  • Passe permissões de função: política que concede permissão para passar a IAM função para o Amazon S3 AWS IoT Core e quando você chama UpdatePackageVersion API a operação.

    • { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:PassRole", "s3:GetObject" ], "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 do Deleted ciclo de vida.

Para obter mais informações sobre como criar uma IAM função para um AWS serviço, consulte Criação de uma função para delegar permissão a um AWS serviço.

Para obter mais informações sobre a criação de um bucket do Amazon S3 e o upload de objetos nele, consulte Criação de um bucket e Carregamento de objetos.