マルチテナントアプリケーションのベストプラクティス - Amazon Cognito

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

マルチテナントアプリケーションのベストプラクティス

Amazon Cognito ユーザープールは、Amazon Cognito クォータ内にとどまる必要がある大量のリクエストを生成するマルチテナントアプリケーションで動作します。顧客ベースが拡大したときにこの容量をスケールアップするには、追加のクォータ容量 を購入できます。

注記

Amazon Cognito クォータは、 AWS アカウント および ごとに適用されます AWS リージョン。これらのクォータは、アプリケーション内のすべてのテナント間で共有されます。Amazon Cognito サービスクォータを確認し、クォータがアプリケーション内の予想されるボリュームと予想されるテナント数を満たしていることを確認します。

このセクションでは、同じリージョンと 内の Amazon Cognito リソース間でテナントを分離するために実装できる方法を説明します AWS アカウント。また、テナントを複数の AWS アカウント または リージョンに分割し、それぞれに独自のクォータを付与することもできます。マルチリージョンマルチテナンシーのその他の利点には、可能な限り高い分離レベル、グローバルに分散されたユーザーの最短ネットワーク転送時間、組織内の既存のディストリビューションモデルの遵守などがあります。

単一リージョンのマルチテナンシーは、顧客や管理者にとっても利点があります。

次のリストは、共有リソースを使用したマルチテナンシーの利点の一部を示しています。

マルチテナンシーの利点
共通ユーザーディレクトリ

マルチテナンシーは、顧客が複数のアプリケーションにアカウントを持つモデルをサポートします。サードパーティープロバイダーの ID を 1 つの一貫したユーザープールプロファイルにリンクできます。ユーザープロファイルがテナントに固有である場合、単一のユーザープールを持つマルチテナンシー戦略には、ユーザー管理へのエントリポイントが 1 つあります。

一般的なセキュリティ

共有ユーザープールでは、単一のセキュリティ標準を作成し、同じ高度なセキュリティ、多要素認証 (MFA)、およびAWS WAF標準をすべてのテナントに適用できます。 AWS WAF ウェブは関連付けるリソース AWS リージョン と同じ にあるACL必要があるため、マルチテナンシーは複雑なリソースへの共有アクセスを提供します。マルチリージョン Amazon Cognito アプリケーションで一貫したセキュリティ設定を維持する場合は、リソース間で設定を複製する運用標準を適用する必要があります。

一般的なカスタマイズ

ユーザープールと ID プールは、 でカスタマイズできます AWS Lambda。ユーザープールでの Lambda トリガーの設定と、アイデンティティプールでの Amazon Cognito イベントの設定は複雑になる可能性があります。Lambda 関数は、ユーザープールまたは ID プール AWS リージョン と同じ にある必要があります。共有 Lambda 関数は、カスタム認証フロー、ユーザー移行、トークン生成、およびリージョン内の他の関数の標準を適用できます。

共通メッセージング

Amazon Simple Notification Service (Amazon SNS) では、ユーザーにSMSメッセージを送信する前に、リージョンで追加の設定が必要です。リージョン内に含まれる Amazon Simple Email Service (Amazon SES) 検証済み ID とドメインを使用して E メールメッセージを送信できます。

マルチテナンシーを使用すると、この設定とメンテナンスのオーバーヘッドをすべてのテナント間で共有できます。Amazon SNSと Amazon SESはすべての で利用できるわけではないため AWS リージョン、リソースをリージョン間で分割するには追加の考慮事項が必要です。

カスタムメッセージングプロバイダー を使用すると、メッセージ配信を管理するための単一の Lambda 関数の一般的なカスタマイズが得られます。

ホストされた UI は、既に認証されたユーザーを認識するように、ブラウザにセッション Cookie を設定します。ユーザープール内のローカルユーザーを認証すると、セッション Cookie は同じユーザープール内のすべてのアプリケーションクライアントに対して認証します。ローカルユーザーは、外部 IdP を介したフェデレーションなしに、ユーザープールディレクトリにのみ存在します。セッション Cookieは 1 時間有効です。セッション Cookie の有効期間を変更することはできません。

ホストされた UI セッション Cookie を使用してアプリケーションクライアント間でサインインを防ぐには、2 つの方法があります。

  • ユーザーをテナントごとのユーザープールに分割します。

  • ホストされた UI サインインを Amazon Cognito ユーザープールのAPIサインインに置き換えます。