Instalar o software AWS IoT Greengrass Core com provisionamento manual de recursos. - AWS IoT Greengrass

Instalar o software AWS IoT Greengrass Core com provisionamento manual de recursos.

O software AWS IoT Greengrass Core inclui um instalador que configura seu dispositivo como um dispositivo principal do Greengrass. Para configurar um dispositivo manualmente, é possível criar os recursos necessários do AWS IoT e do IAM para o dispositivo usar. Se você criar esses recursos manualmente, não precisará fornecer credenciais da AWS para o instalador.

Ao instalar manualmente o software AWS IoT Greengrass Core, também é possível configurar o dispositivo para usar um proxy de rede ou conectar-se com a AWS na porta 443. Talvez seja necessário especificar essas opções de configuração se o dispositivo estiver protegido por um firewall ou proxy de rede, por exemplo. Para ter mais informações, consulte Conectar-se à porta 443 ou por meio de um proxy de rede.

Também é possível configurar o software AWS IoT Greengrass Core para usar um Hardware Security Module (HSM – Módulo de segurança de hardware) por meio da interface PKCS#11. Esse recurso permite que você armazene com segurança arquivos de chave privada e certificado para que eles não sejam expostos ou duplicados no software. Você pode armazenar chaves privadas e certificados em um módulo de hardware, como um HSM, um Trusted Platform Module (TPM – Módulo de plataforma confiável) ou outro elemento criptográfico. Esse recurso está disponível apenas em dispositivos Linux. Para mais informações sobre a segurança do hardware e os requisitos para usá-lo, consulte Integração de segurança de hardware.

Importante

Antes de baixar o software AWS IoT Greengrass Core, verifique se seu dispositivo principal atende aos requisitos para instalar e executar o software AWS IoT Greengrass Core v2.0.

Recuperar endpoints da AWS IoT

Obtenha os endpoints da AWS IoT para sua Conta da AWS e salve-os para usar mais tarde. Seu dispositivo usa esses endpoints para se conectar à AWS IoT. Faça o seguinte:

  1. Obtenha o endpoint de dados do AWS IoT para sua Conta da AWS.

    aws iot describe-endpoint --endpoint-type iot:Data-ATS

    Se a solicitação for bem-sucedida, a resposta será semelhante ao exemplo a seguir.

    { "endpointAddress": "device-data-prefix-ats.iot.us-west-2.amazonaws.com" }
  2. Obtenha o endpoint de credenciais do AWS IoT para sua Conta da AWS.

    aws iot describe-endpoint --endpoint-type iot:CredentialProvider

    Se a solicitação for bem-sucedida, a resposta será semelhante ao exemplo a seguir.

    { "endpointAddress": "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com" }

Crie uma coisa do AWS IoT

Os itens da AWS IoT representam dispositivos e entidades lógicas que se conectam à AWS IoT. Os dispositivos principais do Greengrass são itens da AWS IoT. Quando você registra um dispositivo como um objeto da AWS IoT, ele pode usar um certificado digital para autenticação com a AWS.

Nesta seção, você cria um item da AWS IoT que representa seu dispositivo.

Como criar uma coisa AWS IoT
  1. Crie uma coisa da AWS IoT para o dispositivo. Execute o comando a seguir no computador de desenvolvimento.

    • Substitua MyGreengrassCore pelo nome da coisa a ser usada. Esse nome também é o nome do dispositivo principal do Greengrass.

      nota

      O nome do objeto não pode conter caracteres de dois pontos (:).

    aws iot create-thing --thing-name MyGreengrassCore

    Se a solicitação for bem-sucedida, a resposta será semelhante ao exemplo a seguir.

    { "thingName": "MyGreengrassCore", "thingArn": "arn:aws:iot:us-west-2:123456789012:thing/MyGreengrassCore", "thingId": "8cb4b6cd-268e-495d-b5b9-1713d71dbf42" }
  2. (Opcional) Adicione o objeto da AWS IoT a um grupo de objetos novo ou existente. Use grupos de objetos para gerenciar frotas de dispositivos principais do Greengrass. Ao implantar componentes de software nos dispositivos, é possível segmentar dispositivos individuais ou grupos de dispositivos. É possível adicionar um dispositivo a um grupo de objetos com uma implantação ativa do Greengrass para implantar os componentes de software desse grupo de objetos no dispositivo. Faça o seguinte:

    1. (Opcional) Crie um grupo de coisas da AWS IoT.

      • Substitua MyGreengrassCoreGroup pelo nome do grupo de coisas a ser criado.

        nota

        O nome do grupo de objetos não pode conter caracteres de dois pontos (:).

      aws iot create-thing-group --thing-group-name MyGreengrassCoreGroup

      Se a solicitação for bem-sucedida, a resposta será semelhante ao exemplo a seguir.

      { "thingGroupName": "MyGreengrassCoreGroup", "thingGroupArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/MyGreengrassCoreGroup", "thingGroupId": "4df721e1-ff9f-4f97-92dd-02db4e3f03aa" }
    2. Adicione a coisa da AWS IoT a um grupo de coisas.

      • Substitua MyGreengrassCore pelo nome da coisa da AWS IoT.

      • Substitua MyGreengrassCoreGroup pelo nome do grupo de coisas.

      aws iot add-thing-to-thing-group --thing-name MyGreengrassCore --thing-group-name MyGreengrassCoreGroup

      O comando não terá nenhuma saída se a solicitação for bem-sucedida.

Criar o certificado da coisa

Quando você registra um dispositivo como um objeto da AWS IoT, ele pode usar um certificado digital para autenticação com a AWS. Esse certificado permite que o dispositivo se comunique com a AWS IoT e o AWS IoT Greengrass.

Nesta seção, você cria e baixa certificados que o dispositivo pode usar para se conectar com a AWS.

Para configurar o software AWS IoT Greengrass Core para usar um módulo de segurança de hardware (HSM) para armazenar com segurança a chave privada e o certificado, siga as etapas para criar o certificado a partir de uma chave privada em um HSM. Caso contrário, siga as etapas para criar o certificado e a chave privada no serviço da AWS IoT. O atributo de segurança de hardware está disponível somente em dispositivos Linux. Para mais informações sobre a segurança do hardware e os requisitos para usá-lo, consulte Integração de segurança de hardware.

Criar o certificado e a chave privada no serviço da AWS IoT

