

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

# ユーザープールのドメインを設定する
<a name="cognito-user-pools-assign-domain"></a>

ドメインの設定は、ユーザープールを設定するオプションです。ユーザープールドメインは、ユーザー認証、サードパーティープロバイダーとのフェデレーション、および OpenID Connect (OIDC) フローについての機能をホストします。*マネージドログイン*は、サインアップ、サインイン、パスワード復旧など、主要なオペレーション用の事前構築済みのインターフェイスです。また、Machine to Machine (M2M) 認可、その他の OIDC や OAuth 2.0 の認証と認可フローのために、[承認](authorization-endpoint.md)、[ユーザー情報](userinfo-endpoint.md)、[トークン](token-endpoint.md)など、OpenID Connect (OIDC) の標準エンドポイントもホストします。

ユーザーは、ユーザープールに関連付けられたドメインでマネージドログインページを使用して認証します。このドメインを設定するには、次の 2 つのオプションがあります。デフォルトの Amazon Cognito ホストドメインを使用することも、所有するカスタムドメインを設定することもできます。

カスタムドメインオプションには、柔軟性、セキュリティ、制御のためのオプションが多数用意されています。例えば、使い慣れた組織所有のドメインは、ユーザーの信頼を高めて、サインインプロセスが直感的にできます。ただし、カスタムドメインアプローチには、SSL 証明書の管理や DNS 設定など、追加のオーバーヘッドが必要です。

OIDC 検出エンドポイント (エンドポイント URL 用の `/.well-known/openid-configuration`、およびトークン署名キー用の `/.well-known/jwks.json`) はドメインでホストされません。詳細については、「[ID プロバイダーと依拠しているパーティーエンドポイント](federation-endpoints.md)」を参照してください。

