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 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. 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 CreatePackageVersionUpdatePackageVersion,, DeletePackageVersion), é 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 CreatePackageUpdatePackage, e DeletePackage), 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>/packageVersã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.
Por exemplo, se você tiver um pacote de software e uma versão do pacote com o seguinte nome:
AWS IoTcoisa:
myThingNome do pacote:
samplePackageVersã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 IoTJob 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 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 IoTJob rights para atualizar a sombra nomeada reservada
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
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
$packageno 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 UpdatePackageConfigurationAPI.
-
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:PassRole", "iot:UpdatePackageConfiguration" ], "Resource": "arn:aws:iam::111122223333:role/<roleName>" } ] }
AWS IoTPermissõ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 de 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 com versionamento do Amazon S3 e chamará a operação UpdatePackageVersion 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
UpdatePackageVersiona 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.
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 e Fazer upload de objetos.