Para criar o certificado do objeto
  1. Crie uma pasta na qual você baixa os certificados para o objeto da AWS IoT.

    mkdir greengrass-v2-certs
  2. Crie e baixe os certificados para o objeto da AWS IoT.

    aws iot create-keys-and-certificate --set-as-active --certificate-pem-outfile greengrass-v2-certs/device.pem.crt --public-key-outfile greengrass-v2-certs/public.pem.key --private-key-outfile greengrass-v2-certs/private.pem.key

    Se a solicitação for bem-sucedida, a resposta será semelhante ao exemplo a seguir.

    { "certificateArn": "arn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4", "certificateId": "aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4", "certificatePem": "-----BEGIN CERTIFICATE----- MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w 0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZ WF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIw EAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5 jb20wHhcNMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBh MCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBb WF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMx HzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQE BBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVI k60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9TrDHudUZg3qX4waLG5M43q7Wgc/MbQ ITxOUSQv7c7ugFFDzQGBzZswY6786m86gpEIbb3OhjZnzcvQAaRHhdlQWIMm2nr AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4nUhVVxYUntneD9+h8Mg9q6q+auN KyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FkbFFBjvSfpJIlJ00zbhNYS5f6Guo EDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTbNYiytVbZPQUQ5Yaxu2jXnimvw 3rrszlaEXAMPLE= -----END CERTIFICATE-----", "keyPair": { "PublicKey": "-----BEGIN PUBLIC KEY-----\ MIIBIjANBgkqhkEXAMPLEQEFAAOCAQ8AMIIBCgKCAQEAEXAMPLE1nnyJwKSMHw4h\ MMEXAMPLEuuN/dMAS3fyce8DW/4+EXAMPLEyjmoF/YVF/gHr99VEEXAMPLE5VF13\ 59VK7cEXAMPLE67GK+y+jikqXOgHh/xJTwo+sGpWEXAMPLEDz18xOd2ka4tCzuWEXAMPLEahJbYkCPUBSU8opVkR7qkEXAMPLE1DR6sx2HocliOOLtu6Fkw91swQWEXAMPLE\\GB3ZPrNh0PzQYvjUStZeccyNCx2EXAMPLEvp9mQOUXP6plfgxwKRX2fEXAMPLEDa\ hJLXkX3rHU2xbxJSq7D+XEXAMPLEcw+LyFhI5mgFRl88eGdsAEXAMPLElnI9EesG\ FQIDAQAB\ -----END PUBLIC KEY-----\ ", "PrivateKey": "-----BEGIN RSA PRIVATE KEY-----\ key omitted for security reasons\ -----END RSA PRIVATE KEY-----\ " } }

    Salve o nome do recurso da Amazon (ARN) do certificado para usar na configuração do certificado posteriormente.

Crie o certificado a partir de uma chave privada em um HSM

nota

Esse atributo está disponível na versão 2.5.3 e posteriores do componente do núcleo do Greengrass. Atualmente, o AWS IoT Greengrass não é compatível com esse recurso nos dispositivos principais do Windows.

Para criar o certificado do objeto
  1. No dispositivo principal, inicialize um token PKCS#11 no HSM e gere uma chave privada. A chave privada precisa ser uma chave RSA com um tamanho de chave RSA-2048 (ou maior) ou uma chave ECC.

    nota

    Para usar um módulo de segurança de hardware com chaves ECC, use o núcleo do Greengrass v2.5.6 ou posterior.

    Para usar um módulo de segurança de hardware e um gerenciador de segredos, use um módulo de segurança de hardware com chaves RSA.

    Consulte a documentação do HSM para saber como inicializar o token e gerar a chave privada. Se o HSM é compatível com IDs de objeto, especifique uma ID de objeto ao gerar a chave privada. Salve o ID do slot, o PIN do usuário, o rótulo do objeto e o ID do objeto (se o HSM usar um) que você especifica ao inicializar o token e gerar a chave privada. Use esses valores posteriormente ao importar o certificado do objeto para o HSM e configurar o software AWS IoT Greengrass Core.

  2. Crie uma solicitação de assinatura de certificado (CSR) a partir da chave privada. A AWS IoT usa essa CSR para criar um certificado para a chave privada que você gerou no HSM. Para informações sobre como criar um CSR a partir da chave privada, consulte a documentação do HSM. O CSR é um arquivo, como iotdevicekey.csr.

  3. Copie a CSR do dispositivo para o computador de desenvolvimento. Se o SSH e o SCP estiverem habilitados no computador de desenvolvimento e no dispositivo, será possível usar o comando scp no computador de desenvolvimento para transferir o CSR. Substitua o device-ip-address pelo endereço IP do seu dispositivo e substitua ~/iotdevicekey.csr pelo caminho para o arquivo CSR no dispositivo.

    scp device-ip-address:~/iotdevicekey.csr iotdevicekey.csr
  4. No seu computador de desenvolvimento, crie uma pasta na qual você baixa os certificados para o objeto da AWS IoT.

    mkdir greengrass-v2-certs
  5. Use o arquivo CSR para criar e baixar o certificado do objeto da AWS IoT no computador de desenvolvimento.

    aws iot create-certificate-from-csr --set-as-active --certificate-signing-request=file://iotdevicekey.csr --certificate-pem-outfile greengrass-v2-certs/device.pem.crt

    Se a solicitação for bem-sucedida, a resposta será semelhante ao exemplo a seguir.

    { "certificateArn": "arn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4", "certificateId": "aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4", "certificatePem": "-----BEGIN CERTIFICATE----- MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w 0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZ WF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIw EAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5 jb20wHhcNMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBh MCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBb WF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMx HzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQE BBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVI k60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9TrDHudUZg3qX4waLG5M43q7Wgc/MbQ ITxOUSQv7c7ugFFDzQGBzZswY6786m86gpEIbb3OhjZnzcvQAaRHhdlQWIMm2nr AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4nUhVVxYUntneD9+h8Mg9q6q+auN KyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FkbFFBjvSfpJIlJ00zbhNYS5f6Guo EDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTbNYiytVbZPQUQ5Yaxu2jXnimvw 3rrszlaEXAMPLE= -----END CERTIFICATE-----" }

    Salve o ARN do certificado para usar na configuração do certificado posteriormente.

Configurar o certificado do objeto

Anexe o certificado do objeto ao objeto da AWS IoT que você criou anteriormente e adicione uma política de AWS IoT ao certificado para definir as permissões da AWS IoT para o dispositivo principal.