ユーザープールのドメインを設定および管理する方法を理解することは、認証をアプリケーションに統合するための重要なステップです。ユーザープール API と AWS SDK を使用してサインインすることは、ドメインを設定する代わりに使用できます。API ベースのモデルは API レスポンスに直接トークンを配信しますが、ユーザープールの拡張機能を OIDC IdP として使用する実装の場合は、ドメインを設定する必要があります。ユーザープールで使用できる認証モデルの詳細については、「[API、OIDC、マネージドログインページの認証についての理解](authentication-flows-public-server-side.md#user-pools-API-operations)」を参照してください。

**Topics**
+ [ユーザープールドメインについて知っておくべきこと](#cognito-user-pools-assign-domain-things-to-know)
+ [マネージドログインに Amazon Cognito プレフィックスドメインを使用する](cognito-user-pools-assign-domain-prefix.md)
+ [マネージドログインに独自のドメインを使用する](cognito-user-pools-add-custom-domain.md)

## ユーザープールドメインについて知っておくべきこと
<a name="cognito-user-pools-assign-domain-things-to-know"></a>

ユーザープールドメインは、アプリケーション内の OIDC の依拠しているパーティー向け、および UI 向けのサービスポイントです。ユーザープールのドメインの実装を計画する場合は、次の詳細を考慮してください。

**予約済みの用語**  
Amazon Cognito プレフィックスドメイン名で `aws`、`amazon`、または `cognito` というテキストを使用することはできません。

**検出エンドポイントが別のドメインにある**  
ユーザープール[検出エンドポイント](federation-endpoints.md)の `.well-known/openid-configuration` および `.well-known/jwks.json` は、ユーザープールのカスタムドメインまたはプレフィックスドメインにはありません。これらのエンドポイントへのパスは次のとおりです。
+ `https://cognito-idp.Region.amazonaws.com/your user pool ID/.well-known/openid-configuration`
+ `https://cognito-idp.Region.amazonaws.com/your user pool ID/.well-known/jwks.json`

**ドメイン変更の所要時間**  
Amazon Cognito がプレフィックスドメインのブランディングバージョンを起動または更新するまでに最大 1 分かかる場合があります。カスタムドメインへの変更は、反映されるまでに最大 5 分かかる場合があります。新しいカスタムドメインは、反映されるまで最大 1 時間かかる場合があります。

**カスタムドメインとプレフィックスドメインを同時に**  
カスタムドメインと が所有するプレフィックスドメインの両方を使用してユーザープールを設定できます AWS。ユーザープール[検出エンドポイント](federation-endpoints.md)は別のドメインでホストされるため、*カスタムドメイン*にのみ対応します。例えば、`openid-configuration` は `"https://auth.example.com/oauth2/authorize"` の `"authorization_endpoint"` に 1 つの値を提供します。

ユーザープールにカスタムドメインとプレフィックスドメインの両方がある場合、OIDC プロバイダーのすべての機能でカスタムドメインを使用できます。この設定を持つユーザープールのプレフィックスドメインには検出エンドポイントやトークン署名キーエンドポイントがないため、それに応じて使用する必要があります。

**パスキーの依拠しているパーティの ID として優先されるカスタムドメイン**  
[パスキー](amazon-cognito-user-pools-authentication-flow-methods.md#amazon-cognito-user-pools-authentication-flow-methods-passkey)でユーザープール認証を設定するときは、依拠しているパーティ (RP) の ID を設定する必要があります。カスタムドメインとプレフィックスドメインがある場合、RP ID はカスタムドメインとしてのみ設定できます。Amazon Cognito コンソールでプレフィックスドメインを RP ID として設定するには、カスタムドメインを削除するか、プレフィックスドメインの完全修飾ドメイン名 (FQDN) を**サードパーティのドメイン**として入力します。

**ドメイン階層の異なるレベルでカスタムドメインを使用しない**  
*auth.example.com* や *auth2.example.com* など、同じ最上位ドメイン (TLD) にカスタムドメインを持つように個別のユーザープールを設定できます。マネージドログインのセッション Cookie は、カスタムドメインと、*\$1.auth.example.com* などのすべてのサブドメインに対して有効です。このため、アプリケーションのユーザーは、親ドメイン*および*サブドメインでマネージドログインにアクセスできません。カスタムドメインが同じ TLD を使用している場合は、同じサブドメインレベルで保持します。

カスタムドメイン *auth.example.com* を持つユーザープールがあるとします。次に、別のユーザープールを作成し、カスタムドメイン *uk.auth.example.com* を割り当てるとします。ユーザーは *auth.example.com* でサインインし、ワイルドカードパス *\$1.auth.example.com* でブラウザが任意のウェブサイトに提示する Cookie を取得します。その後、*uk.auth.example.com* へのサインインを試みます。ユーザープールドメインに無効な Cookie が渡され、サインインプロンプトの代わりにエラーが返されます。対照的に、*\$1.auth.example.com* 用の Cookie を持つユーザーは、*auth2.example.com* でサインインセッションを開始しても問題ありません。

**ブランディングバージョン**  
ドメインを作成するときは、**ブランディングバージョン**を設定します。オプションは、新しいマネージドログインエクスペリエンスとクラシックのホストされた UI エクスペリエンスです。この選択は、ドメインでサービスをホストするすべてのアプリケーションクライアントに適用されます。

# マネージドログインに Amazon Cognito プレフィックスドメインを使用する
<a name="cognito-user-pools-assign-domain-prefix"></a>

マネージドログインのデフォルトのエクスペリエンスは、 AWS が所有するドメインでホストされます。このアプローチでは、プレフィックス名を選択してアクティブにできるので、エントリに対する障壁は低くなりますが、カスタムドメインの信頼感を高める機能はありません。Amazon Cognito ドメインオプションとカスタムドメインオプションの間でコスト差はありません。唯一の違いは、ユーザーに指示するウェブアドレスのドメインです。サードパーティーの IdP リダイレクトとクライアント認証情報フローの場合、ホストされたドメインはほとんど表示されません。ユーザーがマネージドログインを使用してサインインし、アプリケーションドメインと一致しない認証ドメインとやり取りする場合は、カスタムドメインの方が適しています。

ホストされた Amazon Cognito ドメインには、選択したプレフィックスがありますが、ルートドメイン `amazoncognito.com` でホストされます。以下に例を示します。

```
https://cognitoexample.auth.ap-south-1.amazoncognito.com
```

すべてのプレフィックスドメインは、次の形式に従います: `prefix`.`auth`.*`AWS リージョン code`*.`amazoncognito`.`com`。[カスタムドメイン](cognito-user-pools-add-custom-domain.md) ユーザープールは、マネージドログインまたはホストされた UI ページを、所有している任意のドメインでホストできます。

**注記**  
Amazon Cognito アプリケーションのセキュリティを強化するために、ユーザープールエンドポイントの親ドメインは[パブリックサフィックスリスト (PSL)](https://publicsuffix.org/) に登録されます。PSL は、ユーザーのウェブブラウザが、ユーザーが設定するユーザープールエンドポイントと Cookie を一貫して把握するのに役立ちます。  
ユーザープールの親ドメインは、以下の形式になります。  

```
auth.Region.amazoncognito.com
auth-fips.Region.amazoncognito.com
```

でアプリケーションクライアントとユーザープールドメインを追加するには AWS マネジメントコンソール、「」を参照してください[アプリクライアントの作成](user-pool-settings-client-apps.md#cognito-user-pools-app-idp-settings-console-create)。

**Topics**
+ [前提条件](#cognito-user-pools-assign-domain-prefix-prereq)
+ [Amazon Cognito ドメインプレフィックスを設定する](#cognito-user-pools-assign-domain-prefix-step-1)
+ [サインインページを検証する](#cognito-user-pools-assign-domain-prefix-verify)

## 前提条件
<a name="cognito-user-pools-assign-domain-prefix-prereq"></a>

開始するには、以下が必要です。
+ アプリクライアントを持つユーザープール。詳細については、「[ユーザープールの開始方法](getting-started-user-pools.md)」を参照してください。

## Amazon Cognito ドメインプレフィックスを設定する
<a name="cognito-user-pools-assign-domain-prefix-step-1"></a>

ユーザープールドメインを設定するには、 AWS マネジメントコンソール または AWS CLI または API を使用できます。

------
#### [ Amazon Cognito console ]

**ドメインを設定する**

1. **[ブランディング]** の下にある **[ドメイン]** メニューに移動します。

1. **[ドメイン]** の横で **[アクション]**、**[Cognito ドメインを作成]** の順に選択します。ユーザープールのプレフィックスドメインを設定済みである場合は、新しいカスタムドメインを作成する前に、**[Cognitoドメインの削除]** を選択します。

1. **Amazon Cognito ドメイン**で使用するための使用可能なドメインプレフィックスを入力します。**カスタムドメイン**の設定方法については、「[マネージドログインに独自のドメインを使用する](cognito-user-pools-add-custom-domain.md)」を参照してください。

1. **[ブランディングバージョン]** を選択します。ブランディングバージョンは、そのドメインのすべてのユーザーインタラクティブページに適用されます。ユーザープールは、すべてのアプリケーションクライアントでマネージドログインブランディングまたはホステッド UI ブランディングのいずれかをホストできます。
**注記**  
カスタムドメインとプレフィックスドメインを持つことができますが、Amazon Cognito は*カスタム*ドメイン用の `/.well-known/openid-configuration` エンドポイントのみを提供します。

1. **[作成]** を選択します。

------
#### [ CLI/API ]

ドメインプレフィックスを作成してユーザープールに割り当てるには、次のコマンドを使用します。

**ユーザープールのドメインを設定する**
+ AWS CLI: `aws cognito-idp create-user-pool-domain`

  **例**: `aws cognito-idp create-user-pool-domain --user-pool-id <user_pool_id> --domain <domain_name> --managed-login-version 2`
+ ユーザープールの API オペレーション: [CreateUserPoolDomain](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPoolDomain.html)

**ドメインに関する情報を取得する**
+ AWS CLI: `aws cognito-idp describe-user-pool-domain`

  **例**: `aws cognito-idp describe-user-pool-domain --domain <domain_name>`
+ ユーザープールの API オペレーション: [DescribeUserPoolDomain](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DescribeUserPoolDomain.html)

**ドメインを削除する**
+ AWS CLI: `aws cognito-idp delete-user-pool-domain`

  **例**: `aws cognito-idp delete-user-pool-domain --domain <domain_name>`
+ ユーザープールの API オペレーション: [DeleteUserPoolDomain](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DeleteUserPoolDomain.html)

------

## サインインページを検証する
<a name="cognito-user-pools-assign-domain-prefix-verify"></a>
+ Amazon Cognito でホストされるドメインから、サインインページが利用可能であることを検証します。

  ```
  https://<your_domain>/login?response_type=code&client_id=<your_app_client_id>&redirect_uri=<your_callback_url>
  ```

ドメインは、Amazon Cognito コンソールの **[ドメイン名]** ページに表示されます。アプリクライアント ID およびコールバック URL は [**アプリクライアントの設定**] ページに表示されています。

# マネージドログインに独自のドメインを使用する
<a name="cognito-user-pools-add-custom-domain"></a>

アプリケーションクライアントをセットアップしたら、[マネージドログイン](cognito-user-pools-managed-login.md)のドメインサービスでカスタムドメインのユーザープールを設定できます。カスタムドメインを使用すると、ユーザーはデフォルトの[プレフィックスドメイン](cognito-user-pools-assign-domain-prefix.md) `amazoncognito.com` の代わりに、独自のウェブアドレスを使用してアプリケーションにサインインできます。カスタムドメインは、特にルートドメインがアプリケーションをホストするドメインと一致する場合、よく知られているドメイン名を使用してアプリケーションのユーザー信頼を向上させます。カスタムドメインは、組織のセキュリティ要件へのコンプライアンスを強化できます。

カスタムドメインには、ユーザープール、アプリケーションクライアント、所有するウェブドメインなど、いくつかの前提条件があります。カスタムドメインには、米国東部 (バージニア北部) の AWS Certificate Manager (ACM) で管理されるカスタムドメインの SSL 証明書も必要です。Amazon Cognito は、ACM 証明書によって転送中に保護される Amazon CloudFront ディストリビューションを作成します。ドメインを所有している場合、カスタムドメインの CloudFront ディストリビューションにトラフィックを誘導する DNS レコードを作成する必要があります。

これらの要素の準備ができたら、Amazon Cognito のコンソールまたは API を使用してカスタムドメインをユーザープールに追加できます。これには、ドメイン名と SSL 証明書を指定したうえで、指定したエイリアスターゲットで DNS 設定を更新する必要があります。これらの変更を行った後、サインインページがカスタムドメインでアクセス可能であることを検証できます。

カスタムドメインを作成する最も簡単な方法は、Amazon Route 53 のパブリックホストゾーンを使用することです。Amazon Cognito コンソールでは、適切な DNS レコードを数ステップで作成できます。開始する前に、所有しているドメインまたはサブドメイン用の [Route 53 ホストゾーンを作成する](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/CreatingHostedZone.html)ことを検討してください。

**Topics**
+ [ユーザープールへのカスタムドメインの追加](#cognito-user-pools-add-custom-domain-adding)
+ [前提条件](#cognito-user-pools-add-custom-domain-prereq)
+ [ステップ 1: カスタムドメイン名を入力する](#cognito-user-pools-add-custom-domain-console-step-1)
+ [ステップ 2: エイリアスターゲットとサブドメインを追加する](#cognito-user-pools-add-custom-domain-console-step-2)
+ [ステップ 3: サインインページを検証する](#cognito-user-pools-add-custom-domain-console-step-3)
+ [カスタムドメインの SSL 証明書を変更する](#cognito-user-pools-add-custom-domain-changing-certificate)

## ユーザープールへのカスタムドメインの追加
<a name="cognito-user-pools-add-custom-domain-adding"></a>

カスタムドメインをユーザープールに追加するには、Amazon Cognito コンソールでドメイン名を指定し、[AWS Certificate Manager](https://docs.aws.amazon.com/acm/latest/userguide/) (ACM) を使用してユーザー管理の証明書を提供します。ドメインを追加したら、Amazon Cognito がエイリアスターゲットを提供するので、これを DNS 設定に追加します。

## 前提条件
<a name="cognito-user-pools-add-custom-domain-prereq"></a>

開始するには、以下が必要です。
+ アプリクライアントを持つユーザープール。詳細については、「[ユーザープールの開始方法](getting-started-user-pools.md)」を参照してください。
+ 所有するウェブドメイン。その*親ドメイン*には、DNS に有効な **A レコード**が必要です。このレコードには任意の値を割り当てることができます。親は、ドメインのルート、またはドメイン階層の 1 つ上の子ドメインです。例えば、カスタムドメインが *auth.xyz.example.com* である場合、Amazon Cognito は *xyz.example.com* を IP アドレスに解決できることが必要です。お客様のインフラストラクチャへの偶発的な影響を防ぐため、Amazon Cognito は、最上位ドメイン (TLD) のカスタムドメインへの使用をサポートしていません。詳細については、「[ドメイン名](https://tools.ietf.org/html/rfc1035)」を参照してください。
+ カスタムドメインのサブドメインを作成する機能。サブドメイン名としては、**auth** をお勧めします。たとえば、「*auth.example.com*」を使用します。
**注記**  
「[ワイルドカード証明書](https://en.wikipedia.org/wiki/Wildcard_certificate)」がない場合は、カスタムドメインのサブドメイン用に新しい証明書の取得が必要な場合があります。
+ 米国東部 (バージニア北部) の ACM によって管理されるパブリック SSL/TLS 証明書。証明書はグローバルサービスである CloudFront のディストリビューションに関連付けられるため、証明書は us-east-1 に配置する必要があります。
+ Server Name Indication (SNI) をサポートするブラウザクライアント。Amazon Cognito がカスタムドメインに割り当てる CloudFront ディストリビューションには SNI が必要です。この設定は変更できません。CloudFront ディストリビューションの SNI の詳細については、「*Amazon CloudFront デベロッパーガイド*」の「[SNI を使用して HTTPS リクエストを処理する](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cnames-https-dedicated-ip-or-sni.html#cnames-https-sni)」を参照してください。
+ ユーザープール認可サーバーがユーザーセッションに Cookie を追加することを許可するアプリケーション。Amazon Cognito は、マネージドログインページに必要ないくつかの Cookie を設定します。`cognito`、`cognito-fl`、`XSRF-TOKEN` などです。個々の Cookie はブラウザのサイズ制限に適合していますが、ユーザープールの設定を変更すると、マネージドログインの Cookie のサイズが大きくなる可能性があります。カスタムドメインの前の Application Load Balancer (ALB) などの中間サービスでは、ヘッダーの最大サイズまたは Cookie の合計サイズが適用される場合があります。アプリケーションが独自の Cookie も設定している場合、ユーザーのセッションはこれらの制限を超える可能性があります。サイズ制限の競合を避けるため、アプリケーションでは、ユーザープールのドメインサービスをホストするサブドメインに Cookie を設定しないようお勧めします。
+ Amazon CloudFront ディストリビューションを更新するアクセス許可。そのためには、次の IAM ポリシーステートメントを AWS アカウントのユーザーにアタッチします。

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
           {
              "Sid": "AllowCloudFrontUpdateDistribution",
              "Effect": "Allow",
              "Action": [
                  "cloudfront:updateDistribution"
              ],
              "Resource": [
                  "*"
              ]
          }
      ]
  }
  ```

------

  CloudFront でのアクションの承認の詳細については、「[CloudFront でのアイデンティティベースのポリシー (IAM ポリシー) の使用](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/access-control-managing-permissions.html)」を参照してください。

  Amazon Cognito は、最初に IAM アクセス許可を使用して CloudFront ディストリビューションを設定しますが、ディストリビューションは AWSによって管理されます。Amazon Cognito がユーザープールに関連付けた CloudFront ディストリビューションの設定を変更することはできません。例えば、セキュリティポリシーでサポートされている TLS バージョンを更新することはできません。

## ステップ 1: カスタムドメイン名を入力する
<a name="cognito-user-pools-add-custom-domain-console-step-1"></a>

ドメインは、Amazon Cognito コンソールまたは API を使用することでユーザープールに追加できます。

------
#### [ Amazon Cognito console ]

**Amazon Cognito コンソールからユーザープールにドメインを追加する。**

1. **[ブランディング]** の下にある **[ドメイン]** メニューに移動します。

1. **[ドメイン]** の横で、**[アクション]** を選択し、**[カスタムドメインの作成]** または **[Amazon Cognito ドメインの作成]** のどちらかを選択します。ユーザープールのカスタムドメインを設定済みである場合は、新しいカスタムドメインを作成する前に、**[カスタムドメインを削除]** を選択します。

1. **[ドメイン]** の横にある **[アクション]** を選択し、**[カスタムドメインを作成]** を選択します。カスタムドメインを設定済みである場合は、新しいカスタムドメインを作成する前に、**[カスタムドメインを削除]** を選択して既存のドメインを削除します。

1. **[Custom domain]** (カスタムドメイン) には、Amazon Cognito で使用するドメインの URL を入力します。ドメイン名で使用できるのは、小文字の英文字、数字、およびハイフンのみです。最初または最後の文字にハイフンを使用しないでください。サブドメイン名は、ピリオドで区切ります。

1. **[ACM certificate]** (ACM 証明書) には、ドメインに使用する SSL 証明書を選択します。ユーザープールの に関係なく、Amazon Cognito カスタムドメインで使用できるのは、米国東部 (バージニア北部) AWS リージョン の ACM 証明書のみです。

   利用可能な証明書がない場合は、ACM を使用して米国東部 (バージニア北部) にプロビジョニングできます。詳細については、*AWS Certificate Manager ユーザーガイド*の「[使用開始](https://docs.aws.amazon.com/acm/latest/userguide/gs.html)」を参照してください。

1. **[ブランディングバージョン]** を選択します。ブランディングバージョンは、そのドメインのすべてのユーザーインタラクティブページに適用されます。ユーザープールは、すべてのアプリケーションクライアントでマネージドログインブランディングまたはホステッド UI ブランディングのいずれかをホストできます。
**注記**  
カスタムドメインとプレフィックスドメインを持つことができますが、Amazon Cognito は*カスタム*ドメイン用の `/.well-known/openid-configuration` エンドポイントのみを提供します。

1. **[作成]** を選択します。

1. Amazon Cognito は **[ドメイン]** メニューに戻ります。メッセージ「**Create an alias record in your domain's DNS**」(ドメインの DNS にエイリアスレコードを作成する) が表示されます。コンソールに表示される **[Domain]** (ドメイン) と **[Alias target]** (エイリアスターゲット) を書き留めます。これらは、次のステップでカスタムドメインにトラフィックを転送するために使用します。

------
#### [ API ]

次の [CreateUserPoolDomain](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPoolDomain.html) リクエスト本文では、カスタムドメインを作成します。

```
{
   "Domain": "auth.example.com",
   "UserPoolId": "us-east-1_EXAMPLE",
   "ManagedLoginVersion": 2,
   "CustomDomainConfig": {
    "CertificateArn": "arn:aws:acm:us-east-1:111122223333:certificate/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
   }
}
```

------

## ステップ 2: エイリアスターゲットとサブドメインを追加する
<a name="cognito-user-pools-add-custom-domain-console-step-2"></a>

このステップでは、ドメイン名サーバー (DNS) サービスプロバイダーを使用して、前のステップのエイリアスターゲットを指すエイリアスを設定します。DNS アドレスの解決に Amazon Route 53 を使用している場合は、**Route 53 を使用してエイリアスターゲットとサブドメインを追加する**セクションを選択します。

### エイリアスターゲットおよびサブドメインを現在の DNS 設定に追加する
<a name="cognito-user-pools-add-custom-domain-console-step-2a"></a>
+ DNS アドレス解決に Route 53 を使用していない場合は、DNS サービスプロバイダーの設定ツールを使用して、前のステップで設定したエイリアスターゲットをドメインの DNS レコードに追加する必要があります。また、DNS プロバイダーで、カスタムドメインのサブドメインを設定する必要があります。

### Route 53 を使用してエイリアスターゲットとサブドメインを追加する
<a name="cognito-user-pools-add-custom-domain-console-step-2b"></a>

1. [Route 53 コンソール](https://console.aws.amazon.com/route53/)にサインインします。プロンプトが表示されたら、 AWS 認証情報を入力します。

1. Route 53 にパブリックホストゾーンがない場合は、カスタムドメインの親であるルートでパブリックホストゾーンを作成します。詳細については、「*Amazon Route 53 デベロッパーガイド*」の「[Creating a public hosted zone](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/CreatingHostedZone.html)」を参照してください。

   1. **[ホストゾーンの作成]** を選択します。

   1. **ドメイン名**のリストから、カスタムドメイン *myapp.auth.example.com* の親ドメイン *auth.example.com* を入力します。

   1. ホストゾーンの**説明**を入力します。

   1. **パブリックホストゾーン**のホストゾーン **[Type]** (タイプ) を選択して、パブリッククライアントがカスタムドメインを解決できるようにします。**Private hosted zone** (プライベートホストゾーン) はサポートされていません。

   1. 必要に応じて**タグ**を適用します。

   1. [**ホストゾーンの作成**] を選択します。
**注記**  
また、サブドメインのホストゾーンにクエリを送信する親ホストゾーン内の委任セットを持つ、カスタムドメインの新しいホストゾーンを作成することもできます。それ以外の場合は、A レコードを作成します。この方法により、ホストゾーンの柔軟性とセキュリティが向上します。詳細については、「[Amazon Route 53 を通してホストされるドメインのサブドメインの作成](https://aws.amazon.com/premiumsupport/knowledge-center/create-subdomain-route-53/)」をご覧ください。

1. [**ホストゾーン**] ページで、ホストゾーンの名前を選択します。

1. カスタムドメインの親ドメインに DNS レコードがまだない場合は、DNS レコードを追加します。次のプロパティを使用して、親ドメインの DNS レコードを作成します。
   + **レコード名**: 空白のままにします。
   + **レコードタイプ**: `A`。
   + **エイリアス**: 有効にしないでください。
   + **値**: 選択したターゲットを入力します。このレコードは*何らかの値*に解決される必要がありますが、レコードの値は Amazon Cognito にとって重要ではありません。
   + **TTL**: 任意の TTL に設定するか、デフォルトのままにします。
   + **ルーティングポリシー**: **[シンプルルーティング]** を選択します。

1. **[レコードを作成]** を選択します。以下に、ドメイン *example.com* のレコードの例を示します。

   `example.com. 60 IN A 198.51.100.1`
**注記**  
Amazon Cognito は、本番ドメインの予想外の乗っ取りから保護するために、カスタムドメインの親ドメインで使用する DNS レコードがあることを確認します。親ドメインの DNS レコードがない場合、カスタムドメインを設定しようとすると、 Amazon Cognito はエラーを返します。Start of Authority (SOA) レコードは、親ドメインの検証のために十分な DNS レコードではありません。

1. 次のプロパティを使用して、カスタムドメインに別の DNS レコードを追加します。
   + **レコード名**: カスタムドメインプレフィックス。例えば、`auth.example.com` のレコードを作成するための `auth`。
   + **レコードタイプ**: `A`。
   + **エイリアス**: 有効にします。
   + **トラフィックのルーティング先**: **[Cloudfront ディストリビューションへのエイリアス]** を選択します。前に記録した**エイリアスターゲット** (例えば、`123example.cloudfront.net`) を入力します。
   + **ルーティングポリシー**: **[シンプルルーティング]** を選択します。

1. **[レコードを作成]** を選択します。
**注記**  
新しいレコードがすべての Route 53 の DNS サーバーに伝播されるまでに約 60 秒かかる場合があります。Route 53 の [GetChange](https://docs.aws.amazon.com/Route53/latest/APIReference/API_GetChange.html) API メソッドを使用して、変更が反映されていることが確認できます。

## ステップ 3: サインインページを検証する
<a name="cognito-user-pools-add-custom-domain-console-step-3"></a>
+ カスタムドメインでサインインページが表示できることを確認します。

  このアドレスをブラウザに入力して、カスタムドメインとサブドメインでサインインします。以下は、サブドメイン *auth* を使用したカスタムドメイン *example.com* のサンプル URL です。

  ```
  https://myapp.auth.example.com/login?response_type=code&client_id=<your_app_client_id>&redirect_uri=<your_callback_url>
  ```

## カスタムドメインの SSL 証明書を変更する
<a name="cognito-user-pools-add-custom-domain-changing-certificate"></a>

必要な場合は、Amazon Cognito を使用して、カスタムドメインに適用した証明書を変更することができます。

通常、これは ACM での定期的な証明書更新後には不要です。ACM で既存の証明書を更新するときは、証明書の ARN がそのまま維持され、カスタムドメインは自動的に新しい証明書を使用します。

ただし、既存の証明書を新しい証明書に置き換える場合は、ACM が新しい証明書に新しい ARN を提供します。新しい証明書をカスタムドメインに適用するには、この ARN を Amazon Cognito に提供する必要があります。

新しい証明書の提供後、Amazon Cognito では、それがカスタムドメインに配布されるまで最大 1 時間かかります。

**開始する前に**  
Amazon Cognito で証明書を変更する前に、証明書を ACM に追加する必要があります。詳細については、*AWS Certificate Manager ユーザーガイド*の「[使用開始](https://docs.aws.amazon.com/acm/latest/userguide/gs.html)」を参照してください。  
証明書を ACM に追加するときは、 AWS リージョンとして米国東部 (バージニア北部) を選択する必要があります。

証明書は、Amazon Cognito コンソールまたは API を使用して変更できます。

------
#### [ AWS マネジメントコンソール ]

**Amazon Cognito コンソールで証明書を更新する**

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

1. **[User Pools]** (ユーザープール) を選択します。

1. 証明書を更新するユーザープールを選択します。

1. **[ドメイン]** メニューを選択します。

1. **[Actions]** (アクション) 、**[Edit ACM certificate]** (ACM 証明書の編集) を選択します。

1. カスタムドメインに関連付ける新しい証明書を選択します。

1. **[Save changes]** (変更の保存) をクリックします。

------
#### [ API ]

**証明書を更新する (Amazon Cognito API)**
+ [UpdateUserPoolDomain](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPoolDomain.html) アクションを使用します。

------