マルチテナント SaaS 認証と API アクセスコントロール - AWS 規範ガイダンス

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

マルチテナント SaaS 認証と API アクセスコントロール

Tabbyward、Thomas Davis、Gideon Landeman、To Mad Riha、Amazon Web Services (AWS)

2024 年 1 月 (ドキュメント履歴

マルチテナント Software as a Service (SaaS) アプリケーションの承認と API アクセスコントロールは複雑なトピックです。この複雑さは、保護する必要があるマイクロサービス APIs の脆弱性と、さまざまなテナント、ユーザー特性、およびアプリケーションの状態から発生する多数のアクセス条件を考慮すると明らかです。これらの問題を効果的に対処するには、ソリューションは、マイクロサービス、バックエンドフロントエンド (BFF) レイヤー、およびマルチテナント SaaS アプリケーションの他のコンポーネントによって提示される多くの APIs にアクセスコントロールを適用する必要があります。この広範なアプローチは、多くの要因や属性に基づいて複雑なアクセス決定を行う柔軟な強制パラダイムと組み合わせている必要があります。

従来、API アクセスコントロールと承認はアプリケーションコード内のカスタムロジックによって処理されていました。このアプローチはエラーが発生しやすく、安全ではありません。このコードにアクセスできるデベロッパーが誤って、または意図的に認証ロジックを変更し、不正アクセスにつながる可能性があるためです。さらに、API アクセスコントロールは、保護 APIs する API が多数存在しなかったため、一般的に不要でした。マイクロサービスやサービス指向アーキテクチャを優先するアプリケーション設計のパラダイムシフトにより、認証とアクセスコントロールの形式を使用する必要がある APIs の数が増加しました。さらに、マルチテナント SaaS アプリケーションでテナントベースのアクセスを維持する必要性は非常に複雑になり、サイロ化モデルや非効率モデルがこのテナンシーを維持するためによく使用されます。

このガイドで概説されているベストプラクティスには、いくつかの利点があります。

  • 認証ロジックは、どのプログラミング言語に固有ではない大まかな宣言言語で一元管理および記述できます。

  • 認証ロジックはアプリケーションコードから抽象化され、アプリケーション内のすべての APIs にべき等に適用できます。

  • 抽象化により、認証ロジックの偶発的な変更を防ぎ、SaaS アプリケーションへの統合を一貫性のあるシンプルなものにします。

  • 抽象化により、各 API エンドポイントのカスタム認証ロジックを記述する必要がなくなります。

  • このガイドで概説されているアプローチは、組織の要件に応じて複数のアクセスコントロールパラダイムの使用をサポートします。

  • この認可とアクセスコントロールのアプローチは、SaaS アプリケーションの API レイヤーでテナントデータの分離をシンプルかつ簡単に維持する方法を提供します。

ターゲットを絞ったビジネス成果

この規範的なガイダンスでは、マルチテナント SaaS アプリケーションに実装できる認証と API アクセスコントロールのべき等な設計パターンについて説明します。このガイダンスは、複雑な認証要件や厳格な API アクセスコントロールのニーズを持つアプリケーションを開発するすべてのチームを対象としています。このアーキテクチャでは、Open Policy Agent (OPA) を使用したポリシー決定ポイント (PDP) またはポリシーエンジンの作成と、APIs。このガイドでは、属性ベースのアクセスコントロール (ABAC) モデルまたはロールベースのアクセスコントロール (RBAC) モデル、あるいは両方のモデルの組み合わせに基づいてアクセスを決定する方法についても説明します。

注記

このガイドでは主に OPA に焦点を当てていますが、 AWS には、OPA と同じ機能と利点の多くを共有する Amazon Verified Permissions という新しいサービスが用意されています。詳細については、Amazon Verified Permissions のドキュメントを参照することをお勧めします。このガイドで説明されている概念、手法、ベストプラクティスの多くは、Amazon Verified Permissions に関連しています。

このガイドに記載されている設計パターンと概念を使用して、マルチテナント SaaS アプリケーションでの認可と API アクセスコントロールの実装を通知および標準化することをお勧めします。このガイダンスは、以下のビジネス成果を達成するのに役立ちます。

  • マルチテナント SaaS アプリケーションの標準化 API 認証アーキテクチャ — このアーキテクチャは PDPsPEPsポリシーエンジン、OPA を通じて実現されます。これらの概念とテクノロジーは、マルチテナント SaaS アプリケーションでテナントの分離を維持し、アプリケーションの API 認証に対する包括的なアプローチを提供するのに役立ちます。

  • アプリケーションからの承認ロジックの分離 – 承認ロジックをアプリケーションコードに埋め込んだり、アドホック強制メカニズムを使用して実装したりすると、意図しないクロステナントデータアクセスやその他のセキュリティ違反を引き起こす偶発的または悪意のある変更が発生する可能性があります。これらの可能性を軽減するには、OPA などのポリシーエンジンを使用して、認可の決定をアプリケーションコードから分離し、アプリケーション全体で一貫したポリシーを適用できます。ポリシーは大まかな宣言言語で一元管理できるため、アプリケーションコードの複数のセクションにポリシーを埋め込む場合よりも、認証ロジックの維持がはるかにシンプルになります。このアプローチにより、更新が一貫して適用されることも保証されます。

  • アクセスコントロールモデルへの柔軟なアプローチ — ロールベースのアクセスコントロール (RBAC)、属性ベースのアクセスコントロール (ABAC)、または両方のモデルの組み合わせは、アクセス制御に対する有効なアプローチです。これらのモデルは、さまざまなアプローチを使用して、ビジネスの認証要件を満たそうとしています。このガイドでは、これらのモデルを比較して比較し、組織に適したモデルを選択するのに役立ちます。このガイドでは、これらのモデルがポリシーエンジン、特に OPA にどのように適用されるかについて詳しく説明します。このガイドで説明するアーキテクチャにより、モデルのいずれかまたは両方を正常に採用できます。

  • 厳格な API アクセスコントロール — このガイドでは、最小限の労力でアプリケーション内で APIs を一貫して広範囲に保護する方法を提供します。これは、アプリケーション内通信を容易にするために一般的に多数の APIs を使用するサービス指向またはマイクロサービスアプリケーションアーキテクチャにとって特に重要です。厳格な API アクセスコントロールは、アプリケーションのセキュリティを強化し、攻撃や悪用に対して脆弱さを軽減します。