Para configurar o certificado do objeto
  1. Anexe o certificado ao objeto da AWS IoT.

    • Substitua MyGreengrassCore pelo nome da coisa da AWS IoT.

    • Substitua o nome do recurso da Amazon (ARN) do certificado pelo ARN do certificado que você criou na etapa anterior.

    aws iot attach-thing-principal --thing-name MyGreengrassCore --principal arn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4

    O comando não terá nenhuma saída se a solicitação for bem-sucedida.

  2. Crie e anexe uma política de AWS IoT que defina as permissões da AWS IoT para seu dispositivo principal do Greengrass. A política a seguir permite acesso a todos os tópicos MQTT e operações do Greengrass, para que seu dispositivo funcione com aplicativos personalizados e futuras alterações que exijam novas operações do Greengrass. É possível restringir essa política com base em seu caso de uso. Para ter mais informações, consulte Política mínima de AWS IoT para dispositivos principais do AWS IoT Greengrass V2.

    Se você já configurou um dispositivo principal do Greengrass antes, poderá anexar a política AWS IoT em vez de criar uma nova.

    Faça o seguinte:

    1. Crie um arquivo que contenha o documento de política da AWS IoT exigido pelos dispositivos principais do Greengrass.

      Por exemplo, em um sistema baseado em Linux, você pode executar o comando a seguir para usar o GNU nano para criar o arquivo.

      nano greengrass-v2-iot-policy.json

      Copie o JSON a seguir no arquivo.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Publish", "iot:Subscribe", "iot:Receive", "iot:Connect", "greengrass:*" ], "Resource": [ "*" ] } ] }
    2. Crie uma política de AWS IoT a partir do documento de política.

      • Substitua GreengrassV2IoTThingPolicy pelo nome da política a ser criada.

      aws iot create-policy --policy-name GreengrassV2IoTThingPolicy --policy-document file://greengrass-v2-iot-policy.json

      Se a solicitação for bem-sucedida, a resposta será semelhante ao exemplo a seguir.

      { "policyName": "GreengrassV2IoTThingPolicy", "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassV2IoTThingPolicy", "policyDocument": "{ \\"Version\\": \\"2012-10-17\\", \\"Statement\\": [ { \\"Effect\\": \\"Allow\\", \\"Action\\": [ \\"iot:Publish\\", \\"iot:Subscribe\\", \\"iot:Receive\\", \\"iot:Connect\\", \\"greengrass:*\\" ], \\"Resource\\": [ \\"*\\" ] } ] }", "policyVersionId": "1" }
    3. Anexe a política de AWS IoT ao certificado do objeto da AWS IoT.

      • Substitua GreengrassV2IoTThingPolicy pelo nome da política a ser anexada.

      • Substitua o ARN de destino pelo ARN do certificado do objeto da AWS IoT.

      aws iot attach-policy --policy-name GreengrassV2IoTThingPolicy --target arn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4

      O comando não terá nenhuma saída se a solicitação for bem-sucedida.

Criar um perfil de troca de token

Os dispositivos principais do Greengrass usam um perfil de serviço do IAM, chamado perfil de troca de tokens, para autorizar chamadas para os serviços da AWS. O dispositivo usa o provedor de credenciais da AWS IoT para obter credenciais temporárias da AWS para esse perfil, o que permite que o dispositivo interaja com a AWS IoT, envie registros para o Amazon CloudWatch Logs e baixe artefatos de componentes personalizados do Amazon S3. Para ter mais informações, consulte Autorize os dispositivos principais a interagir com os serviços da AWS.

Use um alias de perfil da AWS IoT para configurar o perfil de troca de tokens para os dispositivos principais do Greengrass. Os aliases de perfil permitem que você altere o perfil de troca de tokens de um dispositivo, mas mantenha a mesma configuração do dispositivo. Para mais informações, consulte Autorizar de chamadas diretas para serviços da AWS no Guia do desenvolvedor do AWS IoT Core.

Nesta seção, você cria um perfil do IAM de troca de tokens e um alias de perfil da AWS IoT que aponta para o perfil. Se você já configurou um dispositivo principal do Greengrass, pode usar o perfil de troca de tokens e o alias de perfil em vez de criar novos. Em seguida, você configura o objeto da AWS IoT do dispositivo para usar esse perfil e alias.

