

# NitroTPM アテステーションドキュメントを取得する
<a name="attestation-get-doc"></a>

アテステーションドキュメントは、NitroTPM アテステーションプロセスの主要なコンポーネントです。これには、インスタンスのアイデンティティを検証し、信頼できるソフトウェアのみを実行していることを証明するために使用できる一連の暗号化測定値が含まれています。AWS KMS を持つアテステーションドキュメントを使用して、NitroTPM アテステーションの組み込みサポートを利用したり、独自の暗号化アテステーションメカニズムを構築したりできます。

`nitro-tpm-attest` ユーティリティを使用すると、実行時に Amazon EC2 インスタンスの署名付き NitroTPM アテステーションドキュメントを取得できます。

Amazon Linux 2023 のサンプルイメージの説明では、`/usr/bin/` ディレクトリのビルド済みイメージにユーティリティが自動的にインストールされます。これにより、AMI を使用して起動されたインスタンスにユーティリティがプリインストールされます。ユーティリティを手動でインストールする必要はありません。詳細については、「[Amazon Linux 2023 のサンプルイメージの説明を作成する](build-sample-ami.md)」を参照してください。

**Topics**
+ [`nitro-tpm-attest` ユーティリティをインストールする](#nitro-tpm-attest-install)
+ [`nitro-tpm-attest` ユーティリティを使用する](#nitro-tpm-attest-use)
+ [NitroTPM アテステーションドキュメント](nitrotpm-attestation-document-content.md)
+ [アテステーションドキュメントを検証する](nitrotpm-attestation-document-validate.md)

## `nitro-tpm-attest` ユーティリティをインストールする
<a name="nitro-tpm-attest-install"></a>

Amazon Linux 2023 を使用している場合は、次のように Amazon Linux リポジトリから `nitro-tpm-attest` ユーティリティをインストールできます。

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

## `nitro-tpm-attest` ユーティリティを使用する
<a name="nitro-tpm-attest-use"></a>

ユーティリティには、アテステーションドキュメントを取得するための単一のコマンド `nitro-tpm-attest` が用意されています。コマンドからは、Concise Binary Object Representation (CBOR) でエンコードされ、CBOR Object Signing and Encryption (COSE) を使用して署名されたアテステーションドキュメントが返されます。

コマンドの実行時に以下のパラメータをオプションで指定できます。
+ `public-key` – レスポンスデータが返される前に暗号化するために AWS KMS または外部サービスが使用できるパブリックキー。これにより、プライベートキーを所有している本来の受信者のみがデータを復号できます。例えば、AWS KMS でアテステーションを行う場合、サービスはアテステーションドキュメントのパブリックキーを使用してプレーンテキストデータを暗号化し、結果の暗号文をレスポンスの `CiphertextForRecipient` フィールドに返します。RSA キーのみがサポートされています。
+ `user-data` – ユーザーデータを使用して、追加の署名付きデータを外部サービスに配信できます。このユーザーデータは、リクエスト元のインスタンスと外部サービスとの間で合意されたプロトコルを完了するために使用できます。AWS KMS でのアテステーションには使用されません。
+ `nonce` – ノンスを使用してインスタンスと外部サービス間のチャレンジレスポンス認証を設定し、なりすまし攻撃を防ぐことができます。ノンスを使用すると、外部サービスは、インスタンスとライブでやり取りしていて、古いアテステーションドキュメントを再利用している偽装者とのやり取りではないことを確認できます。AWS KMS でのアテステーションには使用されません。

**アテステーションドキュメントを取得するには**  
以下のコマンドとオプションのパラメータを使用します。

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

RSA キーペアを生成する方法と、パブリックキーによるアテステーションをリクエストする方法を示す完全な例については、[nitro-tpm-attest GitHub リポジトリ](https://github.com/aws/NitroTPM-Tools/)を参照してください。