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
, update
delete
, 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 job
thinggroup
, 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 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 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.