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á.
Tutorial: Proteja o AWS IoT Greengrass Nucleus Lite com o Trusted Platform Module (TPM)
Este tutorial explica como ativar e configurar o suporte do Trusted Platform Module (TPM) para o AWS IoT Greengrass nucleus lite. O TPM fornece uma raiz de confiança baseada em hardware para armazenamento seguro de chaves. Esse recurso de segurança protege operações criptográficas e credenciais confidenciais, aprimorando a segurança e a integridade do dispositivo.
Quando você concluir essa integração, seu dispositivo AWS IoT Greengrass principal usará chaves privadas protegidas por TPM para sua identidade e comunicação com os serviços. AWS IoT
Para obter mais informações sobre segurança em AWS IoT Greengrass dispositivos, consulteSegurança no AWS IoT Greengrass.
Importante
Esse mecanismo é suportado somente com a instalação do AWS IoT Greengrass nucleus lite com provisionamento manual de recursos.
Pré-requisitos
Para concluir este tutorial, você precisará do seguinte:
-
Um dispositivo compatível com Linux com hardware TPM 2.0 ou NitroTPM
-
Uma máquina de desenvolvedor com o Greengrass Nucleus Lite instalado. Para obter mais informações, consulte Instalar o software AWS IoT Greengrass Core (console).
-
As instruções neste tutorial são definidas para o Ubuntu 24.04 LTS.
-
Qualquer distribuição Linux que suporte o Linux TPM2 Software Stack
pode suportar esse mecanismo. -
Uma máquina de desenvolvedor com a AWS CLI instalada e configurada com permissões para:
-
Crie e gerencie AWS IoT recursos
-
Criação e atualização de perfis e políticas do IAM
-
-
Privilégios de root ou sudo no dispositivo.
Este tutorial contém instruções sobre como usar o TPM2 chip como um Módulo de Segurança de Hardware (HSM) para criar uma chave privada e CSR que é usada para criar o certificado do AWS IoT item.
Etapa 1: configurar uma instância do NitroTPM
-
Configure uma instância do NitroTPM. Para obter mais informações, consulte NitroTPM.
-
Execute a instância final usando a AMI personalizada criada na etapa anterior.
Importante
Ao se conectar com SSH, use o
ubuntuusuário em vez deroot. -
Verifique se o dispositivo TPM está presente e funcionando executando o seguinte comando:
ls -la /dev/tpm*Você deve ver
/dev/tpm0e/dev/tpmrm0dispositivos.
Etapa 2: instalar e configurar as ferramentas do TPM
-
Instale os pacotes necessários executando o seguinte comando:
sudo apt update sudo apt install tpm2-openssl tpm2-tools tpm2-abrmd libtss2-tcti-tabrmd0 -
Verifique as permissões do dispositivo TPM executando o seguinte comando:
ls -l /dev/tpm0 # Should be owned by tss:root with permissions 0660 ls -l /dev/tpmrm0 # Should be owned by tss:tss with permissions 0660
Etapa 3: Configurar o provedor OpenSSL TPM2
-
Edite o arquivo de configuração do OpenSSL:
sudo vi /etc/ssl/openssl.cnf -
Adicione a seguinte configuração:
[openssl_init] providers = provider_sect [provider_sect] default = default_sect tpm2 = tpm2_sect [default_sect] activate = 1 [tpm2_sect] identity = tpm2 module = /usr/local/lib64/tpm2.so activate = 1 -
Ajuste o caminho do módulo conforme necessário. Você pode encontrar o caminho correto usando:
find /usr -name "tpm2.so"
Etapa 4: gerar chaves TPM persistentes
-
Crie uma chave primária executando o seguinte comando:
sudo tpm2_createprimary -C o -c primary.ctx -
Crie um objeto-chave ECC executando o seguinte comando:
sudo tpm2_create -C primary.ctx -g sha256 -G ecc256 -r device.priv -u device.pub -
Carregue a chave executando o seguinte comando:
sudo tpm2_load -C primary.ctx -r device.priv -u device.pub -c device.ctx -
Torne a chave persistente executando o seguinte comando:
sudo tpm2_evictcontrol -C o -c device.ctx 0x81000002Isso cria uma chave persistente com a alça (como
0x81000002).
Etapa 5: Gerar solicitação de assinatura de certificado (CSR)
Nesta etapa, você usará a chave privada TPM2 protegida para gerar uma Solicitação de Assinatura de Certificado (CSR).
-
Gere uma CSR usando a chave TPM:
openssl req -new -provider tpm2 -key "handle:0x81000002" \ -out device.csr \ -subj "/CN=TPMThing" -
0x81000002Substitua pelo valor do identificador escolhido eTPMThingpelo nome do item desejado.
Etapa 6: criar o certificado a partir do CSR
-
No seu computador de desenvolvimento, crie uma pasta na qual você baixou o certificado da AWS IoT coisa.
mkdir greengrass-v2-certs -
Use o arquivo CSR para criar e baixar o certificado da AWS IoT coisa em seu computador de desenvolvimento.
aws iot create-certificate-from-csr \ --set-as-active \ --certificate-signing-request file://path_to_device.csr\ --certificate-pem-outfile greengrass-v2-certs/device.pem.crtSe 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-----" }
Etapa 7: Configurar o Greengrass Nucleus Lite com suporte ao TPM
Para habilitar o suporte ao TPM no Greengrass Nucleus Lite, faça as seguintes alterações:
-
Configure as permissões do usuário adicionando o
ggcoreusuário aotssgrupo para acesso ao TPM:sudo usermod -a -G tss ggcore -
Atualize o diretório de credenciais concluindo as seguintes etapas:
-
Remova o arquivo de chave privada do diretório de credenciais.
-
Como estamos usando chaves TPM persistentes, nenhum arquivo de chave privada precisa ser copiado.
-
-
Copie o novo
device.pem.crtnesse diretório de credenciais.
-
-
Edite
config.yamlcom a seguinte configuração específica do TPM:system: privateKeyPath: "handle:0x81000002" # Use your chosen handle certificateFilePath: "" # Replace with the path of device.pem.crt ... -
Reinicie seu Greengrass Nucleus Lite executando o seguinte comando:
systemctl restart greengrass-lite.target
Solução de problemas
Se você encontrar problemas durante a configuração ou operação do seu AWS IoT Greengrass dispositivo TPM2 habilitado, tente as seguintes etapas de solução de problemas:
O dispositivo TPM não foi encontrado (ao usar o NitroTPM)
Se não /dev/tpm0 estiver presente, execute as seguintes etapas:
-
Verifique se você está usando um tipo de instância compatível com NitrotPM.
-
Certifique-se de que a AMI tenha sido criada com
--tpm-support v2.0. -
Verifique se a instância foi executada a partir da AMI personalizada.
Erros de permissão negada
Se você encontrar erros de acesso ao TPM, faça o seguinte:
-
Verifique se o usuário está no
tssgrupo:groups $USER. -
Verifique as permissões do dispositivo TPM usando o seguinte comando:
ls -l /dev/tpm* -
Verifique se você se desconectou e se conectou novamente após adicionar ao
tssgrupo.
Problemas com o provedor OpenSSL
Se o provedor de TPM não for encontrado, faça o seguinte:
-
Verifique
tpm2.soo caminho no/etc/ssl/openssl.cnf. -
Verifique a instalação do provedor executando o seguinte comando:
openssl list -providers -
Verifique se o
tpm2-opensslpacote está instalado corretamente.
Próximas etapas
Agora que você integrou com sucesso seu dispositivo AWS IoT Greengrass principal TPM2, você pode:
-
Implante componentes em seu AWS IoT Greengrass dispositivo seguro
-
Configure AWS IoT Greengrass dispositivos adicionais com TPM2 integração
Para obter mais informações sobre segurança em AWS IoT Greengrass dispositivos, consulteSegurança no AWS IoT Greengrass.