

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# クライアント認証
<a name="client-authentication"></a>

AWS IoT は、デバイス認証またはクライアント認証用に 3 種類の ID プリンシパルをサポートしています。
+ [X.509 クライアント証明書](x509-client-certs.md)
+ [IAM ユーザー、グループ、ロール](iam-users-groups-roles.md)
+ [Amazon Cognito ID](cognito-identities.md)

これらの ID は、デバイス、モバイル、ウェブ、またはデスクトップアプリケーションで使用できます。これらは、ユーザーが AWS IoT コマンドラインインターフェイス (CLI) コマンドを入力することによっても使用できます。通常、 AWS IoT デバイスは X.509 証明書を使用し、モバイルアプリケーションは Amazon Cognito ID を使用します。ウェブアプリケーションとデスクトップアプリケーションでは、IAM またはフェデレーテッドアイデンティティを使用します。 AWS CLI コマンドは IAM を使用します。IAM ID の詳細については、[の ID とアクセスの管理 AWS IoT](security-iam.md) を参照してください。

# X.509 クライアント証明書
<a name="x509-client-certs"></a>

X.509 証明書 AWS IoT は、クライアントとデバイスの接続を認証する機能を提供します。クライアント証明書は、クライアントが通信 AWS IoT する前に に登録する必要があります AWS IoT。クライアント証明書は、同じリージョン内の AWS アカウント間でデバイスを移動しやすく AWS リージョン するために、同じ 内の複数の AWS アカウントに登録できます。詳細については、「[マルチアカウント登録で複数の で X.509 AWS アカウントクライアント証明書を使用する](#multiple-account-cert)」を参照してください。

証明書が失効した場合などにきめ細かくクライアント管理アクションを有効にできるように、各デバイスまたはクライアントで一意の証明書を指定することをお勧めします。証明書失効時にオペレーションを円滑に行うために、デバイスまたはクライアントが証明書のローテーションおよび置換に対応している必要もあります。

X.509 証明書を使用して複数のデバイスをサポートする方法については、[デバイスプロビジョニング](iot-provision.md) を参照して、 AWS IoT がサポートするさまざまな証明書管理およびプロビジョニングオプションを確認してください。

**AWS IoT は、次のタイプの X.509 クライアント証明書をサポートしています。**
+  によって生成された X.509 証明書 AWS IoT
+  に登録されている CA によって署名された X.509 証明書 AWS IoT。
+  AWS IoTに登録されていない CA によって署名された X.509 証明書。

このセクションでは、 AWS IoTで X.509 証明書を管理する方法について説明します。 AWS IoT コンソールまたは を使用して AWS CLI 、次の証明書オペレーションを実行できます。
+ [AWS IoT クライアント証明書を作成する](device-certs-create.md)
+ [独自のクライアント証明書を作成する](device-certs-your-own.md)
+ [クライアント証明書の登録](register-device-cert.md)
+ [クライアント証明書を有効または無効する](activate-or-deactivate-device-cert.md)
+ [クライアント証明書の取り消し](revoke-ca-cert.md)

これらのオペレーションを実行する AWS CLI コマンドの詳細については、「 [AWS IoT CLI リファレンス](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/index.html)」を参照してください。

## X.509 クライアント証明書の使用
<a name="x509-client-cert-basics"></a>

X.509 証明書は、クライアントとデバイスの接続を認証します AWS IoT。X.509 証明書には、他の識別および認証メカニズムに比べて、いくつかの利点があります。X.509 証明書では、非対称キーをデバイスで使用できます。例えば、プライベートキーをデバイス上の安全なストレージに書き込むと、デバイスから機密の暗号化情報が持ち出されることがないようにすることができます。X.509 証明書により、ユーザー名とパスワード、ベアラートークンなどの他のスキーマよりも、強力なクライアント認証が可能になります。これは、プライベートキーがデバイスから持ち出されることがないためです。

AWS IoT は、TLS プロトコルのクライアント認証モードを使用してクライアント証明書を認証します。TLS サポートは、多くのプログラミング言語とオペレーティングシステムに対応しており、データの暗号化に一般に使用されます。TLS クライアント認証では、 は X.509 クライアント証明書を AWS IoT リクエストし、証明書のステータスと を証明書のレジストリ AWS アカウント と照合します。次に、証明書に含まれるパブリックキーに対応するプライベートキーの所有権の証明をクライアントに要求します。 AWS IoT は、クライアントが Transport Layer Security [(TLS) プロトコルに Server Name Indication (SNI) 拡張機能](https://tools.ietf.org/html/rfc3546#section-3.1)を送信する必要があります。SNI 拡張機能の設定の詳細については、「[のトランスポートセキュリティ AWS IoT Core](transport-security.md)」を参照してください。

 AWS IoT コアへの安全で一貫性のあるクライアント接続を容易にするには、X.509 クライアント証明書に次のものが必要です。
+  AWS IoT Core に登録されています。詳細については、「[クライアント証明書の登録](register-device-cert.md)」を参照してください。
+ ステータスは `ACTIVE` 状態である。詳細については、「[クライアント証明書を有効または無効する](activate-or-deactivate-device-cert.md)」を参照してください。
+ 証明書の有効期限にまだ達していない。

Amazon Root CA を使用するクライアント証明書を作成し、別の認証機関 (CA) によって署名された独自のクライアント証明書を使用できます。 AWS IoT コンソールを使用して Amazon ルート CA を使用する証明書を作成する方法の詳細については、「」を参照してください[AWS IoT クライアント証明書を作成する](device-certs-create.md)。独自の X.509 証明書の使用の詳細については、「[独自のクライアント証明書を作成する](device-certs-your-own.md)」を参照してください。

CA 証明書によって署名された証明書の有効期限が切れる日付と時刻は、証明書の作成時に設定されます。によって生成された X.509 証明書は、2049 年 12 月 31 日深夜 UTC に AWS IoT 期限切れになります (2049-12-31T23:59:59Z)。

AWS IoT Device Defender は、一般的な IoT セキュリティのベストプラクティスをサポートする AWS アカウント および デバイスで監査を実行できます。これには、CA または Amazon Root CA によって署名された X.509 証明書の有効期限の管理が含まれます。証明書の有効期限の管理の詳細については、「[デバイス証明書の有効期限切れ](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/audit-chk-device-cert-approaching-expiration.html)」および「[CA 証明書の有効期限切れ](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/audit-chk-ca-cert-approaching-expiration.html)」を参照してください。

公式 AWS IoT ブログでは、「 [を使用して IoT デバイス証明書のローテーションを管理する方法」で、デバイス証明書のローテーション AWS IoT](https://aws.amazon.com/blogs/iot/how-to-manage-iot-device-certificate-rotation-using-aws-iot/)とセキュリティのベストプラクティスの管理について詳しく説明します。

## マルチアカウント登録で複数の で X.509 AWS アカウントクライアント証明書を使用する
<a name="multiple-account-cert"></a>

マルチアカウント登録により、同じリージョン内、または異なるリージョン内の AWS アカウント間で、デバイスの移動が可能になります。実稼働前のアカウントでデバイスを登録、テスト、設定した後、実稼働アカウントで同じデバイスとデバイス証明書を登録して使用することができます。クライアント証明書をデバイスに登録することも、登録されている CA なしでデバイス証明書を登録することもできます AWS IoT。詳細については、「[登録していない CA によって署名したクライアント証明書を登録する (CLI)](manual-cert-registration.md#manual-cert-registration-noca-cli)」を参照してください。

**注記**  
マルチアカウント登録に使用される証明書は、`iot:Data-ATS`、`iot:Data` (レガシー)、`iot:Jobs`、および `iot:CredentialProvider` エンドポイントタイプでサポートされています。 AWS IoT デバイスエンドポイントの詳細については、「」を参照してください[AWS IoT デバイスデータとサービスエンドポイント](iot-connect-devices.md#iot-connect-device-endpoints)。

マルチアカウント登録を使用するデバイスは、[Server Name Indication (SNI) 拡張機能](https://tools.ietf.org/html/rfc3546#section-3.1)を Transport Layer Security (TLS) プロトコルに送信し、接続時に `host_name`フィールドに完全なエンドポイントアドレスを指定する必要があります AWS IoT。 は、 のエンドポイントアドレス AWS IoT を使用して接続を正しい AWS IoT アカウントに`host_name`ルーティングします。`host_name` で有効なエンドポイントアドレスを送信しなかった既存デバイスは、引き続き動作しますが、この情報を必要とする機能を使用することはできません。SNI 拡張の詳細と、 `host_name` フィールドのエンドポイントアドレスを特定する方法については、「[のトランスポートセキュリティ AWS IoT Core](transport-security.md)」を参照してください。

**マルチアカウント登録を使用するには**

1. CA を指定してデバイス証明書を登録することができます。署名 CA を `SNI_ONLY` モードで複数のアカウントに登録し、その CA を使用して同じクライアント証明書を複数のアカウントに登録できます。詳細については、「[SNI\$1ONLY モードでの CA 証明書の登録 (CLI) – 推奨](manage-your-CA-certs.md#register-CA-cert-SNI-cli)」を参照してください。

1. デバイス証明書は CA を指定せずに登録することができます。「[登録していない CA によって署名したクライアント証明書を登録する (CLI)](manual-cert-registration.md#manual-cert-registration-noca-cli)」を参照してください。CA の登録はオプションです。デバイス証明書に署名した CA を登録する必要はありません AWS IoT。

## でサポートされている証明書署名アルゴリズム AWS IoT
<a name="x509-cert-algorithms"></a>

AWS IoT は、次の証明書署名アルゴリズムをサポートしています。
+ SHA256WITHRSA
+ SHA384WITHRSA
+ SHA512WITHRSA
+ SHA256WITHRSAANDMGF1 (RSASSA-PSS)
+ SHA384WITHRSAANDMGF1 (RSASSA-PSS)
+ SHA512WITHRSAANDMGF1 (RSASSA-PSS)
+ DSA\$1WITH\$1SHA256
+ ECDSA-WITH-SHA256
+ ECDSA-WITH-SHA384
+ ECDSA-WITH-SHA512

証明書認証およびセキュリティの詳細については、「[デバイス証明書のキー品質](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/audit-chk-device-cert-key-quality.html)」を参照してください。

**注記**  
証明書署名リクエスト (CSR) にはパブリックキーを含める必要があります。キーは、少なくとも 2,048 ビット長の RSA キー、または NIST P-256、NIST P-384、NIST P-521 カーブの ECC キーとすることができます。詳細については、「*AWS IoT API リファレンスガイド*」の「[CreateCertificateFromCsr](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateCertificateFromCsr.html) API」を参照してください。

## でサポートされているキーアルゴリズム AWS IoT
<a name="x509-cert-key-algorithms"></a>

次の表は、キーアルゴリズムのサポート方法を示しています。


****  

| [キーアルゴリズム] | 証明書署名アルゴリズム | TLS バージョン | サポート対象? はい/いいえ | 
| --- | --- | --- | --- | 
| キーサイズが 2048 ビット以上の RSA | すべて | TLS 1.2 TLS 1.3 | はい | 
| ECC NIST P-256/P-384/P-521 | すべて | TLS 1.2 TLS 1.3 | はい | 
| キーサイズが 2048 ビット以上の RSA-PSS | すべて | TLS 1.2 | いいえ | 
| キーサイズが 2048 ビット以上の RSA-PSS | すべて | TLS 1.3 | はい | 

[CreateCertificateFromCSR](https://docs.aws.amazon.com//iot/latest/apireference/API_CreateCertificateFromCsr.html) を使用して証明書を作成するには、サポートされているキーアルゴリズムを使用して CSR のパブリックキーを生成できます。[RegisterCertificate](https://docs.aws.amazon.com//iot/latest/apireference/API_RegisterCertificate.html) または [RegisterCertificateWithoutCA](https://docs.aws.amazon.com//iot/latest/apireference/API_RegisterCertificateWithoutCA.html) を使用して独自の証明書を登録するには、サポートされているキーアルゴリズムを使用して証明書のパブリックキーを生成できます。

詳細については、「[セキュリティポリシー](https://docs.aws.amazon.com//iot/latest/developerguide/transport-security.html#tls-policy-table)」を参照してください。

# AWS IoT クライアント証明書を作成する
<a name="device-certs-create"></a>

AWS IoT は、Amazon ルート認証局 (CA) によって署名されたクライアント証明書を提供します。

このトピックでは、Amazon ルート認証局によって署名されたクライアント証明書を作成し、証明書ファイルをダウンロードする方法について説明します。クライアント証明書ファイルを作成したら、クライアントにインストールする必要があります。

**注記**  
によって提供される各 X.509 クライアント証明書は、証明書の作成時に設定した発行者とサブジェクト属性 AWS IoT を保持します。証明書の属性は、証明書が作成された後にのみイミュータブルです。

 AWS IoT コンソールまたは を使用して AWS CLI 、Amazon ルート AWS IoT 認証局によって署名された証明書を作成できます。

## AWS IoT 証明書を作成する (コンソール)
<a name="device-certs-create-console"></a>

**AWS IoT コンソールを使用して AWS IoT 証明書を作成するには**

1. にサインイン AWS マネジメントコンソール し、 [AWS IoT コンソール](https://console.aws.amazon.com/iot/home)を開きます。

1. ナビゲーションペインで、**[セキュリティ]** を選択し、**[証明書]** を選択してから **[作成]** を選択します。

1. [**1-Click 証明書作成 (推奨)**] - [**証明書の作成**] を選択します。

1. **[証明書が作成されました]** ページで、モノ、パブリックキー、およびプライベートキーのクライアント証明書ファイルを安全な場所にダウンロードします。によって生成されたこれらの証明書 AWS IoT は、 AWS IoT サービスでのみ使用できます。

   Amazon Root CA 証明書ファイルも必要であれば、このページにダウンロードできるページへのリンクがあります。

1. これで、クライアント証明書が作成され、 AWS IoTに登録されました。証明書をクライアントで使用する前に、証明書をアクティブ化する必要があります。

    クライアント証明書を今すぐ有効化するには、**[有効化]** を選択します。今すぐ証明書を有効化しない場合、証明書を後で有効化する方法について、「[クライアント証明書のアクティブ化 (コンソール)](activate-or-deactivate-device-cert.md#activate-device-cert-console)」を参照してください。

   

1. 証明書にポリシーをアタッチする場合は、**[Attach a policy]** (ポリシーをアタッチ) を選択します。

   ポリシーを今すぐアタッチしない場合は、**[Done]** (完了) を選択して完了します。ポリシーは後でアタッチできます。

手順が完了したら、証明書ファイルをクライアントにインストールします。

## AWS IoT 証明書を作成する (CLI)
<a name="device-certs-create-cli"></a>

 AWS CLI は、Amazon ルート認証局によって署名されたクライアント証明書を作成するための **[create-keys-and-certificate](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/create-keys-and-certificate.html)** コマンドを提供します。ただし、このコマンドでは Amazon ルート CA 証明書ファイルはダウンロードされません。Amazon ルート CA 証明書ファイルは、 からダウンロードできます[サーバー認証用の CA 証明書](server-authentication.md#server-authentication-certs) 

このコマンドは、プライベートキー、パブリックキー、および X.509 証明書ファイルを作成し、証明書を に登録してアクティブ化します AWS IoT。

```
aws iot create-keys-and-certificate \
    --set-as-active \
    --certificate-pem-outfile certificate_filename.pem \
    --public-key-outfile public_filename.key \
    --private-key-outfile private_filename.key
```

証明書の作成と登録時に証明書を有効化しない場合、このコマンドはプライベートキー、パブリックキー、および X.509 証明書ファイルを作成し、証明書を登録しますが、有効化しません。[クライアント証明書のアクティブ化 (CLI)](activate-or-deactivate-device-cert.md#activate-device-cert-cli) では、証明書を後で有効化する方法について説明します。

```
aws iot create-keys-and-certificate \
    --no-set-as-active \
    --certificate-pem-outfile certificate_filename.pem \
    --public-key-outfile public_filename.key \
    --private-key-outfile private_filename.key
```



証明書ファイルをクライアントにインストールします。

# 独自のクライアント証明書を作成する
<a name="device-certs-your-own"></a>

AWS IoT は、ルートまたは中間認証機関 (CA) によって署名されたクライアント証明書をサポートします。 は CA 証明書 AWS IoT を使用して証明書の所有権を検証します。Amazon の CA ではない CA によって署名されたデバイス証明書を使用するには、デバイス証明書の所有権を検証 AWS IoT できるように、CA の証明書を に登録する必要があります。

AWS IoT は、独自の証明書 (BYOC) を持ち込むための複数の方法をサポートしています。
+ まず、クライアント証明書の署名に使用する CA を登録し、次に個々のクライアント証明書を登録します。デバイスまたはクライアントをクライアント証明書に初めて接続するときに登録する場合は AWS IoT ([Just-in-Timeプロビジョニングとも呼ばれます](https://docs.aws.amazon.com//iot/latest/developerguide/jit-provisioning.html))、署名 CA を AWS IoT に登録し、自動登録を有効にする必要があります。
+ 署名 CA を登録できない場合は、CA なしでクライアント証明書を登録することを選択できます。CA なしで登録されたデバイスの場合、 AWS IoTへの接続時に [Server Name Indication (SNI)](https://www.rfc-editor.org/rfc/rfc3546#section-3.1) を提示する必要があります。

**注記**  
CA を使用してクライアント証明書を登録するには、階層内の他の CA ではなく AWS IoT、署名 CAsを登録する必要があります。

**注記**  
CA 証明書は、リージョン内の 1 つのアカウントでのみ `DEFAULT` モードで登録できます。CA 証明書は、リージョン内の複数のアカウントで `SNI_ONLY` モードで登録できます。

X.509 証明書を使用して複数のデバイスをサポートする方法の詳細については、「[デバイスプロビジョニング](iot-provision.md)」を参照して、 AWS IoT がサポートするさまざまな証明書管理およびプロビジョニングオプションを確認してください。

**Topics**
+ [CA 証明書の管理](manage-your-CA-certs.md)
+ [CA 証明書を使用してクライアント証明書を作成する](create-device-cert.md)

# CA 証明書の管理
<a name="manage-your-CA-certs"></a>

このセクションでは、独自の認証局 (CA) 証明書を管理するための一般的なタスクについて説明します。

が認識 AWS IoT しない CA によって署名されたクライアント証明書を使用している場合 AWS IoT は、認証機関 (CA) を に登録できます。

クライアントが最初に接続 AWS IoT するときにクライアント証明書を に自動的に登録する場合は、クライアント証明書に署名した CA を登録する必要があります AWS IoT。それ以外の場合は、クライアント証明書に署名した CA 証明書を登録する必要はありません。

**注記**  
CA 証明書は、リージョン内の 1 つのアカウントでのみ `DEFAULT` モードで登録できます。CA 証明書は、リージョン内の複数のアカウントで `SNI_ONLY` モードで登録できます。

**Topics**
+ [CA 証明書を作成する](#create-your-CA-cert)
+ [CA 証明書の登録](#register-CA-cert)
+ [CA 証明書の非アクティブ化](#deactivate-ca-cert)

## CA 証明書を作成する
<a name="create-your-CA-cert"></a>

CA 証明書がない場合は、[OpenSSL v1.1.1i](https://www.openssl.org/) ツールを使用して作成できます。

**注記**  
この手順は AWS IoT コンソールでは実行できません。

**[OpenSSL v1.1.1i](https://www.openssl.org/) ツールを使用して CA 証明書を作成するには**

1. キーペアを生成します。

   ```
   openssl genrsa -out root_CA_key_filename.key 2048
   ```

1. キーペアのプライベートキーを使用して CA 証明書を生成します。

   ```
   openssl req -x509 -new -nodes \
       -key root_CA_key_filename.key \
       -sha256 -days 1024 \
       -out root_CA_cert_filename.pem
   ```

## CA 証明書の登録
<a name="register-CA-cert"></a>

これらの手順では、Amazon の CA ではない認証機関 (CA) から証明書を登録する方法について説明します。 は CA 証明書 AWS IoT Core を使用して証明書の所有権を検証します。Amazon の CA ではない CA によって署名されたデバイス証明書を使用するには、デバイス証明書の所有権を検証 AWS IoT Core できるように、CA 証明書を に登録する必要があります。

### CA 証明書の登録 (コンソール)
<a name="register-CA-cert-console"></a>

**注記**  
コンソールで CA 証明書を登録するには、[[Register CA certificate]](https://console.aws.amazon.com//iot/home#/create/cacertificate) (CA 証明書の登録) をコンソールで開始します。CA はマルチアカウントモードで登録でき、検証証明書を提供したり、プライベートキーにアクセスしたりする必要はありません。マルチアカウントモードでは、同一 AWS リージョン内の複数の AWS アカウント で CA を登録することができます。検証証明書と CA のプライベートキーの所有権の証明を提供することで、CA をシングルアカウントモードで登録できます。

### CA 証明書の登録 (CLI)
<a name="register-CA-cert-cli"></a>

CA 証明書を `DEFAULT` モードまたは `SNI_ONLY` モードで登録できます。CA は、 の 1 つ AWS アカウント で `DEFAULT`モードで登録できます AWS リージョン。CA は、 AWS アカウント 同じ 内の複数の によって `SNI_ONLY` モードで登録できます AWS リージョン。CA 証明書の詳細については、「[certificateMode](https://docs.aws.amazon.com//iot/latest/apireference/API_CACertificateDescription.html#iot-Type-CACertificateDescription-certificateMode)」を参照してください。

**注記**  
CA を `SNI_ONLY` モードで登録することをお勧めします。検証証明書やプライベートキーへのアクセスを提供する必要はなく、同じ AWS アカウント 内の複数の で CA を登録できます AWS リージョン。

#### SNI\$1ONLY モードでの CA 証明書の登録 (CLI) – 推奨
<a name="register-CA-cert-SNI-cli"></a>

**前提条件**

続行する前に、コンピュータで次のものが揃っていることを確認してください。
+ ルート CA の証明書ファイル (次の例では `root_CA_cert_filename.pem` と表記します)
+ [OpenSSL v1.1.1i](https://www.openssl.org/) またはそれ以降

**を使用して CA 証明書を `SNI_ONLY` モードで登録するには AWS CLI**

1. CA 証明書を に登録します AWS IoT。**register-ca-certificate** コマンドを使用して、CA 証明書ファイル名を入力します。詳細については、「*AWS CLI コマンドリファレンス*」の「[register-ca-certificate](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/register-ca-certificate.html)」を参照してください。

   ```
   aws iot register-ca-certificate \
       --ca-certificate file://root_CA_cert_filename.pem \
       --certificate-mode SNI_ONLY
   ```

   成功した場合、このコマンドは *certificateId* を返します。

1. この時点で、CA 証明書は に登録されています AWS IoT が、非アクティブです。CA 証明書によって署名されたクライアント証明書を登録できるようにするには、CA 証明書をアクティブにする必要があります。

   このステップにより CA 証明書がアクティブ化されます。

   CA 証明書をアクティブ化するには、次のように **update-certificate** コマンドを使用します。詳細については、「*AWS CLI コマンドリファレンス*」の「[update-certificate](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/update-certificate.html)」を参照してください。

   ```
   aws iot update-ca-certificate \
       --certificate-id certificateId \
       --new-status ACTIVE
   ```

CA 証明書のステータスを表示するには、**describe-ca-certificate** コマンドを使用します。詳細については、「*AWS CLI コマンドリファレンス*」の「[describe-ca-certificate](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/describe-ca-certificate.html)」を参照してください。

#### `DEFAULT` モードでの CA 証明書の登録 (CLI)
<a name="register-CA-cert-default-cli"></a>

**前提条件**

続行する前に、コンピュータで次のものが揃っていることを確認してください。
+ ルート CA の証明書ファイル (次の例では `root_CA_cert_filename.pem` と表記します)
+ ルート CA 証明書のプライベートキーファイル (次の例では `root_CA_key_filename.key` と表記します)
+ [OpenSSL v1.1.1i](https://www.openssl.org/) またはそれ以降

**を使用して CA 証明書を `DEFAULT` モードで登録するには AWS CLI**

1. から登録コードを取得するには AWS IoT、 を使用します**get-registration-code**。プライベートキー検証証明書の `Common Name` として使用するために、返された `registrationCode` を保存します。詳細については、「*AWS CLI コマンドリファレンス*」の「[get-registration-code](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/get-registration-code.html)」を参照してください。

   ```
   aws iot get-registration-code
   ```

1. プライベートキー検証証明書のキーペアを生成します。

   ```
   openssl genrsa -out verification_cert_key_filename.key 2048
   ```

1. プライベートキー検証証明書の証明書署名リクエスト (CSR) を作成します。証明書の `Common Name` フィールドに、`registrationCode` によって返された **get-registration-code** を設定します。

   ```
   openssl req -new \
       -key verification_cert_key_filename.key \
       -out verification_cert_csr_filename.csr
   ```

   証明書に関するいくつかの情報 (例: `Common Name`) の入力を求められます。

   ```
   You are about to be asked to enter information that will be incorporated
   into your certificate request.
   What you are about to enter is what is called a Distinguished Name or a DN.
   There are quite a few fields but you can leave some blank
   For some fields there will be a default value,
   If you enter '.', the field will be left blank.
   -----
   Country Name (2 letter code) [AU]:
       State or Province Name (full name) []:
       Locality Name (for example, city) []:
       Organization Name (for example, company) []:
       Organizational Unit Name (for example, section) []:
       Common Name (e.g. server FQDN or YOUR name) []:your_registration_code
       Email Address []:
   
       Please enter the following 'extra' attributes
       to be sent with your certificate request
       A challenge password []:
       An optional company name []:
   ```

1. CSR を使用して、プライベートキー検証証明書を作成します。

   ```
   openssl x509 -req \
       -in verification_cert_csr_filename.csr \
       -CA root_CA_cert_filename.pem \
       -CAkey root_CA_key_filename.key \
       -CAcreateserial \
       -out verification_cert_filename.pem \
       -days 500 -sha256
   ```

1. CA 証明書を に登録します AWS IoT。次のように、CA 証明書のファイル名とプライベートキー検証証明書のファイル名を **register-ca-certificate** コマンドに渡します。詳細については、「*AWS CLI コマンドリファレンス*」の「[register-ca-certificate](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/register-ca-certificate.html)」を参照してください。

   ```
   aws iot register-ca-certificate \
       --ca-certificate file://root_CA_cert_filename.pem \
       --verification-cert file://verification_cert_filename.pem
   ```

   成功した場合、このコマンドは *certificateId* を返します。

1. この時点で、CA 証明書は に登録されています AWS IoT が、アクティブではありません。CA 証明書によって署名されたクライアント証明書を登録できるようにするには、CA 証明書をアクティブにする必要があります。

   このステップにより CA 証明書がアクティブ化されます。

   CA 証明書をアクティブ化するには、次のように **update-certificate** コマンドを使用します。詳細については、「*AWS CLI コマンドリファレンス*」の「[update-certificate](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/update-certificate.html)」を参照してください。

   ```
   aws iot update-ca-certificate \
       --certificate-id certificateId \
       --new-status ACTIVE
   ```

CA 証明書のステータスを表示するには、**describe-ca-certificate** コマンドを使用します。詳細については、「*AWS CLI コマンドリファレンス*」の「[describe-ca-certificate](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/describe-ca-certificate.html)」を参照してください。

### コンソールに CA 証明書を登録するための CA 検証証明書を作成する
<a name="create-CA-verification-cert"></a>

**注記**  
この手順は、 AWS IoT コンソールから CA 証明書を登録する場合にのみ使用します。  
 AWS IoT コンソールからこの手順にアクセスしなかった場合は、コンソールの「CA 証明書の登録」で [CA 証明書](https://console.aws.amazon.com//iot/home#/create/cacertificate)の登録プロセスを開始します。

続行する前に、同じコンピュータで次のものが揃っていることを確認してください :
+ ルート CA の証明書ファイル (次の例では `root_CA_cert_filename.pem` と表記します)
+ ルート CA 証明書のプライベートキーファイル (次の例では `root_CA_key_filename.key` と表記します)
+ [OpenSSL v1.1.1i](https://www.openssl.org/) またはそれ以降

**コマンドラインインターフェイスを使用して CA 検証証明書を作成し、コンソールに CA 証明書を登録するには**

1. `verification_cert_key_filename.key` を、作成する検証証明書のキーファイルのファイル名 (例えば **verification\$1cert.key** など) で置き換えます。次にこのコマンドを実行して、プライベートキー検証証明書のキーペアを生成します。

   ```
   openssl genrsa -out verification_cert_key_filename.key 2048
   ```

1. `verification_cert_key_filename.key` をステップ 1 で作成したキーファイルの名前で置き換えます。

   `verification_cert_csr_filename.csr` を作成する証明書署名リクエスト (CSR) ファイルの名前で置き換えます。例えば、**verification\$1cert.csr**。

   このコマンドを実行して、CSR ファイルを作成します。

   ```
   openssl req -new \
       -key verification_cert_key_filename.key \
       -out verification_cert_csr_filename.csr
   ```

   このコマンドでは、後で説明する追加情報の入力を求めるプロンプトが表示されます。

1.  AWS IoT コンソールの検証**証明書**コンテナで、登録コードをコピーします。

1. **openssl** コマンドが入力を求める情報を以下の例に示します。`Common Name` フィールド以外では、独自の値を入力することも、空白のままにすることもできます。

   `Common Name` フィールドに、前のステップでコピーした登録コードを貼り付けます。

   ```
   You are about to be asked to enter information that will be incorporated
   into your certificate request.
   What you are about to enter is what is called a Distinguished Name or a DN.
   There are quite a few fields but you can leave some blank
   For some fields there will be a default value,
   If you enter '.', the field will be left blank.
   -----
   Country Name (2 letter code) [AU]:
       State or Province Name (full name) []:
       Locality Name (for example, city) []:
       Organization Name (for example, company) []:
       Organizational Unit Name (for example, section) []:
       Common Name (e.g. server FQDN or YOUR name) []:your_registration_code
       Email Address []:
   
       Please enter the following 'extra' attributes
       to be sent with your certificate request
       A challenge password []:
       An optional company name []:
   ```

   終了すると、コマンドによって CSR ファイルが作成されます。

1. `verification_cert_csr_filename.csr` を前のステップで使用した `verification_cert_csr_filename.csr` で置き換えます。

   `root_CA_cert_filename.pem` を登録する CA 証明書のファイル名で置き換えます。

   `root_CA_key_filename.key` を CA 証明書のプライベートキーファイルのファイル名で置き換えます。

   `verification_cert_filename.pem` を作成する検証証明書のファイル名で置き換えます。例えば、**verification\$1cert.pem**。

   ```
   openssl x509 -req \
       -in verification_cert_csr_filename.csr \
       -CA root_CA_cert_filename.pem \
       -CAkey root_CA_key_filename.key \
       -CAcreateserial \
       -out verification_cert_filename.pem \
       -days 500 -sha256
   ```

1. OpenSSL コマンドが完了したら、コンソールに戻ったときにこれらのファイルを使用できるようになります。
   + CA 証明書ファイル (前のコマンドで使用した `root_CA_cert_filename.pem`)
   + 前のステップで作成した検証証明書 (前のコマンドで使用した *verification\$1cert\$1filename.pem*)

## CA 証明書の非アクティブ化
<a name="deactivate-ca-cert"></a>

認証機関 (CA) 証明書の自動クライアント証明書登録が有効になっている場合、 は CA 証明書 AWS IoT をチェックして CA が であることを確認します`ACTIVE`。CA 証明書が の場合`INACTIVE`、クライアント証明書の登録は許可 AWS IoT されません。

CA 証明書を `INACTIVE` に設定すると、CA によって発行された新しいクライアント証明書が自動的に登録されなくなります。

**注記**  
疑わしい CA 証明書によって署名された登録済みのクライアント証明書は、明示的にそれぞれのクライアント証明書が取り消されるまで、引き続き使用されます。

### CA 証明書の非アクティブ化 (コンソール)
<a name="deactivate-ca-cert-console"></a>

**AWS IoT コンソールを使用して CA 証明書を無効にするには**

1. にサインイン AWS マネジメントコンソール し、 [AWS IoT コンソール](https://console.aws.amazon.com/iot/home)を開きます。

1. 左のナビゲーションペインで、[**安全性**]、[**CA**] の順に選択します。

1. 認証局の一覧で、非アクティブ化する認証局を探し、省略記号のアイコンを選択してオプションメニューを開きます。

1. オプションメニューで、[**無効化**] を選択します。

認証局は、リストに [**非アクティブ**] と表示されます。

**注記**  
 AWS IoT コンソールには、非アクティブ化した CA によって署名された証明書を一覧表示する方法はありません。これらの証明書を一覧表示する AWS CLI オプションについては、[CA 証明書の非アクティブ化 (CLI)](#deactivate-ca-cert-cli) を参照してください。

### CA 証明書の非アクティブ化 (CLI)
<a name="deactivate-ca-cert-cli"></a>

 AWS CLI は、CA 証明書を非アクティブ化する [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/update-ca-certificate.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/update-ca-certificate.html) コマンドを提供します。

```
aws iot update-ca-certificate \
    --certificate-id certificateId \
    --new-status INACTIVE
```

[https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/list-certificates-by-ca.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/list-certificates-by-ca.html) コマンドを使用して、指定した CA によって署名されたすべての登録済みクライアント証明書のリストを取得します。指定した CA 証明書によって署名されたクライアント証明書ごとに、[https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/update-certificate.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/update-certificate.html) コマンドを使用します。これによってクライアント証明書が失効し、使用できなくなります。

CA 証明書のステータスを表示するには、[https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/describe-ca-certificate.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/describe-ca-certificate.html) コマンドを使用します。

# CA 証明書を使用してクライアント証明書を作成する
<a name="create-device-cert"></a>

独自の認証局 (CA) を使用してクライアント証明書を作成できます。クライアント証明書は、使用 AWS IoT 前に に登録する必要があります。クライアント証明書の登録オプションの詳細については、 を参照してください[クライアント証明書の登録](register-device-cert.md)

## クライアント証明書の作成 (CLI)
<a name="create-device-cert-cli"></a>

**注記**  
 AWS IoT コンソールでこの手順を実行することはできません。

**を使用してクライアント証明書を作成するには AWS CLI**

1. キーペアを生成します。

   ```
   openssl genrsa -out device_cert_key_filename.key 2048
   ```

1. クライアント証明書の CSR を作成します。

   ```
   openssl req -new \
       -key device_cert_key_filename.key \
       -out device_cert_csr_filename.csr
   ```

   以下に示しているように、いくつかの情報の入力を求められます。

   ```
   You are about to be asked to enter information that will be incorporated
   into your certificate request.
   What you are about to enter is what is called a Distinguished Name or a DN.
   There are quite a few fields but you can leave some blank
   For some fields there will be a default value,
   If you enter '.', the field will be left blank.
   -----
   Country Name (2 letter code) [AU]:
       State or Province Name (full name) []:
       Locality Name (for example, city) []:
       Organization Name (for example, company) []:
       Organizational Unit Name (for example, section) []:
       Common Name (e.g. server FQDN or YOUR name) []:
       Email Address []:
   
       Please enter the following 'extra' attributes
       to be sent with your certificate request
       A challenge password []:
       An optional company name []:
   ```

1. CSR からクライアント証明書を作成します。

   ```
   openssl x509 -req \
       -in device_cert_csr_filename.csr \
       -CA root_CA_cert_filename.pem \
       -CAkey root_CA_key_filename.key \
       -CAcreateserial \
       -out device_cert_filename.pem \
       -days 500 -sha256
   ```

 この時点で、クライアント証明書は作成されていますが、まだ登録されていません AWS IoT。クライアント証明書を登録する方法とタイミングについては、 を参照してください[クライアント証明書の登録](register-device-cert.md) 

# クライアント証明書の登録
<a name="register-device-cert"></a>

クライアントと 間の通信を有効にする AWS IoT には、クライアント証明書を に登録する必要があります AWS IoT。各クライアント証明書を手動で登録することも、クライアントが AWS IoT 初めて に接続するときに自動的に登録するようにクライアント証明書を設定することもできます。

 クライアントとデバイスが最初に接続するときにクライアント証明書を登録する場合は、[CA 証明書の登録](manage-your-CA-certs.md#register-CA-cert) を使用するリージョンで AWS IoT を使用してクライアント証明書に署名する必要があります。Amazon ルート CA は自動的に に登録されます AWS IoT。

クライアント証明書は、 AWS アカウント および リージョンで共有できます。これらのトピックの手順は、クライアント証明書を使用する各アカウントおよびリージョンで実行する必要があります。あるアカウントまたはリージョンでのクライアント証明書の登録は、別のアカウントでは自動的に認識されません。

**注記**  
 AWS IoT への接続に Transport Layer Security (TLS) プロトコルを使用するクライアントは、TLS に対する [Server Name Indication (SNI) 拡張機能](https://tools.ietf.org/html/rfc3546#section-3.1)をサポートしている必要があります。詳細については、「[のトランスポートセキュリティ AWS IoT Core](transport-security.md)」を参照してください。

**Topics**
+ [クライアント証明書を手動で登録する](manual-cert-registration.md)
+ [クライアントがジャ AWS IoT just-in-time登録 (JITR) に接続するときにクライアント証明書を登録する](auto-register-device-cert.md)

# クライアント証明書を手動で登録する
<a name="manual-cert-registration"></a>

 AWS IoT コンソールと を使用して、クライアント証明書を手動で登録できます AWS CLI。

使用する登録手順は、証明書が AWS アカウントおよびリージョンによって共有されるかどうかによって異なります。あるアカウントまたはリージョンでのクライアント証明書の登録は、別のアカウントでは自動的に認識されません。

このトピックの手順は、クライアント証明書を使用する各アカウントおよびリージョンで実行する必要があります。クライアント証明書は、 AWS アカウントおよび リージョンで共有できます。

## 登録した CA によって署名したクライアント証明書を登録する (コンソール)
<a name="manual-cert-registration-console"></a>

**注記**  
この手順を実行する前に、クライアント証明書の .pem ファイルがあり、クライアント証明書が[登録 AWS IoT](manage-your-CA-certs.md#register-CA-cert)した CA によって署名されていることを確認してください。

**コンソール AWS IoT を使用して既存の証明書を に登録するには**

1.  AWS マネジメントコンソールにサインインし、[AWS IoT コンソール](https://console.aws.amazon.com/iot/home)を開きます。

1. ナビゲーションペインの **[Manage]** (管理) セクションで、**[Security]** (セキュリティ)、**[Certificates]** (証明書) の順に選択します。

1. **[Certificates]** (証明書) ページの **[Certificates]** (証明書) ダイアログボックスで、**[Add certificate]** (証明書を追加)、**[Register certificates]** (証明書を登録) の順に選択します。

1. **[Register certificate]** (証明書を登録) ページの **[Certificates to upload]** (アップロードする証明書) ダイアログボックスで、次の操作を行います。
   + **[CA is registered with AWS IoT]** (CA が IoT に登録されています) を選択します。
   + **[Choose a CA certificate]** (CA 証明書を選択) から **[Certification authority]** (認証機関) を選択します。
     +  AWS IoTに登録されていない新しい**認証機関**を登録するには、**[Register a new CA]** (新しい CA を登録) を選択します。
     + 認証機関として **Amazon ルート認証機関**を使用する場合は、**[Choose a CA certificate]** (CA 証明書を選択) を空白のままにします。
   + アップロードして登録する証明書を最大 10 個選択します AWS IoT。
     + 「[AWS IoT クライアント証明書を作成する](device-certs-create.md)」と「[CA 証明書を使用してクライアント証明書を作成する](create-device-cert.md)」で作成した証明書ファイルを使用します。
   + **[Activate]** (有効化) または **[Deactivate]** (無効化) を選択します。**[Deactive]** (無効化) を選択すると、証明書の登録後に証明書を有効化する方法についての説明が [クライアント証明書を有効または無効する](activate-or-deactivate-device-cert.md) に表示されます。
   + [**登録**] を選択します。

**[Certificates]** (証明書) ページの **[Certificates]** (証明書) ダイアログボックスに、登録した証明書が表示されます。

## 登録していない CA によって署名したクライアント証明書を登録する (コンソール)
<a name="manual-cert-registration-console-noca"></a>

**注記**  
この手順を実行する前に、クライアント証明書の.pem ファイルがあることを確認してください。

**コンソール AWS IoT を使用して既存の証明書を に登録するには**

1.  AWS マネジメントコンソールにサインインし、[AWS IoT コンソール](https://console.aws.amazon.com/iot/home)を開きます。

1. 左のナビゲーションペインで、[**安全性**] を選択し、[**証明書**] を選択してから [**作成**] を選択します。

1. **[Create a certificate]** (証明書を作成する) で、**[Use my certificate]** (お持ちの証明書を使用する) エントリを見つけて、**[Get started]** (今すぐ始める) を選択します。

1. **[Select a CA]** (CA の選択) で、**[Next]** (次へ) を選択します。

1.  **[Register existing device certificates]** (既存のデバイス証明書を登録する) で **[Select certificates]** (証明書の選択) を選択し、登録する証明書ファイルを最大 10 個選択します。

1.  ファイルダイアログボックスを閉じた後、クライアント証明書を登録するときにアクティブ化するか取り消すかどうかを選択します。

   登録時に証明書をアクティブ化しない場合、後で証明書をアクティブ化する方法については、「[クライアント証明書のアクティブ化 (コンソール)](activate-or-deactivate-device-cert.md#activate-device-cert-console)」で説明します。

   登録時に証明書が失効した場合、後でアクティブ化することはできません。

   登録する証明書ファイルを選択し、登録後に実行するアクションを選択したら、[**Register certificates(証明書の登録) **] を選択します。

正常に登録されたクライアント証明書が証明書の一覧に表示されます。

## 登録した CA によって署名したクライアント証明書を登録する (CLI)
<a name="manual-cert-registration-cli"></a>

**注記**  
この手順を実行する前に、認証局 (CA) .pem とクライアント証明書の.pem ファイルがあることを確認してください。クライアント証明書は、[登録 AWS IoT](manage-your-CA-certs.md#register-CA-cert)した認証機関 (CA) によって署名されている必要があります。

[https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/register-certificate.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/register-certificate.html) コマンドを使用して、クライアント証明書を登録します (アクティブ化しません)。

```
aws iot register-certificate \
    --certificate-pem file://device_cert_filename.pem \
    --ca-certificate-pem file://ca_cert_filename.pem
```

クライアント証明書は に登録されていますが AWS IoT、まだアクティブではありません。後で有効化する方法については、「[クライアント証明書のアクティブ化 (CLI)](activate-or-deactivate-device-cert.md#activate-device-cert-cli)」を参照してください。

このコマンドを使用して、クライアント証明書を登録するときにクライアント証明書をアクティブ化することもできます。

```
aws iot register-certificate \
    --set-as-active \
    --certificate-pem file://device_cert_filename.pem \
    --ca-certificate-pem file://ca_cert_filename.pem
```

証明書をアクティブ化して に接続できるようにする方法の詳細については AWS IoT、「」を参照してください。 [クライアント証明書を有効または無効する](activate-or-deactivate-device-cert.md)

## 登録していない CA によって署名したクライアント証明書を登録する (CLI)
<a name="manual-cert-registration-noca-cli"></a>

**注記**  
この手順を実行する前に、証明書の.pem ファイルがあることを確認してください。

[https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/register-certificate-without-ca.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/register-certificate-without-ca.html) コマンドを使用して、クライアント証明書を登録します (アクティブ化しません)。

```
aws iot register-certificate-without-ca \
    --certificate-pem file://device_cert_filename.pem
```

クライアント証明書は に登録されていますが AWS IoT、まだアクティブではありません。後で有効化する方法については、「[クライアント証明書のアクティブ化 (CLI)](activate-or-deactivate-device-cert.md#activate-device-cert-cli)」を参照してください。

このコマンドを使用して、クライアント証明書を登録するときにクライアント証明書をアクティブ化することもできます。

```
aws iot register-certificate-without-ca \
    --status ACTIVE \
    --certificate-pem file://device_cert_filename.pem
```

証明書をアクティブ化して に接続できるようにする方法の詳細については AWS IoT、「」を参照してください[クライアント証明書を有効または無効する](activate-or-deactivate-device-cert.md)。

# クライアントがジャ AWS IoT just-in-time登録 (JITR) に接続するときにクライアント証明書を登録する
<a name="auto-register-device-cert"></a>

CA 証明書を設定して、クライアントが初めて接続したときに AWS IoT に自動的に登録するために署名したクライアント証明書を有効にすることができます AWS IoT。

クライアントが AWS IoT 初めて に接続するときにクライアント証明書を登録するには、CA 証明書の自動登録を有効にし、必要な証明書を提供するようにクライアントによる最初の接続を設定する必要があります。

## 自動登録をサポートするための CA 証明書の設定 (コンソール)
<a name="enable-auto-registration-console"></a>

**AWS IoT コンソールを使用してクライアント証明書の自動登録をサポートするように CA 証明書を設定するには**

1.  AWS マネジメントコンソールにサインインし、[AWS IoT コンソール](https://console.aws.amazon.com/iot/home)を開きます。

1. 左のナビゲーションペインで、[**安全性**]、[**CA**] の順に選択します。

1. 認証局のリストで、自動登録を有効にする認証局を探し、省略記号アイコンを使用してオプションメニューを開きます。

1. オプションメニューで、[**自動登録を有効にする**] を選択します。

**注記**  
自動登録ステータスは、認証局の一覧に表示されません。認証局の自動登録ステータスを表示するには、認証局の [**詳細**] ページを開く必要があります。

## 自動登録をサポートするための CA 証明書の設定 (CLI)
<a name="enable-auto-registration-cli"></a>

CA 証明書を に登録済みの場合は AWS IoT、 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/update-ca-certificate.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/update-ca-certificate.html) コマンドを使用して CA 証明書`autoRegistrationStatus`の を に設定します`ENABLE`。

```
aws iot update-ca-certificate \
--certificate-id caCertificateId \
--new-auto-registration-status ENABLE
```

CA 証明書を登録するときに `autoRegistrationStatus` を有効にする場合は、[https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/register-ca-certificate.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/register-ca-certificate.html) コマンドを使用します。

```
aws iot register-ca-certificate \
--allow-auto-registration  \
--ca-certificate file://root_CA_cert_filename.pem \
--verification-cert file://verification_cert_filename.pem
```

CA 証明書のステータスを表示するには、[https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/describe-ca-certificate.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/describe-ca-certificate.html) コマンドを使用します。

## 自動登録のためのクライアントによる最初の接続の設定します
<a name="configure-auto-reg-first-connect"></a>

クライアントが AWS IoT 初めて に接続しようとする場合、Transport Layer Security (TLS) ハンドシェイク中に CA 証明書によって署名されたクライアント証明書がクライアントに存在する必要があります。

クライアントが に接続するときは AWS IoT、「クライアント証明書[の作成」または「独自のクライアント証明書の作成」で作成した AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/device-certs-create.html)クライアント証明書を使用します。 は CA 証明書を登録済み CA 証明書として AWS IoT 認識し、クライアント証明書を登録して、そのステータスを に設定します`PENDING_ACTIVATION`。 [https://docs.aws.amazon.com/iot/latest/developerguide/device-certs-your-own.html](https://docs.aws.amazon.com/iot/latest/developerguide/device-certs-your-own.html)これは、クライアント証明書が自動的に登録され、アクティベーションの待機中という事です。クライアント証明書が `ACTIVE` 状態になると、 AWS IoTへの接続に使用できるようになります。クライアント証明書の有効化については、「[クライアント証明書を有効または無効する](activate-or-deactivate-device-cert.md)」を参照してください。

**注記**  
ジャ AWS IoT Core just-in-time登録 (JITR) 機能を使用してデバイスをプロビジョニングできます。デバイスの最初の接続で信頼チェーン全体を送信する必要はありません AWS IoT Core。CA 証明書の提示はオプションですが、[[Server Name Indication (SNI)](https://datatracker.ietf.org/doc/html/rfc3546#section-3.1)](サーバーネームインディケーション (SNI)) エクステンションを接続する時にそれらを送信するために、そのデバイスが必要です。

が証明書 AWS IoT を自動的に登録するか、クライアントが証明書を `PENDING_ACTIVATION`ステータスで提示すると、 は次の MQTT トピックにメッセージ AWS IoT を発行します。

`$aws/events/certificates/registered/caCertificateId`

ここで、`caCertificateId` は、クライアント証明書を発行した CA 認定の ID です。

このトピックに発行されたメッセージには、以下の構造があります。

```
{
        "certificateId": "certificateId",
        "caCertificateId": "caCertificateId",
        "timestamp": timestamp,
        "certificateStatus": "PENDING_ACTIVATION",
        "awsAccountId": "awsAccountId",
        "certificateRegistrationTimestamp": "certificateRegistrationTimestamp"
}
```

このトピックをリッスンし、いくつかのアクションを実行するルールを作成できます。クライアント証明書が証明書失効リスト (CRL) に含まれていないことを確認し、証明書を有効にし、ポリシーを作成して、証明書にアタッチする、Lambda ルールを作成することをお勧めします。ポリシーによって、クライアントがアクセスできるリソースが決まります。作成するポリシーで接続デバイスからのクライアント ID が必要な場合は、ルールの clientid() 関数を使用してクライアント ID を取得できます。ルールの例として、以下のようなものがあります。

```
SELECT *,
   clientid() as clientid
from $aws/events/certificates/registered/caCertificateId
```

この例では、ルールは JITR トピック `$aws/events/certificates/registered/caCertificateID` をサブスクライブし、clientid() 関数を使用してクライアント ID を取得します。次に、ルールは JITR ペイロードにクライアント ID を追加します。ルールの clientid() 関数の詳細については、「[clientid()](https://docs.aws.amazon.com//iot/latest/developerguide/iot-sql-functions.html#iot-sql-function-clientid)」を参照してください。

`$aws/events/certificates/registered/caCertificateID` トピックでリッスンして該当アクションを実行する Lambda ルールの作成方法については、「[Just-in-Time Registration of Client Certificates on AWS IoT](https://aws.amazon.com/blogs/iot/just-in-time-registration-of-device-certificates-on-aws-iot/)」を参照してください。

クライアント証明書の自動登録中にエラーまたは例外が発生した場合、 はイベントまたはメッセージを CloudWatch Logs のログ AWS IoT に送信します。アカウントのログ設定の詳細については、[Amazon CloudWatch のドキュメント](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/)を参照してください。

# クライアント証明書の管理
<a name="manage-device-cert"></a>

AWS IoT には、クライアント証明書を管理する機能が用意されています。

**Topics**
+ [クライアント証明書を有効または無効する](activate-or-deactivate-device-cert.md)
+ [クライアント証明書へのモノまたはポリシーのアタッチ](attach-to-cert.md)
+ [クライアント証明書の取り消し](revoke-ca-cert.md)
+ [別のアカウントに証明書を移転する](transfer-cert.md)

# クライアント証明書を有効または無効する
<a name="activate-or-deactivate-device-cert"></a>

AWS IoT は、接続を認証するときにクライアント証明書がアクティブであることを確認します。

クライアント証明書をアクティブ化せずに作成および登録できるため、使用するときまで使用されないようにすることができます。アクティブなクライアント証明書を無効にして、一時的に無効にすることもできます。最後に、クライアント証明書を取り消して、今後の使用を防ぐことができます。

## クライアント証明書のアクティブ化 (コンソール)
<a name="activate-device-cert-console"></a>

**AWS IoT コンソールを使用してクライアント証明書をアクティブ化するには**

1.  AWS マネジメントコンソールにサインインし、[AWS IoT コンソール](https://console.aws.amazon.com/iot/home)を開きます。

1. 左のナビゲーションペインで、[**安全性**] を選択し、[**証明書**] を選択します。

1. 証明書の一覧で、アクティブ化する証明書を探し、省略記号アイコンを使用してオプションメニューを開きます。

1. オプションメニューで、[**有効化**] を選択します。

証明書の一覧で、証明書が [**アクティブ**] と表示されます。

## クライアント証明書の非アクティブ化 (コンソール)
<a name="deactivate-device-cert-console"></a>

**AWS IoT コンソールを使用してクライアント証明書を無効にするには**

1.  AWS マネジメントコンソールにサインインし、[AWS IoT コンソール](https://console.aws.amazon.com/iot/home)を開きます。

1. 左のナビゲーションペインで、[**安全性**] を選択し、[**証明書**] を選択します。

1. 証明書の一覧で、非アクティブ化する証明書を探し、省略記号アイコンを使用してオプションメニューを開きます。

1. オプションメニューで、[**無効化**] を選択します。

証明書のリストでは、証明書が [**非アクティブ**] と表示されます。

## クライアント証明書のアクティブ化 (CLI)
<a name="activate-device-cert-cli"></a>

 AWS CLI は、証明書をアクティブ化するための [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/update-certificate.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/update-certificate.html) コマンドを提供します。

```
aws iot update-certificate \
    --certificate-id certificateId \
    --new-status ACTIVE
```

コマンドが成功した場合、証明書の状態は `ACTIVE` になります。[https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/describe-certificate.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/describe-certificate.html) を実行して、証明書のステータスを確認します。

```
aws iot describe-certificate \
    --certificate-id certificateId
```

## クライアント証明書の非アクティブ化 (CLI)
<a name="deactivate-device-cert-cli"></a>

 AWS CLI は、証明書を非アクティブ化するための [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/update-certificate.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/update-certificate.html) コマンドを提供します。

```
aws iot update-certificate \
    --certificate-id certificateId \
    --new-status INACTIVE
```

コマンドが成功した場合、証明書の状態は `INACTIVE` になります。[https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/describe-certificate.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/describe-certificate.html) を実行して、証明書のステータスを確認します。

```
aws iot describe-certificate \
    --certificate-id certificateId
```

# クライアント証明書へのモノまたはポリシーのアタッチ
<a name="attach-to-cert"></a>

 AWS IoT モノとは別の証明書を作成して登録する場合、 AWS IoT オペレーションを許可するポリシーはなく、 AWS IoT モノのオブジェクトにも関連付けられません。このセクションでは、登録済みの証明書にこれらの関連付けを追加する方法について説明します。

**重要**  
これらの手順を完了するには、証明書にアタッチするモノまたはポリシーを事前に作成しておく必要があります。

証明書は、接続 AWS IoT できるようにデバイスを で認証します。モノのリソースに証明書をアタッチすると、デバイスとモノのリソースとの関係が (証明書を介して) 確立されます。デバイスがメッセージに接続して発行することを許可するなどの AWS IoT アクションを実行することを許可するには、適切なポリシーをデバイスの証明書にアタッチする必要があります。

## クライアント証明書へのモノのアタッチ (コンソール)
<a name="attach-to-cert-thing-console"></a>

この手順を完了するには、モノオブジェクトの名前が必要です。

**登録済み証明書にモノオブジェクトをアタッチするには**

1.  AWS マネジメントコンソールにサインインし、[AWS IoT コンソール](https://console.aws.amazon.com/iot/home)を開きます。

1. 左のナビゲーションペインで、[**安全性**] を選択し、[**証明書**] を選択します。

1. 証明書のリストで、ポリシーをアタッチする証明書を見つけ、省略記号アイコンを選択して証明書のオプションメニューを開き、[**モノをアタッチ**] を選択します。

1. ポップアップで、証明書にアタッチするモノの名前を見つけ、そのチェックボックスをオンにして **[Attach]** (アタッチ) を選択します。

これで、モノオブジェクトが証明書の詳細ページのモノリストに表示されます。

## クライアント証明書へのポリシーのアタッチ (コンソール)
<a name="attach-to-cert-policy-console"></a>

この手順を完了するには、ポリシーオブジェクトの名前が必要です。

**登録済みの証明書にポリシーオブジェクトをアタッチするには**

1.  AWS マネジメントコンソールにサインインし、[AWS IoT コンソール](https://console.aws.amazon.com/iot/home)を開きます。

1. 左のナビゲーションペインで、[**安全性**] を選択し、[**証明書**] を選択します。

1. 証明書のリストで、ポリシーをアタッチする証明書を見つけ、省略記号アイコンを選択して証明書のオプションメニューを開き、[**ポリシーをアタッチ**] を選択します。

1. ポップアップで、証明書にアタッチするポリシーの名前を見つけ、そのチェックボックスをオンにして **[Attach]** (アタッチ) を選択します。

これで、ポリシーオブジェクトが証明書の詳細ページのポリシーリストに表示されます。

## クライアント証明書へのモノのアタッチ (CLI)
<a name="attach-to-cert-thing-cli"></a>

 AWS CLI は、モノのオブジェクトを証明書にアタッチする [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/attach-thing-principal.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/attach-thing-principal.html) コマンドを提供します。

```
aws iot attach-thing-principal \
    --principal certificateArn \
    --thing-name thingName
```

## クライアント証明書へのポリシーのアタッチ (CLI)
<a name="attach-to-cert-policy-cli"></a>

 AWS CLI は、ポリシーオブジェクトを証明書にアタッチする [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/attach-policy.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/attach-policy.html) コマンドを提供します。

```
aws iot attach-policy \
    --target certificateArn \
    --policy-name policyName
```

# クライアント証明書の取り消し
<a name="revoke-ca-cert"></a>

登録済みのクライアント証明書で不審なアクティビティを検出した場合は、再使用できないように無効にすることができます。

**注記**  
証明書が取り消されると、そのステータスを変更することはできません。つまり、証明書のステータスを `Active` や他のステータスに変更することはできません。

## クライアント証明書の取り消し (コンソール)
<a name="revoke-device-cert-console"></a>

**AWS IoT コンソールを使用してクライアント証明書を取り消すには**

1.  AWS マネジメントコンソールにサインインし、[AWS IoT コンソール](https://console.aws.amazon.com/iot/home)を開きます。

1. 左のナビゲーションペインで、[**安全性**] を選択し、[**証明書**] を選択します。

1. 証明書の一覧で、取り消す証明書を探し、省略記号アイコンを使用してオプションメニューを開きます。

1. オプションメニューで [**取り消し**] を選択します。

証明書が正常に取り消された場合、証明書の一覧に [**失効済み**] と表示されます。

## クライアント証明書 (CLI) の取り消し
<a name="revoke-device-cert-cli"></a>

 AWS CLI は、証明書を取り消す[https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/update-certificate.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/update-certificate.html)コマンドを提供します。

```
aws iot update-certificate \
    --certificate-id certificateId \
    --new-status REVOKED
```

コマンドが成功した場合、証明書の状態は `REVOKED` になります。[https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/describe-certificate.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/describe-certificate.html) を実行して、証明書のステータスを確認します。

```
aws iot describe-certificate \
    --certificate-id certificateId
```

# 別のアカウントに証明書を移転する
<a name="transfer-cert"></a>

1 つの に属する X.509 証明書は、別の に転送 AWS アカウント できます AWS アカウント。

**X.509 証明書を 間で転送 AWS アカウント するには**

1. [証明書の転送を開始する](#transfer-cert-init)

   転送を開始する前に、証明書を非アクティブにし、すべてのポリシーとモノからデタッチする必要があります。

1. [証明書の転送を承諾または拒否する](#transfer-cert-accept)

   受信側のアカウントは、転送された証明書を明示的に承諾または拒否する必要があります。受信側のアカウントが証明書を承諾したら、使用前に証明書を有効化する必要があります。

1. [証明書の転送をキャンセルする](#transfer-cert-cancel)

   証明書が承諾されない場合、元のアカウントは転送をキャンセルできます。

## 証明書の転送を開始する
<a name="transfer-cert-init"></a>

[AWS IoT コンソール](https://console.aws.amazon.com/iot/home)または AWS アカウント を使用して、証明書の別の への転送を開始できます AWS CLI。

### 証明書の転送を開始する (コンソール)
<a name="transfer-cert-init-console"></a>

この手順を完了するには、転送する証明書の ID が必要です。

転送する証明書を持つアカウントからこの手順を実行します。

**別の への証明書の転送を開始するには AWS アカウント**

1.  AWS マネジメントコンソールにサインインし、[AWS IoT コンソール](https://console.aws.amazon.com/iot/home)を開きます。

1. 左のナビゲーションペインで、[**安全性**] を選択し、[**証明書**] を選択します。

   ステータスが **[Active]** (アクティブ) または **[Inactive]** (無効) である、転送する証明書を選択し、その詳細ページを開きます。

1. 証明書の **[詳細]** ページの **[アクション]** メニューで、**[無効化]** オプションが使用可能な場合は、**[無効化]** オプションを選択して証明書を無効化します。

1. 証明書の **[Details]** (詳細) ページの左側のメニューで、**[Policies]** (ポリシー) を選択します。

1. 証明書の **[Policies]** (ポリシー) ページで、証明書にポリシーがアタッチされている場合は、ポリシーのオプションメニューを開いて **[Detach]** (デタッチ) を選択し、各ポリシーをデタッチします。

   続行する前に、証明書にポリシーがアタッチされていてはなりません。

1. 証明書の **[Policies]** (ポリシー) ページの左側のメニューで、**[Things]** (モノ) を選択します。

1. 証明書の **[Things]** (モノ) ページで、証明書にモノがアタッチされている場合は、モノのオプションメニューを開いて **[Detach]** (デタッチ) を選択し、各モノをデタッチします。

   続行する前に、証明書にモノがアタッチされていてはなりません。

1. 証明書の **[Things]** (モノ) ページの左側のメニューで、**[Details]** (詳細) を選択します。

1. 証明書の **[詳細]** ページの **[アクション]** メニューで、**[転送を開始する]** を選択して **[転送を開始する]** ダイアログボックスを開きます。

1. **転送の開始**ダイアログボックスに、証明書を受信するアカウントの AWS アカウント 番号とオプションのショートメッセージを入力します。

1. [**Start transfer**] (転送を開始する) を選択して、証明書を転送します。

転送の成功または失敗を示すメッセージがコンソールに表示されます。転送が開始された場合、証明書のステータスは **[Transferred]** (転送済み) に更新されます。

### 証明書の転送を開始する (CLI)
<a name="transfer-cert-init-cli"></a>

この手順を完了するには、転送する証明書の *certificateId* と *certificateArn* が必要です。

転送する証明書を持つアカウントからこの手順を実行します。

**別の AWS アカウントへの証明書の移管を開始するには**

1. [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/update-certificate.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/update-certificate.html) コマンドを使用して証明書を非アクティブ化します。

   ```
   aws iot update-certificate --certificate-id certificateId --new-status INACTIVE
   ```

1. すべてのポリシーをデタッチします。

   1. [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/list-attached-policies.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/list-attached-policies.html) コマンドを使用して、証明書にアタッチされているポリシーを一覧表示します。

      ```
      aws iot list-attached-policies --target certificateArn
      ```

   1. アタッチされたポリシーごとに、[https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/detach-policy.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/detach-policy.html) コマンドを使用してポリシーをデタッチします。

      ```
      aws iot detach-policy --target certificateArn --policy-name policy-name
      ```

1. すべてのモノをデタッチします。

   1. [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/list-principal-things.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/list-principal-things.html) コマンドを使用して、証明書にアタッチされているモノを一覧表示します。

      ```
      aws iot list-principal-things --principal certificateArn
      ```

   1. アタッチされた各モノに対して [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/detach-thing-principal.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/detach-thing-principal.html) コマンドを実行してモノをデタッチします。

      ```
      aws iot detach-thing-principal --principal certificateArn --thing-name thing-name
      ```

1. [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/transfer-certificate.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/transfer-certificate.html) コマンドを使用して、証明書の転送を開始します。

   ```
   aws iot transfer-certificate --certificate-id certificateId --target-aws-account account-id
   ```

## 証明書の転送を承諾または拒否する
<a name="transfer-cert-accept"></a>

[AWS IoT コンソール](https://console.aws.amazon.com/iot/home)または AWS アカウント を使用して、別の から転送された AWS アカウント 証明書を承認または拒否できます AWS CLI。

### 証明書の転送を承諾または拒否する (コンソール)
<a name="transfer-cert-accept-console"></a>

この手順を完了するには、アカウントに転送された証明書の ID が必要です。

転送された証明書を受信するアカウントからこの手順を実行します。

**に転送された証明書を承諾または拒否するには AWS アカウント**

1.  AWS マネジメントコンソールにサインインし、[AWS IoT コンソール](https://console.aws.amazon.com/iot/home)を開きます。

1. 左のナビゲーションペインで、[**安全性**] を選択し、[**証明書**] を選択します。

   承認または拒否するステータスが **[Pending Transfer]** (転送を保留中) の証明書を選択し、その詳細ページを開きます。

1. 証明書の **[Details]** (詳細) ページの **[Actions]** (アクション) メニューで、次の操作を実行します。
   + 証明書を受け入れるには、**[Accept transfer]** (転送を許可する) を選択します。
   + 証明書を承諾しない場合は、**[Reject transfer]** (転送を拒否する) を選択します。

### 証明書の転送を承諾または拒否する (CLI)
<a name="transfer-cert-accept-cli"></a>

この手順を完了するには、承認または拒否する証明書の転送の *certificateId* が必要です。

転送された証明書を受信するアカウントからこの手順を実行します。

**に転送された証明書を承諾または拒否するには AWS アカウント**

1. [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/accept-certificate-transfer.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/accept-certificate-transfer.html) コマンドを使用して証明書を受け入れます。

   ```
   aws iot accept-certificate-transfer --certificate-id certificateId
   ```

1. [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/reject-certificate-transfer.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/reject-certificate-transfer.html) コマンドを使用して証明書を拒否します。

   ```
   aws iot reject-certificate-transfer --certificate-id certificateId
   ```

## 証明書の転送をキャンセルする
<a name="transfer-cert-cancel"></a>

[AWS IoT コンソール](https://console.aws.amazon.com/iot/home)または AWS CLIを使用して、承認される前に証明書の転送をキャンセルできます。

### 証明書の転送をキャンセルする (コンソール)
<a name="transfer-cert-cancel-console"></a>

この手順を完了するには、キャンセルする証明書の転送の ID が必要です。

証明書の転送を開始したアカウントから、この手順を実行します。

**証明書の転送をキャンセルするには**

1.  AWS マネジメントコンソールにサインインし、[AWS IoT コンソール](https://console.aws.amazon.com/iot/home)を開きます。

1. 左のナビゲーションペインで、[**安全性**] を選択し、[**証明書**] を選択します。

   転送をキャンセルする **[Transferred]** (転送済み) のステータスの証明書を選択し、そのオプションメニューを開きます。

1. 証明書のオプションメニューで、**[Revoke transfer]** (転送を取り消す) オプションを選択して、証明書の転送をキャンセルします。
**重要**  
[**Revoke transfer**] (転送を取り消す) オプションと [**Revoke**] (取り消し) オプションを間違えないように注意してください。  
[**Revoke transfer**] (転送を取り消す) オプションは証明書の転送をキャンセルしますが、[**Revoke**] (取り消し) オプションは証明書を AWS IoTで不可逆的に使用できなくします。

### 証明書の転送をキャンセルする (CLI)
<a name="transfer-cert-cancel-cli"></a>

この手順を完了するには、キャンセルする証明書の転送の *certificateId* が必要です。

証明書の転送を開始したアカウントから、この手順を実行します。

[https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/cancel-certificate-transfer.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/cancel-certificate-transfer.html) コマンドを使用して、証明書の転送をキャンセルします。

```
aws iot cancel-certificate-transfer --certificate-id certificateId
```

# カスタムクライアント証明書の検証
<a name="customize-client-auth"></a>

AWS IoT Core は X.509 クライアント証明書のカスタムクライアント証明書検証をサポートしており、クライアント認証管理を強化します。この証明書の検証方法は認証前証明書チェックとも呼ばれ、独自の基準 (Lambda 関数で定義) に基づいてクライアント証明書を評価し、クライアント証明書または証明書の署名認証局 (CA) 証明書を取り消して、クライアントが AWS IoT Coreに接続できないようにします。例えば、[オンライン証明書ステータスプロトコル (OCSP)](https://en.wikipedia.org/wiki/Online_Certificate_Status_Protocol) または[証明書失効リスト (CRL) ](https://en.wikipedia.org/wiki/Certificate_revocation_list)エンドポイントをサポートする検証機関に対して証明書のステータスを検証する独自の証明書失効チェックを作成し、失効した証明書を持つクライアントへの接続を防ぐことができます。クライアント証明書の評価に使用される基準は、Lambda 関数 (認証前 Lambda とも呼ばれます) で定義されます。ドメイン設定で設定されたエンドポイントを使用し、[[認証タイプ]](protocols.md#connection-protocol-auth-mode) は X.509 証明書である必要があります。さらに、クライアントは接続時に [Server Name Indication (SNI)](https://www.rfc-editor.org/rfc/rfc3546#section-3.1) 拡張機能を提供する必要があります AWS IoT Core。

**注記**  
この機能は、 AWS GovCloud (US) リージョンではサポートされていません。

**Topics**
+ [ステップ 1: X.509 クライアント証明書を に登録する AWS IoT Core](#client-auth-cert-verification)
+ [ステップ 2: Lambda 関数を作成する](#customize-client-auth-lambda)
+ [ステップ 3: AWS IoT に Lambda 関数の呼び出しを許可する](#customize-client-configuration-grant-permission)
+ [ステップ 4: ドメインの認証設定を設定する](#customize-client-configuration)

## ステップ 1: X.509 クライアント証明書を に登録する AWS IoT Core
<a name="client-auth-cert-verification"></a>

これをまだ実行していない場合は、[X.509 クライアント証明書](https://docs.aws.amazon.com//iot/latest/developerguide/x509-client-certs.html)を登録してアクティブ化します AWS IoT Core。それ以外の場合は、次のステップに進みます。

クライアント証明書を に登録してアクティブ化するには AWS IoT Core、次の手順に従います。

1. [でクライアント証明書を直接作成 AWS IoT](https://docs.aws.amazon.com//iot/latest/developerguide/device-certs-create.html)する場合。これらのクライアント証明書は、 に自動的に登録されます AWS IoT Core。

1. [独自のクライアント証明書を作成する](https://docs.aws.amazon.com//iot/latest/developerguide/device-certs-your-own.html)場合は、[以下の手順に従って登録します AWS IoT Core](https://docs.aws.amazon.com//iot/latest/developerguide/register-device-cert.html)。

1. クライアント証明書をアクティブ化するには、[以下の手順](https://docs.aws.amazon.com//iot/latest/developerguide/activate-or-deactivate-device-cert.html)に従います。

## ステップ 2: Lambda 関数を作成する
<a name="customize-client-auth-lambda"></a>

証明書の検証を実行し、設定されたエンドポイントのクライアント接続試行ごとに呼び出される Lambda 関数を作成する必要があります。この Lambda 関数を作成するときは、「[最初の Lambda 関数を作成する](https://docs.aws.amazon.com//lambda/latest/dg/getting-started.html)」の一般的なガイダンスに従ってください。さらに、Lambda 関数が、次のように予想されるリクエストとレスポンスの形式に準拠していることを確認します。

**Lambda 関数のイベントの例**

```
{
	"connectionMetadata": {
		"id": "string"
	},
	"principalId": "string",
	"serverName": "string",
	"clientCertificateChain": [
		"string",
		"string"
	]
}
```

`connectionMetadata`  
クライアントから AWS IoT Coreへの接続に関連するメタデータまたは追加情報。

`principalId`  
TLS 接続のクライアントに関連付けられたプリンシパル識別子。

`serverName`  
[[サーバー名表示 (SNI)]](https://www.rfc-editor.org/rfc/rfc3546#section-3.1) ホスト名文字列。 AWS IoT Core では、デバイスが [SNI 拡張](https://www.rfc-editor.org/rfc/rfc3546#section-3.1)を Transport Layer Security (TLS) に送信し、`host_name` フィールドに完全なエンドポイントアドレスを指定する必要があります。

`clientCertificateChain`  
クライアントの X.509 証明書チェーンを表す文字列の配列。

**Lambda 関数のレスポンスの例**

```
{
	"isAuthenticated": "boolean"
}
```

`isAuthenticated`  
リクエストが認証されるかどうかを示すブール値。

**注記**  
Lambda レスポンスでは、さらなる認証および承認に進むには `isAuthenticated` が `true` である必要があります。それ以外の場合は、IoT クライアント証明書を無効にし、X.509 クライアント証明書によるカスタム認証をブロックして、さらなる認証および承認を行うことができます。

## ステップ 3: AWS IoT に Lambda 関数の呼び出しを許可する
<a name="customize-client-configuration-grant-permission"></a>

Lambda 関数を作成したら、[add-permission](https://docs.aws.amazon.com//cli/latest/reference/lambda/add-permission.html) CLI コマンドを使用して、関数を呼び出す AWS IoT アクセス許可を に付与する必要があります。この Lambda 関数は、設定されたエンドポイントへの接続試行ごとに呼び出されることに注意してください。詳細については、[「Lambda 関数 AWS IoT の呼び出しを許可する](custom-auth-authorize.md)」を参照してください。

## ステップ 4: ドメインの認証設定を設定する
<a name="customize-client-configuration"></a>

次のセクションでは、 AWS CLIを使用してカスタムドメインの認証設定を設定する方法について説明します。

### ドメインのクライアント証明書設定を設定する (CLI)
<a name="customize-client-auth-cli"></a>

ドメイン設定がない場合は、[https://docs.aws.amazon.com//cli/latest/reference/iot/create-domain-configuration.html](https://docs.aws.amazon.com//cli/latest/reference/iot/create-domain-configuration.html) CLI コマンドを使用してドメイン設定を作成します。既にドメイン設定がある場合は、[https://docs.aws.amazon.com//cli/latest/reference/iot/update-domain-configuration.html](https://docs.aws.amazon.com//cli/latest/reference/iot/update-domain-configuration.html) CLI コマンドを使用してドメインのクライアント証明書設定を更新します。前のステップで作成した Lambda 関数の ARN を追加する必要があります。

```
aws iot create-domain-configuration \
    --domain-configuration-name domainConfigurationName \
    --authentication-type AWS_X509|CUSTOM_AUTH_X509 \
    --application-protocol SECURE_MQTT|HTTPS \
    --client-certificate-config 'clientCertificateCallbackArn":"arn:aws:lambda:us-east-2:123456789012:function:my-function:1"}'
```

```
aws iot update-domain-configuration \
    --domain-configuration-name domainConfigurationName \
    --authentication-type AWS_X509|CUSTOM_AUTH_X509 \
    --application-protocol SECURE_MQTT|HTTPS \
    --client-certificate-config '{"clientCertificateCallbackArn":"arn:aws:lambda:us-east-2:123456789012:function:my-function:1"}'
```

`domain-configuration-name`  
ドメイン構成の名前。

`authentication-type`  
ドメイン設定の認証タイプ。詳細については、「[認証タイプの選択](protocols.md#connection-protocol-auth-mode)」を参照してください。

`application-protocol`  
デバイスが AWS IoT Coreとの通信に使用するアプリケーションプロトコル。詳細については、「[アプリケーションプロトコルの選択](protocols.md#protocol-selection)」を参照してください。

`client-certificate-config`  
ドメインのクライアント認証設定を指定するオブジェクト。

`clientCertificateCallbackArn`  
新しい接続が確立されるときに TLS レイヤーで AWS IoT 呼び出す Lambda 関数の Amazon リソースネーム (ARN)。カスタムクライアント証明書の検証を実行するようにクライアント認証をカスタマイズするには、前のステップで作成した Lambda 関数の ARN を追加する必要があります。

詳細については、「*AWS IoT API リファレンス*」の「[CreateDomainConfiguration](https://docs.aws.amazon.com//iot/latest/apireference/API_CreateDomainConfiguration.html)」と「[UpdateDomainConfiguration](https://docs.aws.amazon.com//iot/latest/apireference/API_UpdateDomainConfiguration.html)」を参照してください。ドメイン設定の詳細については、「[ドメイン設定](https://docs.aws.amazon.com//iot/latest/developerguide/iot-custom-endpoints-configurable.html)」を参照してください。

# IAM ユーザー、グループ、ロール
<a name="iam-users-groups-roles"></a>

IAM ユーザー、グループ、ロールは、 AWSで ID と認証を管理するための標準的なメカニズムです。これらを使用して、 AWS SDK と を使用して HTTP AWS IoT インターフェイスに接続できます AWS CLI。

IAM ロールでは AWS IoT 、 がユーザーに代わってアカウント内の他の AWS リソースにアクセスすることもできます。たとえば、デバイスがその状態を DynamoDB テーブルに発行する場合、IAM ロールは AWS IoT が Amazon DynamoDB とやり取りできるようにします。詳細については、[「IAM ロール」](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html)を参照してください。

HTTP 経由のメッセージブローカー接続の場合、 は署名バージョン 4 の署名プロセスを使用してユーザー、グループ、ロールを AWS IoT 認証します。詳細については、[AWS 「 API リクエストの署名](https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html)」を参照してください。

で AWS 署名バージョン 4 を使用する場合 AWS IoT、クライアントは TLS 実装で以下をサポートする必要があります。
+ TLS 1.2
+ SHA-256 RSA 証明書の署名の検証
+ サポートされているいずれかの TLS 暗号スイート

詳細については、[の ID とアクセスの管理 AWS IoT](security-iam.md) を参照してください。

# Amazon Cognito ID
<a name="cognito-identities"></a>

Amazon Cognito Identity を使用すると、モバイルアプリケーションやウェブアプリケーションで使用するために、権限が制限された一時的な AWS 認証情報を作成できます。Amazon Cognito ID を使用する場合、ユーザーに対して一意の ID を作成し、Login with Amazon、Facebook、Google などの ID プロバイダーで認証するアイデンティティプールを作成します。独自のデベロッパーが認証した ID で Amazon Cognito ID を使用することもできます。詳細については、[Amazon Cognito ID](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html) を参照してください。

Amazon Cognito ID を使用するには、IAM ロールに関連付けられた Amazon Cognito アイデンティティプールを定義します。IAM ロールは、 サービスの呼び出し AWS などの AWS リソースにアクセスするためのアクセス許可を ID プールから ID に付与する IAM ポリシーに関連付けられています。

Amazon Cognito ID では、認証されていない ID と認証された ID が作成されます。認証されていない ID は、サインインせずにアプリを使用するモバイルアプリケーションまたはウェブアプリケーションのゲストユーザーに使用されます。認証されていないユーザーには、ID プールに関連付けられた IAM ポリシーで指定されているアクセス許可のみが付与されます。

認証された ID を使用する場合は、ID プールにアタッチされた IAM ポリシーに加えて、Amazon Cognito ID に AWS IoT ポリシーをアタッチする必要があります。 AWS IoT ポリシーをアタッチするには、[AttachPolicy](https://docs.aws.amazon.com/iot/latest/apireference/API_AttachPolicy.html) API を使用し、 AWS IoT アプリケーションの個々のユーザーにアクセス許可を付与します。 AWS IoT ポリシーを使用して、特定の顧客とそのデバイスにきめ細かなアクセス許可を割り当てることができます。

認証されたユーザーと未認証のユーザーは、異なる ID タイプです。Amazon Cognito ID に AWS IoT ポリシーをアタッチしない場合、認証されたユーザーは での認可に失敗 AWS IoT し、 AWS IoT リソースとアクションにアクセスできません。Amazon Cognito ID のポリシー作成の詳細については、[パブリッシュ/サブスクライブポリシーの例](pub-sub-policy.md) および [Amazon Cognito ID を使用した承認](cog-iot-policies.md) を参照してください。

![\[Amazon Cognito ID を使用してデバイスにアクセスするアプリケーション。\]](http://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/images/device-cognito.png)
