

# Obter o atestado do NitroTPM
<a name="attestation-get-doc"></a>

O atestado é um componente essencial do processo de atestação do NitroTPM. Ele contém uma série de medidas criptográficas que podem ser usadas para verificar a identidade da instância e provar que ela está executando somente software confiável. É possível usar o atestado com o AWS KMS, que tem compatibilidade integrada com a atestação do NitroTPM, ou criar seus próprios mecanismos criptográficos de atestação.

O utilitário `nitro-tpm-attest` permite que você recupere um atestado assinado do NitroTPM para uma instância do Amazon EC2 durante o runtime

O exemplo de descrição de imagem do Amazon Linux 2023 instala automaticamente o utilitário na imagem compilada no diretório `/usr/bin/`. Isso garante que o utilitário seja pré-instalado nas instâncias iniciadas usando a AMI. Não é necessário instalar o utilitário manualmente. Para obter mais informações, consulte [Criar o exemplo de descrição de imagem do Amazon Linux 2023](build-sample-ami.md).

**Topics**
+ [Instalar o utilitário `nitro-tpm-attest`](#nitro-tpm-attest-install)
+ [Usar o utilitário `nitro-tpm-attest`](#nitro-tpm-attest-use)
+ [Atestado do NitroTPM](nitrotpm-attestation-document-content.md)
+ [Validar atestado](nitrotpm-attestation-document-validate.md)

## Instalar o utilitário `nitro-tpm-attest`
<a name="nitro-tpm-attest-install"></a>

Se você estiver usando o Amazon Linux 2023, poderá instalar o utilitário `nitro-tpm-attest` a partir do repositório Amazon Linux como se segue.

```
sudo yum install aws-nitro-tpm-tools
```

## Usar o utilitário `nitro-tpm-attest`
<a name="nitro-tpm-attest-use"></a>

O utilitário fornece um único comando, `nitro-tpm-attest`, para recuperar o atestado. O comando retorna o atestado codificado em Concise Binary Object Representation (CBOR) e assinado usando CBOR Object Signing and Encryption (COSE).

Ao executar o comando, você pode especificar os seguintes parâmetros opcionais:
+ `public-key`: uma chave pública que pode ser usada pelo AWS KMS ou por um serviço externo para criptografar dados de resposta antes de serem retornados. Isso garante que somente o destinatário pretendido, que possui a chave privada, possa descriptografar os dados. Por exemplo, se você estiver atestando com o AWS KMS, o serviço criptografa os dados de texto simples com a chave pública no atestado e retorna o texto cifrado resultante no campo `CiphertextForRecipient` da resposta. Compatível somente com chaves RSA.
+ `user-data`: os dados do usuário podem ser usados para entregar dados assinados adicionais a um serviço externo. Esses dados do usuário podem ser usados para concluir um protocolo acordado entre a instância solicitante e o serviço externo. Não usado para atestação com o AWS KMS.
+ `nonce`: o nonce pode ser usado para configurar a autenticação de desafio-resposta entre a instância e o serviço externo para ajudar a evitar ataques de falsificação de identidade. Usar um nonce permite que o serviço externo verifique se está interagindo com uma instância ao vivo e não com um impostor que está reutilizando um atestado antigo. Não usado para atestação com o AWS KMS.

**Para recuperar o atestado**  
Use o seguinte comando e os seguintes parâmetros opcionais:

```
/usr/bin/nitro-tpm-attest \
--public-key rsa_public_key \
--user-data user_data \
--nonce nonce
```

Para ver um exemplo completo que mostra como gerar um par de chaves RSA e como solicitar um atestado com a chave pública, consulte o [repositório nitro-tpm-attest do GitHub](https://github.com/aws/NitroTPM-Tools/).