

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

# Amazon Cognito とは
<a name="what-is-amazon-cognito"></a>

Amazon Cognito はウェブアプリとモバイルアプリ用のアイデンティティプラットフォームです。これは、OAuth 2.0 アクセストークンと AWS 認証情報のための、ユーザーディレクトリであり、認証サーバーであり、認可サービスです。Amazon Cognito を使用すると、組み込みのユーザーディレクトリ、エンタープライズディレクトリ、Google や Facebook などのコンシューマー ID プロバイダーからユーザーを認証および認可できます。

**Topics**
+ [ユーザープール](#what-is-amazon-cognito-user-pools)
+ [アイデンティティプール](#what-is-amazon-cognito-identity-pools)
+ [Amazon Cognito の機能](#what-is-amazon-cognito-features)
+ [Amazon Cognito ユーザープールとアイデンティティプールの比較](#what-is-amazon-cognito-features-comparison)
+ [Amazon Cognito の使用開始方法](#getting-started-overview)
+ [リージョン別の可用性](#getting-started-regional-availability)
+ [Amazon Cognito の料金](#pricing-for-amazon-cognito)
+ [Amazon Cognito の一般的な用語と概念](cognito-terms.md)
+ [の開始方法 AWS](cognito-getting-started-account-iam.md)

その後に続く 2 つのコンポーネントが Amazon Cognito を構成します。これらは、ユーザーのアクセスニーズに応じて、独立して動作することも、連携して動作することもできます。

## ユーザープール
<a name="what-is-amazon-cognito-user-pools"></a>

![ID プロバイダーとアプリケーションインタラクションを使用した Cognito ユーザープールを介したユーザーサインインを示す認証フロー図。](http://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/images/user-pools-overview.png)


アプリまたは API のユーザーを認証および認可する場合は、ユーザープールを作成します。ユーザープールは、セルフサービスと管理者主導の両方によるユーザー作成、管理、認証を行うユーザーディレクトリです。ユーザープールは、独立したディレクトリや OIDC ID プロバイダー (IdP) でも、従業員や顧客のアイデンティティを提供するサードパーティプロバイダーの中間サービスプロバイダー (SP) でもかまいません。ユーザープールの SAML 2.0 および OIDC IdP における組織のワークフォースアイデンティティに対して、アプリでシングルサインオン (SSO) を提供できます。また、パブリック OAuth 2.0 アイデンティティストア (Amazon、Google、Apple、および Facebook) 内の組織のカスタマーアイデンティティに対して、アプリで SSO を提供することもできます。カスタマー ID およびアクセス管理 (CIAM) の詳細については、「[CIAM とは何ですか?](https://aws.amazon.com/what-is/ciam/)」を参照してください。

ユーザープールはアイデンティティプールとの統合を必要としません。ユーザープールから、認証された JSON ウェブトークン (JWT) をアプリ、ウェブサーバー、または API に直接発行できます。

## アイデンティティプール
<a name="what-is-amazon-cognito-identity-pools"></a>

![アプリケーション、ID プール、ユーザープール、STS 間の認証フローを示すシーケンス図。](http://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/images/identity-pools-overview.png)


認証されたユーザーまたは匿名ユーザーに  AWS  リソースへのアクセスを認可する場合は、Amazon Cognito アイデンティティプールを設定します。ID プールは、ユーザーにリソースを提供するためにアプリの AWS 認証情報を発行します。ユーザープールや SAML 2.0 サービスなど、信頼できる ID プロバイダーでユーザーを認証できます。また、オプションでゲストユーザーに認証情報を発行することもできます。ID プールは、ロールベースのアクセスコントロールと属性ベースのアクセスコントロールの両方を使用して、 AWS リソースへのアクセスに対するユーザーの認可を管理します。

アイデンティティプールはユーザープールとの統合を必要としません。アイデンティティプールは、ワークフォースとコンシューマーの両方の ID プロバイダーからの認証済みクレームを直接受け入れることができます。

**Amazon Cognito のユーザープールとアイデンティティプールの併用**

このトピックの最初の図では、Amazon Cognito を使用してユーザーを認証し、ユーザーにアクセス権を付与します。 AWS のサービス

1. アプリユーザーはユーザープールを介してサインインし、OAuth 2.0 トークンを受け取ります。

1. アプリケーションは、 AWS APIs および AWS Command Line Interface () で使用できる一時的な AWS 認証情報として、ユーザープールトークンを ID プールと交換しますAWS CLI。

1. アプリは認証情報セッションをユーザーに割り当て、Amazon S3 や Amazon DynamoDB AWS のサービス などの に承認されたアクセスを提供します。

アイデンティティプールとユーザープールを使用するその他の例については、「[Amazon Cognito の一般的なシナリオ](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-scenarios.html)」を参照してください。

Amazon Cognito では、[責任分担モデル](https://aws.amazon.com/compliance/shared-responsibility-model/)による*クラウド義務のセキュリティ*は、SOC 1～3、PCI DSS、ISO 27001 に準拠し、HIPAA-BAA に対応しています。Amazon Cognito では、SOC1～3、ISO 27001、HIPAA-BAA に準拠し、PCI DSS に準拠し、PCI DSS に準拠し、Amazon Cognito で*クラウド内のセキュリティ*を設計できます。詳細については、[[AWS 対象範囲内のサービス]](https://aws.amazon.com/compliance/services-in-scope/)を参照してください。[リージョンデータに関する考慮事項](https://docs.aws.amazon.com/cognito/latest/developerguide/security-cognito-regional-data-considerations.html)も参照してください。

## Amazon Cognito の機能
<a name="what-is-amazon-cognito-features"></a>

### ユーザープール
<a name="what-is-amazon-cognito-features-user-pools"></a>

Amazon Cognito ユーザープールは、ユーザーディレクトリです。ユーザープールを使用することで、ユーザーはウェブまたはモバイルアプリに Amazon Cognito 経由でサインインする、またはサードパーティー IdP 経由でフェデレートすることができます。フェデレーションとローカルユーザーには、ユーザープールにユーザープロファイルがあります。

ローカルユーザーとは、ユーザーがユーザープールにサインアップした、または直接作成したユーザーです。これらのユーザープロファイルは、、 AWS SDK AWS マネジメントコンソール、または AWS Command Line Interface () で管理およびカスタマイズできますAWS CLI。

Amazon Cognito ユーザープールは、サードパーティー IdPs からのトークンとアサーションを受け取り、ユーザー属性を JWT に収集してアプリに発行します。アプリを 1 つの JWT セットで標準化できます。一方、Amazon Cognito が IdP とのインタラクションを処理し、IdPs のクレームを中央トークン形式にマッピングします。

Amazon Cognito ユーザープールは、スタンドアロンIdP である可能性があります。Amazon Cognito は OpenID Connect (OIDC) 標準に基づいて、認証と認可のための JWT を生成しています。ローカルユーザーをログインさせると、ユーザープールがそれらのユーザーに対して権限を持つことになります。ローカルユーザーを認証すると、次の機能にアクセスできます。
+ Amazon Cognito ユーザープール API を呼び出してユーザーを認証、認可、管理する独自のウェブフロントエンドを実装します。
+ ユーザーに多要素認証 (MFA) を設定します。Amazon Cognito は、タイムベースドワンタイムパスワード (TOTP) と SMS メッセージ MFA をサポートしています。
+ 悪意のある管理下にあるユーザーアカウントからのアクセスから保護します。
+ 独自のカスタムマルチステップ認証フローを作成します。
+ 別のディレクトリでユーザーを検索し、Amazon Cognito に移行します。

Amazon Cognito ユーザープールは、IdP のサービスプロバイダー (SP) とアプリの IdPs という二重の役割を果たすこともできます。Amazon Cognito ユーザープールは、Facebook や Google などのコンシューマー IdPs や、Okta やアクティブディレクトリフェデレーションサービス (ADFS) などのワークフォース IdPs に接続できます。

Amazon Cognito ユーザープールが発行する OAuth 2.0 トークンと OpenID Connect (OIDC) トークンを使用すると、次のことができるようになります。
+ ユーザーを認証し、ユーザープロファイルの設定に必要な情報を提供する ID トークンをアプリ内で受け入れる
+ ユーザーの API 呼び出しを許可する OIDC スコープを使用して、API でアクセストークンを受け入れます。
+ Amazon Cognito ID プールから AWS 認証情報を取得します。


| 
| 
| 機能 | 説明 | 
| --- |--- |
| OIDC identity provider | Issue ID tokens to authenticate users | 
| Authorization server | Issue access tokens to authorize user access to APIs | 
| SAML 2.0 service provider | Transform SAML assertions into ID and access tokens | 
| OIDC relying party | Transform OIDC tokens into ID and access tokens | 
| Social provider relying party | Transform ID tokens from Apple, Facebook, Amazon, or Google to your own ID and access tokens | 
| Authentication frontend service | Sign up, manage, and authenticate users with managed login | 
| API support for your own UI | Create, manage and authenticate users through authentication API requests in supported AWS SDKs¹ | 
| Multi-factor authentication | Use SMS messages, TOTPs, or your user's device as an additional authentication factor¹ | 
| Security monitoring & response | Secure against malicious activity and insecure passwords¹ | 
| Customize authentication flows | Build your own authentication mechanism, or add custom steps to existing flows² | 
| Groups | Create logical groupings of users, and a hierarchy of IAM role claims when you pass tokens to identity pools | 
| Customize tokens | Customize your ID and access tokens with new, modified, and suppressed claims | 
| Customize user attributes | Assign values to user attributes and add your own custom attributes | 

¹ フェデレーションユーザーは、この機能を使用できません。

² フェデレーションユーザーとマネージドログインユーザーは、この機能を使用できません。

ユーザープールの詳細については、「[ユーザープールの開始方法](getting-started-user-pools.md)」と[Amazon Cognito ユーザープール API リファレンス](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/)を参照してください。

### アイデンティティプール
<a name="what-is-amazon-cognito-features-identity-pools"></a>

アイデンティティプールは、ユーザーまたはゲストに割り当てて一時的な  AWS  認証情報を受け取ることを許可する一意の識別子 (ID) の集まりです。SAML 2.0、OpenID Connect (OIDC)、または OAuth 2.0 ソーシャル ID プロバイダー (IdP) からの信頼できるクレームという形でアイデンティティプールに認証証明書を提示すると、ユーザーをアイデンティティプールの ID に関連付けます。ID プールが ID 用に作成するトークンは、 AWS Security Token Service () から一時的なセッション認証情報を取得できますAWS STS。

認証されたアイデンティティを補完するために、IdP 認証なしで  AWS   アクセスを認可するようにアイデンティティプールを設定することもできます。[デベロッパーが認証した ID](developer-authenticated-identities.md) を使用して、カスタム認証証明を提供できます。[認証されていない ID](identity-pools.md#authenticated-and-unauthenticated-identities) を使用して、ゲストユーザーに一時的な AWS 認証情報を付与することもできます。

アイデンティティプールでは、 AWS アカウントにおける IAM ポリシーとの統合方法が 2 つあります。これら 2 つの機能は一緒に使用することも、個別に使用することもできます。

**ロールベースアクセスコントロール**  
ユーザーがアイデンティティプールにクレームを渡すと、Amazon Cognito はリクエストする IAM ロールを選択します。ロールの権限をニーズに合わせてカスタマイズするには、各ロールに IAM ポリシーを適用します。たとえば、ユーザーがマーケティング部門に所属していることを証明すると、マーケティング部門のアクセスニーズに合わせたポリシーが設定されたロールの認証情報を受け取ります。Amazon Cognito では、デフォルトロール、ユーザーのクレームをクエリするルールに基づくロール、またはユーザープール内のユーザーのグループメンバーシップに基づくロールをリクエストできます。IAM がユーザーのアイデンティティプールのみを信頼して一時的なセッションを生成するようにロールの信頼ポリシーを設定することもできます。

**アクセスコントロールの属性**  
アイデンティティプールはユーザーのクレームから属性を読み取り、ユーザーの一時セッションのプリンシパルタグにマッピングします。次に、アイデンティティプールからセッションタグを伝達する IAM プリンシパルに基づいてリソースへのアクセスを許可または拒否するように IAM リソースベースのポリシーを設定できます。たとえば、ユーザーがマーケティング部門にいることを実証した場合、 はセッション に AWS STS タグを付けます`Department: marketing`。Amazon S3 バケットでは、`Department` タグの `marketing` の値が必要な [aws: PrincipalTag](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principaltag) 条件に基づく読み取りオペレーションが許可されます。


| 
| 
| 機能 | 説明 | 
| --- |--- |
| Amazon Cognito user pool relying party | Exchange an ID token from your user pool for web identity credentials from AWS STS | 
| SAML 2.0 service provider | Exchange SAML assertions for web identity credentials from AWS STS | 
| OIDC relying party | Exchange OIDC tokens for web identity credentials from AWS STS | 
| Social provider relying party | Exchange OAuth tokens from Amazon, Facebook, Google, Apple, and Twitter for web identity credentials from AWS STS | 
| Custom relying party | With AWS credentials, exchange claims in any format for web identity credentials from AWS STS | 
| Unauthenticated access | Issue limited-access web identity credentials from AWS STS without authentication | 
| Role-based access control | Choose an IAM role for your authenticated user based on their claims, and configure your roles to only be assumed in the context of your identity pool | 
| Attribute-based access control | Convert claims into principal tags for your AWS STS temporary session, and use IAM policies to filter resource access based on principal tags | 

アイデンティティプールの詳細については、「[Amazon Cognito アイデンティティプールの開始方法](getting-started-with-identity-pools.md)」と「[Amazon Cognito ID プール API リファレンス](https://docs.aws.amazon.com/cognitoidentity/latest/APIReference/)」を参照してください。



## Amazon Cognito ユーザープールとアイデンティティプールの比較
<a name="what-is-amazon-cognito-features-comparison"></a>


| 
| 
| 機能 | 説明 | ユーザープール | アイデンティティプール | 
| --- |--- |--- |--- |
| OIDC identity provider | Issue OIDC ID tokens to authenticate app users | ✓ |  | 
| User directory | Store user profiles for authentication | ✓ |  | 
| Authorize API access | Issue access tokens to authorize user access to APIs (including user profile self-service API operations), databases, and other resources that accept OAuth scopes | ✓ |  | 
| IAM web identity authorization | Generate tokens that you can exchange with AWS STS for temporary AWS credentials |  | ✓ | 
| SAML 2.0 service provider & OIDC identity provider | Issue customized OIDC tokens based on claims from a SAML 2.0 identity provider | ✓ |  | 
| OIDC relying party & OIDC identity provider | Issue customized OIDC tokens based on claims from an OIDC identity provider | ✓ |  | 
| OAuth 2.0 relying party & OIDC identity provider | Issue customized OIDC tokens based on scopes from OAuth 2.0 social providers like Apple and Google | ✓ |  | 
| SAML 2.0 service provider & credentials broker | Issue temporary AWS credentials based on claims from a SAML 2.0 identity provider |  | ✓ | 
| OIDC relying party & credentials broker | Issue temporary AWS credentials based on claims from an OIDC identity provider |  | ✓ | 
| Social provider relying party & credentials broker | Issue temporary AWS credentials based on JSON web tokens from developer applications with social providers like Apple and Google |  | ✓ | 
| Amazon Cognito user pool relying party & credentials broker | Issue temporary AWS credentials based on JSON web tokens from Amazon Cognito user pools |  | ✓ | 
| Custom relying party & credentials broker | Issue temporary AWS credentials to arbitrary identities, authorized by developer IAM credentials |  | ✓ | 
| Authentication frontend service | Sign up, manage, and authenticate users with managed login | ✓ |  | 
| API support for your own authentication UI | Create, manage and authenticate users through API requests in supported AWS SDKs¹ | ✓ |  | 
| MFA | Use SMS messages, TOTPs, or your user's device as an additional authentication factor¹ | ✓ |  | 
| Security monitoring & response | Protect against malicious activity and insecure passwords¹ | ✓ |  | 
| Customize authentication flows | Build your own authentication mechanism, or add custom steps to existing flows¹ | ✓ |  | 
| User groups | Create logical groupings of users, and a hierarchy of IAM role claims when you pass tokens to identity pools | ✓ |  | 
| Customize tokens | Customize your ID and access tokens with new, modified, and suppressed claims and scopes | ✓ |  | 
| AWS WAF web ACLs | Monitor and control requests to your authentication front end with AWS WAF | ✓ |  | 
| Customize user attributes | Assign values to user attributes and add your own custom attributes | ✓ |  | 
| Unauthenticated access | Issue limited-access web identity credentials from AWS STS without authentication |  | ✓ | 
| Role-based access control | Choose an IAM role for your authenticated user based on their claims, and configure your role trust to limit access to web identity users |  | ✓ | 
| Attribute-based access control | Transform user claims into principal tags for your AWS STS temporary session, and use IAM policies to filter resource access based on principal tags |  | ✓ | 

¹ フェデレーションユーザーは、この機能を使用できません。

## Amazon Cognito の使用開始方法
<a name="getting-started-overview"></a>

ユーザープールアプリケーションの例については、「[ユーザープールの開始方法](getting-started-user-pools.md)」を参照してください。

アイデンティティプールの概要については、「[Amazon Cognito アイデンティティプールの開始方法](getting-started-with-identity-pools.md)」を参照してください。

ユーザープールとアイデンティティプールのガイド付きセットアップエクスペリエンスへのリンクについては、「[Amazon Cognito のガイド付きセットアップオプション](cognito-guided-setup.md)」を参照してください。

 AWS SDK の使用を開始するには、[AWS 「 デベロッパーツール](https://aws.amazon.com/products/developer-tools)」を参照してください。Amazon Cognito 専用のデベロッパーリソースについては、「[Amazon Cognito のリソース](https://aws.amazon.com/cognito/dev-resources/)」を参照してください。

Amazon Cognito を使用するには、 AWS アカウントが必要です。詳細については、「[の開始方法 AWS](cognito-getting-started-account-iam.md)」を参照してください。

## リージョン別の可用性
<a name="getting-started-regional-availability"></a>

Amazon Cognito は、世界中の複数の AWS リージョンで利用できます。各リージョンで、Amazon Cognito は複数のアベイラビリティーゾーンに分散されています。これらのアベイラビリティーゾーンは物理的に相互に分離されていますが、低レイテンシーで高スループットの冗長性に優れたプライベートネットワーク接続で統合されています。これらのアベイラビリティーゾーンにより、 AWS はレイテンシーを最小限に抑えながら、Amazon Cognito などのサービスを非常に高いレベルの可用性と冗長性で提供できます。

Amazon Cognito が現在 で利用可能かどうかを確認するには AWS リージョン、[AWS 「リージョン別のサービス](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/)」を参照してください。

リージョン API サービスエンドポイントの詳細については、「*Amazon Web Services 全般のリファレンス*」の「[AWS regions and endpoints](https://docs.aws.amazon.com/general/latest/gr/rande.html##cognito_identity_region)」を参照してください。

各リージョンで利用できるアベイラビリティーゾーンの数の詳細については、「[AWS グローバルインフラストラクチャ](https://aws.amazon.com/about-aws/global-infrastructure/)」を参照してください。

## Amazon Cognito の料金
<a name="pricing-for-amazon-cognito"></a>

Amazon Cognitoの料金については、「[Amazon Cognito の料金](https://aws.amazon.com/cognito/pricing/)」を参照してください。