Para criar um perfil do IAM de troca de token
  1. Crie um perfil do IAM que seu dispositivo possa usar como um perfil de troca de tokens. Faça o seguinte:

    1. Crie um arquivo que contenha o documento de política de confiança que o perfil de troca de token exige.

      Por exemplo, em um sistema baseado em Linux, você pode executar o comando a seguir para usar o GNU nano para criar o arquivo.

      nano device-role-trust-policy.json

      Copie o JSON a seguir no arquivo.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "credentials.iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    2. Crie o perfil de troca de token com o documento de política de confiança.

      • Substitua GreengrassV2TokenExchangeRole pelo nome do perfil do IAM a ser criado.

      aws iam create-role --role-name GreengrassV2TokenExchangeRole --assume-role-policy-document file://device-role-trust-policy.json

      Se a solicitação for bem-sucedida, a resposta será semelhante ao exemplo a seguir.

      { "Role": { "Path": "/", "RoleName": "GreengrassV2TokenExchangeRole", "RoleId": "AROAZ2YMUHYHK5OKM77FB", "Arn": "arn:aws:iam::123456789012:role/GreengrassV2TokenExchangeRole", "CreateDate": "2021-02-06T00:13:29+00:00", "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "credentials.iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } }
    3. Crie um arquivo que contenha o documento de política de acesso exigido pelo perfil de troca de tokens.

      Por exemplo, em um sistema baseado em Linux, você pode executar o comando a seguir para usar o GNU nano para criar o arquivo.

      nano device-role-access-policy.json

      Copie o JSON a seguir no arquivo.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams", "s3:GetBucketLocation" ], "Resource": "*" } ] }
      nota

      Essa política de acesso não permite acesso a artefatos de componentes nos buckets do S3. Para implantar componentes personalizados que definem artefatos no Amazon S3, é preciso adicionar permissões ao perfil para permitir que seu dispositivo principal recupere artefatos de componentes. Para ter mais informações, consulte Permitir acesso aos buckets do S3 para artefatos de componentes.

      Se você ainda não tem um bucket do S3 para artefatos de componentes, é possivel adicionar essas permissões depois de criar um bucket.

    4. Crie uma política do IAM a partir do documento de política.

      • Substitua GreengrassV2TokenExchangeRole pelo nome da política do IAM a ser criada.

      aws iam create-policy --policy-name GreengrassV2TokenExchangeRoleAccess --policy-document file://device-role-access-policy.json

      Se a solicitação for bem-sucedida, a resposta será semelhante ao exemplo a seguir.

      { "Policy": { "PolicyName": "GreengrassV2TokenExchangeRoleAccess", "PolicyId": "ANPAZ2YMUHYHACI7C5Z66", "Arn": "arn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccess", "Path": "/", "DefaultVersionId": "v1", "AttachmentCount": 0, "PermissionsBoundaryUsageCount": 0, "IsAttachable": true, "CreateDate": "2021-02-06T00:37:17+00:00", "UpdateDate": "2021-02-06T00:37:17+00:00" } }
    5. Anexe a política do IAM ao perfil de troca do tokens.

      • Substitua GreengrassV2TokenExchangeRole pelo nome do perfil do IAM.

      • Substitua o ARN da política pelo ARN da política do IAM que você criou na etapa anterior.

      aws iam attach-role-policy --role-name GreengrassV2TokenExchangeRole --policy-arn arn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccess

      O comando não terá nenhuma saída se a solicitação for bem-sucedida.

  2. Crie um alias de perfil da AWS IoT que aponte para o perfil de troca de tokens.

    • Substitua GreengrassCoreTokenExchangeRoleAlias pelo nome do alias de perfil a ser criado.

    • Substitua o ARN do perfil pelo ARN do perfil do IAM que você criou na etapa anterior.

    aws iot create-role-alias --role-alias GreengrassCoreTokenExchangeRoleAlias --role-arn arn:aws:iam::123456789012:role/GreengrassV2TokenExchangeRole

    Se a solicitação for bem-sucedida, a resposta será semelhante ao exemplo a seguir.

    { "roleAlias": "GreengrassCoreTokenExchangeRoleAlias", "roleAliasArn": "arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias" }
    nota

    Para criar um alias de perfil, você precisa ter permissão para passar o perfil do IAM de troca de tokens para a AWS IoT. Se você receber uma mensagem de erro ao tentar criar um alias de perfil, verifique se o usuário da AWS tem essa permissão. Para mais informações, consulte Conceder permissões ao usuário para passar um perfil a um serviço da AWS no Guia do usuário do AWS Identity and Access Management.

  3. Crie e anexe uma política de AWS IoT que permita que seu dispositivo principal do Greengrass use o alias de perfil para assumir o perifl de troca de tokens. Se você já configurou um dispositivo principal do Greengrass antes, poderá anexar o alias de perfil da AWS IoT em vez de criar um novo. Faça o seguinte:

    1. (Opcional) Crie um arquivo que contenha o documento de política de AWS IoT exigido pelo alias de perfil.

      Por exemplo, em um sistema baseado em Linux, você pode executar o comando a seguir para usar o GNU nano para criar o arquivo.

      nano greengrass-v2-iot-role-alias-policy.json

      Copie o JSON a seguir no arquivo.

      • Substitua o ARN do recurso pelo ARN do alias da do perfil.

      { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iot:AssumeRoleWithCertificate", "Resource": "arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias" } ] }
    2. Crie uma política de AWS IoT a partir do documento de política.

      • Substitua GreengrassCoreTokenExchangeRoleAliasPolicy pelo nome da política de AWS IoT a ser criada.

      aws iot create-policy --policy-name GreengrassCoreTokenExchangeRoleAliasPolicy --policy-document file://greengrass-v2-iot-role-alias-policy.json

      Se a solicitação for bem-sucedida, a resposta será semelhante ao exemplo a seguir.

      { "policyName": "GreengrassCoreTokenExchangeRoleAliasPolicy", "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassCoreTokenExchangeRoleAliasPolicy", "policyDocument": "{ \\"Version\\":\\"2012-10-17\\", \\"Statement\\": [ { \\"Effect\\": \\"Allow\\", \\"Action\\": \\"iot:AssumeRoleWithCertificate\\", \\"Resource\\": \\"arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias\\" } ] }", "policyVersionId": "1" }
    3. Anexe a política de AWS IoT ao certificado do objeto da AWS IoT.

      • Substitua GreengrassCoreTokenExchangeRoleAliasPolicy pelo nome da política de AWS IoT de alias do perfil.

      • Substitua o ARN de destino pelo ARN do certificado do objeto da AWS IoT.

      aws iot attach-policy --policy-name GreengrassCoreTokenExchangeRoleAliasPolicy --target arn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4

      O comando não terá nenhuma saída se a solicitação for bem-sucedida.

Baixar certificados para o dispositivo

Anteriormente, você baixou o certificado do dispositivo para o computador de desenvolvimento. Nesta seção, você copia o certificado para o seu dispositivo principal para configurar o dispositivo com os certificados que ele usa para se conectar à AWS IoT. Você também pode baixar o certificado da autoridade de certificação raiz (CA) da Amazon. Se você usa um HSM, também importa o arquivo de certificado para o HSM nesta seção.

  • Se você criou o certificado e a chave privada do objeto no serviço da AWS IoT anteriormente, siga as etapas para baixar os certificados com a chave privada e os arquivos de certificado.

  • Se você criou o certificado do objeto a partir de uma chave privada em um módulo de segurança de hardware (HSM) anteriormente, siga as etapas para baixar os certificados com a chave privada e o certificado em um HSM.

Baixar certificados com a chave privada e arquivos de certificado

Para baixar certificados para o dispositivo
  1. Copie o certificado da AWS IoT do seu computador de desenvolvimento para o dispositivo. Se o SSH e o SCP estiverem habilitados no computador de desenvolvimento e no dispositivo, será possível usar o comando scp no computador de desenvolvimento para transferir o certificado. Substitua o device-ip-address pelo endereço IP do seu dispositivo.

    scp -r greengrass-v2-certs/ device-ip-address:~
  2. Crie a pasta raiz do Greengrass no dispositivo. Posteriormente, você instalará o software AWS IoT Greengrass Core nessa pasta.

    nota

    O Windows tem uma limitação de comprimento de caminho de 260 caracteres. Se você estiver usando o Windows, use uma pasta raiz como C:\greengrass\v2 ou D:\greengrass\v2 para manter os caminhos dos componentes do Greengrass abaixo do limite de 260 caracteres.

    Linux or Unix
    • Substitua /greengrass/v2 pela pasta a ser usada.

    sudo mkdir -p /greengrass/v2
    Windows Command Prompt
    • Substitua C:\greengrass\v2 pela pasta a ser usada.

    mkdir C:\greengrass\v2
    PowerShell
    • Substitua C:\greengrass\v2 pela pasta a ser usada.

    mkdir C:\greengrass\v2
  3. (Somente Linux) Defina as permissões do pai da pasta raiz do Greengrass.

    • Substitua /greengrass pelo pai da pasta raiz.

    sudo chmod 755 /greengrass
  4. Copie os certificados do objeto da AWS IoT para a pasta raiz do Greengrass.

    Linux or Unix
    • Substitua /greengrass/v2 pela pasta raiz do Greengrass.

    sudo cp -R ~/greengrass-v2-certs/* /greengrass/v2
    Windows Command Prompt
    • Substitua C:\greengrass\v2 pela pasta a ser usada.

    robocopy %USERPROFILE%\greengrass-v2-certs C:\greengrass\v2 /E
    PowerShell
    • Substitua C:\greengrass\v2 pela pasta a ser usada.

    cp -Path ~\greengrass-v2-certs\* -Destination C:\greengrass\v2
  5. Faça download do certificado da autoridade de certificação (CA) raiz da Amazon. Os certificados da AWS IoT são associados ao certificado CA raiz da Amazon por padrão.

    Linux or Unix
    sudo curl -o /greengrass/v2/AmazonRootCA1.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
    Windows Command Prompt (CMD)
    curl -o C:\greengrass\v2\\AmazonRootCA1.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
    PowerShell
    iwr -Uri https://www.amazontrust.com/repository/AmazonRootCA1.pem -OutFile C:\greengrass\v2\\AmazonRootCA1.pem

Baixar certificados com a chave privada e o certificado em um HSM

nota

Esse atributo está disponível na versão 2.5.3 e posteriores do componente do núcleo do Greengrass. Atualmente, o AWS IoT Greengrass não é compatível com esse recurso nos dispositivos principais do Windows.

Para baixar certificados para o dispositivo
  1. Copie o certificado da AWS IoT do seu computador de desenvolvimento para o dispositivo. Se o SSH e o SCP estiverem habilitados no computador de desenvolvimento e no dispositivo, será possível usar o comando scp no computador de desenvolvimento para transferir o certificado. Substitua o device-ip-address pelo endereço IP do seu dispositivo.

    scp -r greengrass-v2-certs/ device-ip-address:~
  2. Crie a pasta raiz do Greengrass no dispositivo. Posteriormente, você instalará o software AWS IoT Greengrass Core nessa pasta.

    nota

    O Windows tem uma limitação de comprimento de caminho de 260 caracteres. Se você estiver usando o Windows, use uma pasta raiz como C:\greengrass\v2 ou D:\greengrass\v2 para manter os caminhos dos componentes do Greengrass abaixo do limite de 260 caracteres.

    Linux or Unix
    • Substitua /greengrass/v2 pela pasta a ser usada.

    sudo mkdir -p /greengrass/v2
    Windows Command Prompt
    • Substitua C:\greengrass\v2 pela pasta a ser usada.

    mkdir C:\greengrass\v2
    PowerShell
    • Substitua C:\greengrass\v2 pela pasta a ser usada.

    mkdir C:\greengrass\v2
  3. (Somente Linux) Defina as permissões do pai da pasta raiz do Greengrass.

    • Substitua /greengrass pelo pai da pasta raiz.

    sudo chmod 755 /greengrass
  4. Importe o arquivo de certificado do objeto, ~/greengrass-v2-certs/device.pem.crt, para o HSM. Consulte a documentação do HSM para saber como importar certificados para ele. Importe o certificado usando o mesmo token, ID do slot, PIN do usuário, rótulo do objeto e ID do objeto (se o HSM usar um) em que você gerou a chave privada no HSM anteriormente.

    nota

    Se você gerou a chave privada anteriormente sem uma ID de objeto e o certificado tiver uma ID de objeto, defina a ID do objeto da chave privada com o mesmo valor do certificado. Consulte a documentação do HSM para saber como definir o ID do objeto de chave privada.

  5. (Opcional) Exclua o arquivo de certificado do item, para que ele exista somente no HSM.

    rm ~/greengrass-v2-certs/device.pem.crt
  6. Faça download do certificado da autoridade de certificação (CA) raiz da Amazon. Os certificados da AWS IoT são associados ao certificado CA raiz da Amazon por padrão.

    Linux or Unix
    sudo curl -o /greengrass/v2/AmazonRootCA1.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
    Windows Command Prompt (CMD)
    curl -o C:\greengrass\v2\\AmazonRootCA1.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
    PowerShell
    iwr -Uri https://www.amazontrust.com/repository/AmazonRootCA1.pem -OutFile C:\greengrass\v2\\AmazonRootCA1.pem

Configurar o ambiente do dispositivo

Siga as etapas nesta seção para configurar um dispositivo Linux ou Windows para usar como dispositivo principal do AWS IoT Greengrass.

Configurar um dispositivo Linux

Para configurar um dispositivo Linux para o AWS IoT Greengrass V2
  1. Instale o runtime do Java, que o software AWS IoT Greengrass Core exige para ser executado. Recomendamos que você use as versões de suporte de longo prazo do Amazon Corretto ou do OpenJDK. A versão 8 ou superior é obrigatória. Os seguintes comandos mostram como instalar o OpenJDK no dispositivo.

    • Para distribuições com base em Debian ou em Ubuntu:

      sudo apt install default-jdk
    • Para distribuições com base em Red Hat:

      sudo yum install java-11-openjdk-devel
    • Para Amazon Linux 2:

      sudo amazon-linux-extras install java-openjdk11
    • Para Amazon Linux 2023:

      sudo dnf install java-11-amazon-corretto -y

    Quando a instalação for concluída, execute o seguinte comando para verificar se o Java é executado no dispositivo Linux.

    java -version

    O comando imprime a versão do Java que é executada no dispositivo. Por exemplo, em uma distribuição baseada em Debian, o resultado pode ser semelhante ao seguinte exemplo.

    openjdk version "11.0.9.1" 2020-11-04
    OpenJDK Runtime Environment (build 11.0.9.1+1-post-Debian-1deb10u2)
    OpenJDK 64-Bit Server VM (build 11.0.9.1+1-post-Debian-1deb10u2, mixed mode)
  2. (Opcional) Crie o usuário e o grupo padrão do sistema que executa componentes no dispositivo. Também é possível optar por permitir que o instalador do software AWS IoT Greengrass Core crie esse usuário e grupo durante a instalação com o argumento --component-default-user do instalador. Para ter mais informações, consulte Argumentos de instalação.

    sudo useradd --system --create-home ggc_user sudo groupadd --system ggc_group
  3. Verifique se o usuário que executa o software AWS IoT Greengrass Core (normalmente root) tem permissão para executar sudo com qualquer usuário e qualquer grupo.

    1. Execute o seguinte comando para abrir o arquivo /etc/sudoers.

      sudo visudo
    2. Verifique se a permissão do usuário se parece com o seguinte exemplo.

      root ALL=(ALL:ALL) ALL
  4. (Opcional) Para executar funções do Lambda em contêineres, habilite cgroups v1 e habilite e monte os cgroups de memória e dispositivos. Se você não planeja executar funções do Lambda em contêineres, ignore esta etapa.

    Para habilitar essas opções de cgroups, inicialize o dispositivo com os seguintes parâmetros do kernel do Linux.

    cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=0

    Para mais informações sobre como visualizar e definir parâmetros do kernel para o dispositivo, consulte a documentação do sistema operacional e do carregador de inicialização. Siga as instruções para definir permanentemente os parâmetros do kernel.

  5. Instale todas as outras dependências necessárias no dispositivo, conforme indicado na lista de requisitos em Requisitos do dispositivo.

Configurar um dispositivo Windows

nota

Esse atributo está disponível para a versão 2.5.0 e posterior do componente de núcleo do Greengrass.

Para configurar um dispositivo Windows para o AWS IoT Greengrass V2
  1. Instale o runtime do Java, que o software AWS IoT Greengrass Core exige para ser executado. Recomendamos que você use as versões de suporte de longo prazo do Amazon Corretto ou do OpenJDK. A versão 8 ou superior é obrigatória.

  2. Verifique se o Java está disponível na variável de sistema PATH e, caso contrário, adicione. A conta LocalSystem executa o software AWS IoT Greengrass Core, então é preciso adicionar Java à variável de sistema PATH em vez da variável de usuário PATH para seu usuário. Faça o seguinte:

    1. Pressione a tecla Windows para abrir o menu Iniciar.

    2. Digite environment variables para pesquisar as opções do sistema no menu Iniciar.

    3. Nos resultados da pesquisa do menu Iniciar, escolha Editar as variáveis de ambiente do sistema para abrir a janela Propriedades do sistema.

    4. Escolha Variáveis de ambiente... para abrir a janela Variáveis de ambiente.

    5. Em Variáveis de Sistema, selecione a variável Path e em seguida Editar. Na janela Editar variável de ambiente, você visualiza cada caminho em uma linha separada.

    6. Verifique se o caminho para a pasta bin da instalação do Java está presente. O arquivo pode ser semelhante ao seguinte exemplo.

      C:\\Program Files\\Amazon Corretto\\jdk11.0.13_8\\bin
    7. Se a pasta bin da instalação do Java estiver ausente do Path, selecione Novo para adicioná-la e, em seguida, selecione OK.

  3. Abra o prompt de comando do Windows (cmd.exe) como um administrador.

  4. Crie o usuário padrão na conta LocalSystem no dispositivo Windows. Substitua senha por uma senha segura.

    net user /add ggc_user password
    dica

    Dependendo da configuração do Windows, a senha do usuário pode ser definida para expirar em uma data futura. Para garantir que suas aplicações do Greengrass continuem operando, monitore a validade da senha e atualize-a antes que ela expire. Também é possível definir que a senha nunca expire.

    • Para verificar quando um usuário e senha expiram, execute o comando a seguir.

      net user ggc_user | findstr /C:expires
    • Para definir que a senha de um usuário nunca expire, execute o seguinte comando.

      wmic UserAccount where "Name='ggc_user'" set PasswordExpires=False
    • Se você usa o Windows 10 ou posterior, em que o comando wmic foi descontinuado, execute o comando do PowerShell a seguir.

      Get-CimInstance -Query "SELECT * from Win32_UserAccount WHERE name = 'ggc_user'" | Set-CimInstance -Property @{PasswordExpires="False"}
  5. Baixe e instale o utilitário PsExec da Microsoft no dispositivo.

  6. Use o utilitário PsExec para armazenar o nome de usuário e a senha do usuário padrão na instância do Credential Manager da conta do LocalSystem. Substitua a senha pela senha do usuário que você definiu anteriormente.

    psexec -s cmd /c cmdkey /generic:ggc_user /user:ggc_user /pass:password

    Se PsExec License Agreement abrir, selecione Accept para concordar com a licença e execute o comando.

    nota

    Em dispositivos Windows, a conta LocalSystem executa o núcleo do Greengrass, e é preciso usar o utilitário PsExec para armazenar as informações padrão do usuário na conta LocalSystem. O uso da aplicação Gerenciador de Credenciais armazena essas informações na conta do Windows do usuário atualmente conectado, em vez da conta LocalSystem.

Download do software do AWS IoT Greengrass Core

Baixe a versão mais recente do software AWS IoT Greengrass Core no seguinte local:

nota

É possível baixar uma versão específica do software AWS IoT Greengrass Core no seguinte local. Substitua a versão pela versão a ser baixada.

https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-version.zip
Para download do software AWS IoT Greengrass Core
  1. No dispositivo principal, baixe o software AWS IoT Greengrass Core para um arquivo chamado greengrass-nucleus-latest.zip.

    Linux or Unix
    curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip
    Windows Command Prompt (CMD)
    curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip
    PowerShell
    iwr -Uri https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip -OutFile greengrass-nucleus-latest.zip

    Ao fazer download desse software, você concorda com o Contrato de licença do software do Greengrass Core.

  2. (Opcional) Para verificar a assinatura do software do núcleo do Greengrass

    nota

    Esse atributo está disponível com o núcleo do Greengrass versão 2.9.5 e posterior.

    1. Use o comando a seguir para verificar a assinatura do artefato do núcleo do Greengrass:

      Linux or Unix
      jarsigner -verify -certs -verbose greengrass-nucleus-latest.zip
      Windows Command Prompt (CMD)

      O nome do arquivo pode parecer diferente dependendo da versão do JDK que você instala. Substitua jdk17.0.6_10 pela versão do JDK que você instalou.

      "C:\\Program Files\\Amazon Corretto\\jdk17.0.6_10\\bin\\jarsigner.exe" -verify -certs -verbose greengrass-nucleus-latest.zip
      PowerShell

      O nome do arquivo pode parecer diferente dependendo da versão do JDK que você instala. Substitua jdk17.0.6_10 pela versão do JDK que você instalou.

      'C:\\Program Files\\Amazon Corretto\\jdk17.0.6_10\\bin\\jarsigner.exe' -verify -certs -verbose greengrass-nucleus-latest.zip
    2. A invocação jarsigner produz uma saída que indica os resultados da verificação.

      1. Se o arquivo zip do núcleo do Greengrass estiver assinado, a saída conterá a seguinte declaração:

        jar verified.
      2. Se o arquivo zip do núcleo do Greengrass não estiver assinado, a saída conterá a seguinte declaração:

        jar is unsigned.
    3. Se você forneceu a opção -certs do Jarsigner junto com as opções -verify e -verbose, a saída também incluirá informações detalhadas do certificado do assinante.

  3. Descompacte o software AWS IoT Greengrass Core em uma pasta no dispositivo. Substitua o GreengrassInstaller pela pasta que você deseja usar.

    Linux or Unix
    unzip greengrass-nucleus-latest.zip -d GreengrassInstaller && rm greengrass-nucleus-latest.zip
    Windows Command Prompt (CMD)
    mkdir GreengrassInstaller && tar -xf greengrass-nucleus-latest.zip -C GreengrassInstaller && del greengrass-nucleus-latest.zip
    PowerShell
    Expand-Archive -Path greengrass-nucleus-latest.zip -DestinationPath .\\GreengrassInstaller rm greengrass-nucleus-latest.zip
  4. (Opcional) Execute o comando a seguir para ver a versão do software AWS IoT Greengrass Core.

    java -jar ./GreengrassInstaller/lib/Greengrass.jar --version
Importante

Se você instalar uma versão do núcleo do Greengrass anterior à v2.4.0, não remova essa pasta depois de instalar o software AWS IoT Greengrass Core. O software AWS IoT Greengrass Core usa os arquivos dessa pasta para ser executado.

Se você baixou a versão mais recente do software, instale a versão 2.4.0 ou posterior e será possível remover essa pasta depois de instalar o software AWS IoT Greengrass Core.

Instalar o software do AWS IoT Greengrass Core

Execute o instalador com argumentos que especificam as seguintes ações:

  • Instale a partir de um arquivo de configuração parcial que especifica o uso dos recursos da AWS e certificados que você criou anteriormente. O software AWS IoT Greengrass Core usa um arquivo de configuração que especifica a configuração de cada componente do Greengrass no dispositivo. O instalador cria um arquivo de configuração completo a partir do arquivo de configuração parcial fornecido por você.

  • Especifique o uso do usuário do sistema ggc_user para executar componentes de software no dispositivo principal. Em dispositivos Linux, esse comando também especifica o uso do grupo do sistema ggc_group e o instalador cria o usuário e o grupo do sistema para você.

  • Configure o software AWS IoT Greengrass Core como um serviço do sistema que é executado na inicialização. Em dispositivos Linux, isso requer o sistema init Systemd.

    Importante

    Nos dispositivos principais do Windows, é preciso configurar o software AWS IoT Greengrass Core como um serviço do sistema.

Para mais informações sobre os argumentos que podem ser especificados, consulte Argumentos de instalação.

nota

Se você estiver executando o AWS IoT Greengrass em um dispositivo com memória limitada, poderá controlar a quantidade de memória que o software AWS IoT Greengrass Core usa. Para controlar a alocação de memória, é possível definir as opções de tamanho do heap do JVM no parâmetro de configuração jvmOptions no componente do núcleo. Para ter mais informações, consulte Controlar a alocação de memória com opções de JVM.

  • Se você criou o certificado e a chave privada do item no serviço da AWS IoT anteriormente, siga as etapas para instalar o software AWS IoT Greengrass Core com a chave privada e os arquivos de certificado.

  • Se você criou o certificado do objeto a partir de uma chave privada em um módulo de segurança de hardware (HSM) anteriormente, siga as etapas para instalar o software AWS IoT Greengrass Core com a chave privada e o certificado em um HSM.

Instalar o software AWS IoT Greengrass Core com arquivos de chave privada e certificado

Como instalar o software do AWS IoT Greengrass Core
  1. Verifique a versão do software AWS IoT Greengrass Core.

    • Substitua GreengrassInstaller pelo caminho para a pasta que contém o software.

    java -jar ./GreengrassInstaller/lib/Greengrass.jar --version
  2. Use um editor de texto para criar um arquivo de configuração chamado config.yaml para fornecer ao instalador.

    Por exemplo, em um sistema baseado em Linux, você pode executar o comando a seguir para usar o GNU nano para criar o arquivo.

    nano GreengrassInstaller/config.yaml

    Copie o conteúdo YAML a seguir para o arquivo. Esse arquivo de configuração parcial especifica os parâmetros do sistema e os parâmetros do núcleo do Greengrass.

    --- system: certificateFilePath: "/greengrass/v2/device.pem.crt" privateKeyPath: "/greengrass/v2/private.pem.key" rootCaPath: "/greengrass/v2/AmazonRootCA1.pem" rootpath: "/greengrass/v2" thingName: "MyGreengrassCore" services: aws.greengrass.Nucleus: componentType: "NUCLEUS" version: "2.13.0" configuration: awsRegion: "us-west-2" iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias" iotDataEndpoint: "device-data-prefix-ats.iot.us-west-2.amazonaws.com" iotCredEndpoint: "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com"

    Então, faça o seguinte:

    • Substitua cada instância de /greengrass/v2 pela pasta raiz do Greengrass.

    • Substitua MyGreengrassCore pelo nome do objeto da AWS IoT.

    • Substitua 2.13.0 pela versão do software AWS IoT Greengrass Core.

    • Substitua us-west-2 pela Região da AWS em que você criou os recursos.

    • Substitua GreengrassCoreTokenExchangeRoleAlias pelo nome do alias de perfil de troca de tokens.

    • Substitua o iotDataEndpoint pelo endpoint de dados da AWS IoT.

    • Substitua o iotCredEndpoint pelo seu endpoint de credenciais da AWS IoT.

    nota

    Nesse arquivo de configuração, é possível personalizar outras opções de configuração do núcleo, como as portas e o proxy de rede a serem usados, conforme mostrado no exemplo a seguir. Para mais informações, consulte Configuração do núcleo do Greengrass.

    --- system: certificateFilePath: "/greengrass/v2/device.pem.crt" privateKeyPath: "/greengrass/v2/private.pem.key" rootCaPath: "/greengrass/v2/AmazonRootCA1.pem" rootpath: "/greengrass/v2" thingName: "MyGreengrassCore" services: aws.greengrass.Nucleus: componentType: "NUCLEUS" version: "2.13.0" configuration: awsRegion: "us-west-2" iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias" iotCredEndpoint: "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com" iotDataEndpoint: "device-data-prefix-ats.iot.us-west-2.amazonaws.com" mqtt: port: 443 greengrassDataPlanePort: 443 networkProxy: noProxyAddresses: "http://192.168.0.1,www.example.com" proxy: url: "https://my-proxy-server:1100" username: "Mary_Major" password: "pass@word1357"
  3. Execute o instalador e especifique --init-config para fornecer o arquivo de configuração.

    • Substitua /greengrass/v2 ou C:\greengrass\v2 pela pasta raiz do Greengrass.

    • Substitua cada instância do GreengrassInstaller pela pasta em que você descompactou o instalador.

    Linux or Unix
    sudo -E java -Droot="/greengrass/v2" -Dlog.store=FILE \ -jar ./GreengrassInstaller/lib/Greengrass.jar \ --init-config ./GreengrassInstaller/config.yaml \ --component-default-user ggc_user:ggc_group \ --setup-system-service true
    Windows Command Prompt (CMD)
    java -Droot="C:\greengrass\v2" "-Dlog.store=FILE" ^ -jar ./GreengrassInstaller/lib/Greengrass.jar ^ --init-config ./GreengrassInstaller/config.yaml ^ --component-default-user ggc_user ^ --setup-system-service true
    PowerShell
    java -Droot="C:\greengrass\v2" "-Dlog.store=FILE" ` -jar ./GreengrassInstaller/lib/Greengrass.jar ` --init-config ./GreengrassInstaller/config.yaml ` --component-default-user ggc_user ` --setup-system-service true
    Importante

    Nos dispositivos principais do Windows, é preciso especificar --setup-system-service true para configurar o software AWS IoT Greengrass Core como um serviço do sistema.

    Se você especificar --setup-system-service true, o instalador imprimirá Successfully set up Nucleus as a system service se ele configurou e executou o software como um serviço do sistema. Caso contrário, o instalador não emitirá nenhuma mensagem se instalar o software com êxito.

    nota

    Não é possível usar o argumento deploy-dev-tools para implantar ferramentas de desenvolvimento local ao executar o instalador sem o argumento --provision true. Para informações sobre a implantação da CLI do Greengrass diretamente no dispositivo, consulte Interface de linha de comando do Greengrass.

  4. Verifique a instalação visualizando os arquivos na pasta raiz.

    Linux or Unix
    ls /greengrass/v2
    Windows Command Prompt (CMD)
    dir C:\greengrass\v2
    PowerShell
    ls C:\greengrass\v2

    Se a instalação for bem-sucedida, a pasta raiz conterá várias pastas, como config, packages e logs.

Instalar o software AWS IoT Greengrass Core com a chave privada e o certificado em um HSM

nota

Esse atributo está disponível na versão 2.5.3 e posteriores do componente do núcleo do Greengrass. Atualmente, o AWS IoT Greengrass não é compatível com esse recurso nos dispositivos principais do Windows.

Como instalar o software do AWS IoT Greengrass Core
  1. Verifique a versão do software AWS IoT Greengrass Core.

    • Substitua GreengrassInstaller pelo caminho para a pasta que contém o software.

    java -jar ./GreengrassInstaller/lib/Greengrass.jar --version
  2. Para permitir que o software AWS IoT Greengrass Core use a chave privada e o certificado no HSM, instale também o componente do provedor PKCS#11 ao instalar o software AWS IoT Greengrass Core. O componente do provedor PKCS#11 é um plug-in que você pode configurar durante a instalação. Você pode baixar a versão mais recente do componente do provedor PKCS#11 no seguinte local:

    Baixe o plug-in do provedor PKCS#11 para um arquivo chamado aws.greengrass.crypto.Pkcs11Provider.jar. Substitua o GreengrassInstaller pela pasta que você deseja usar.

    curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/Pkcs11Provider/aws.greengrass.crypto.Pkcs11Provider-latest.jar > GreengrassInstaller/aws.greengrass.crypto.Pkcs11Provider.jar

    Ao fazer download desse software, você concorda com o Contrato de licença do software do Greengrass Core.

  3. Use um editor de texto para criar um arquivo de configuração chamado config.yaml para fornecer ao instalador.

    Por exemplo, em um sistema baseado em Linux, você pode executar o comando a seguir para usar o GNU nano para criar o arquivo.

    nano GreengrassInstaller/config.yaml

    Copie o conteúdo YAML a seguir para o arquivo. Esse arquivo de configuração parcial especifica os parâmetros do sistema, os parâmetros do núcleo do Greengrass e os parâmetros do provedor PKCS#11.

    --- system: certificateFilePath: "pkcs11:object=iotdevicekey;type=cert" privateKeyPath: "pkcs11:object=iotdevicekey;type=private" rootCaPath: "/greengrass/v2/AmazonRootCA1.pem" rootpath: "/greengrass/v2" thingName: "MyGreengrassCore" services: aws.greengrass.Nucleus: componentType: "NUCLEUS" version: "2.13.0" configuration: awsRegion: "us-west-2" iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias" iotDataEndpoint: "device-data-prefix-ats.iot.us-west-2.amazonaws.com" iotCredEndpoint: "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com" aws.greengrass.crypto.Pkcs11Provider: configuration: name: "softhsm_pkcs11" library: "/usr/local/Cellar/softhsm/2.6.1/lib/softhsm/libsofthsm2.so" slot: 1 userPin: "1234"

    Então, faça o seguinte:

    • Substitua cada instância de iotdevicekey nos URIs do PKCS#11 pelo rótulo do objeto em que você criou a chave privada e importou o certificado.

    • Substitua cada instância de /greengrass/v2 pela pasta raiz do Greengrass.

    • Substitua MyGreengrassCore pelo nome do objeto da AWS IoT.

    • Substitua 2.13.0 pela versão do software AWS IoT Greengrass Core.

    • Substitua us-west-2 pela Região da AWS em que você criou os recursos.

    • Substitua GreengrassCoreTokenExchangeRoleAlias pelo nome do alias de perfil de troca de tokens.

    • Substitua o iotDataEndpoint pelo endpoint de dados da AWS IoT.

    • Substitua o iotCredEndpoint pelo seu endpoint de credenciais da AWS IoT.

    • Substitua os parâmetros de configuração do componente aws.greengrass.crypto.Pkcs11Provider pelos valores da configuração do HSM no dispositivo principal.

    nota

    Nesse arquivo de configuração, é possível personalizar outras opções de configuração do núcleo, como as portas e o proxy de rede a serem usados, conforme mostrado no exemplo a seguir. Para mais informações, consulte Configuração do núcleo do Greengrass.

    --- system: certificateFilePath: "pkcs11:object=iotdevicekey;type=cert" privateKeyPath: "pkcs11:object=iotdevicekey;type=private" rootCaPath: "/greengrass/v2/AmazonRootCA1.pem" rootpath: "/greengrass/v2" thingName: "MyGreengrassCore" services: aws.greengrass.Nucleus: componentType: "NUCLEUS" version: "2.13.0" configuration: awsRegion: "us-west-2" iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias" iotDataEndpoint: "device-data-prefix-ats.iot.us-west-2.amazonaws.com" iotCredEndpoint: "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com" mqtt: port: 443 greengrassDataPlanePort: 443 networkProxy: noProxyAddresses: "http://192.168.0.1,www.example.com" proxy: url: "https://my-proxy-server:1100" username: "Mary_Major" password: "pass@word1357" aws.greengrass.crypto.Pkcs11Provider: configuration: name: "softhsm_pkcs11" library: "/usr/local/Cellar/softhsm/2.6.1/lib/softhsm/libsofthsm2.so" slot: 1 userPin: "1234"
  4. Execute o instalador e especifique --init-config para fornecer o arquivo de configuração.

    • Substitua /greengrass/v2 pela pasta raiz do Greengrass.

    • Substitua cada instância do GreengrassInstaller pela pasta em que você descompactou o instalador.

    sudo -E java -Droot="/greengrass/v2" -Dlog.store=FILE \ -jar ./GreengrassInstaller/lib/Greengrass.jar \ --trusted-plugin ./GreengrassInstaller/aws.greengrass.crypto.Pkcs11Provider.jar \ --init-config ./GreengrassInstaller/config.yaml \ --component-default-user ggc_user:ggc_group \ --setup-system-service true
    Importante

    Nos dispositivos principais do Windows, é preciso especificar --setup-system-service true para configurar o software AWS IoT Greengrass Core como um serviço do sistema.

    Se você especificar --setup-system-service true, o instalador imprimirá Successfully set up Nucleus as a system service se ele configurou e executou o software como um serviço do sistema. Caso contrário, o instalador não emitirá nenhuma mensagem se instalar o software com êxito.

    nota

    Não é possível usar o argumento deploy-dev-tools para implantar ferramentas de desenvolvimento local ao executar o instalador sem o argumento --provision true. Para informações sobre a implantação da CLI do Greengrass diretamente no dispositivo, consulte Interface de linha de comando do Greengrass.

  5. Verifique a instalação visualizando os arquivos na pasta raiz.

    Linux or Unix
    ls /greengrass/v2
    Windows Command Prompt (CMD)
    dir C:\greengrass\v2
    PowerShell
    ls C:\greengrass\v2

    Se a instalação for bem-sucedida, a pasta raiz conterá várias pastas, como config, packages e logs.

Se você instalou o software AWS IoT Greengrass Core como um serviço do sistema, o instalador executa o software para você. Caso contrário, será preciso executar o software manualmente. Para ter mais informações, consulte Executar o software AWS IoT Greengrass Core.

Para mais informações sobre como configurar e usar o software e o AWS IoT Greengrass, consulte: