Amazon Verified Permissions を使用した PDP の実装 - AWS 規範ガイダンス

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

Amazon Verified Permissions を使用した PDP の実装

Amazon Verified Permissions は、ポリシー決定ポイント (PDP) を実装するために使用できる、スケーラブルできめ細かなアクセス許可の管理および承認サービスです。ポリシーエンジンは、アプリケーションがユーザーアクションをリアルタイムで検証し、過度に特権があるか無効であるアクセス許可を強調表示するのに役立ちます。認証を外部化し、ポリシーの管理と管理を一元化することで、デベロッパーがより安全なアプリケーションをより迅速に構築するのに役立ちます。Verified Permissions は、承認ロジックをアプリケーションロジックから分離することで、ポリシーのデカップリングをサポートします。

Verified Permissions を使用して PDP を実装し、アプリケーション内で最小特権と継続的な検証を実装することで、開発者はアプリケーションへのアクセスをゼロトラストの原則に合わせることができます。さらに、セキュリティチームと監査チームは、アプリケーション内のどのリソースにアクセスできるかをより適切に分析し、監査できます。Verified Permissions は、専用でセキュリティファーストのオープンソースのポリシー言語である Cedar を使用して、よりきめ細かなコンテキスト対応のアクセス制御のために、ロールベースのアクセス制御 (RBAC) と属性ベースのアクセス制御 (ABAC) に基づくポリシーベースのアクセス制御を定義します。

Verified Permissions は、Amazon Cognito、SaaS アプリケーションに役立つ機能をいくつか提供します。SaaS アプリケーションに特に役立つもう 1 つの Verified Permissions 機能は、テナントごとのカスタムロールのサポートです。カスタマーリレーションシップ管理 (CRM) システムを設計する場合、1 つのテナントが、特定の基準に基づいて販売機会ごとにアクセスの粒度を定義することがあります。別のテナントには別の定義がある場合があります。Verified Permissions の基盤となるアクセス許可システムは、これらのバリエーションをサポートできるため、SaaS ユースケースの最適な候補となります。Verified Permissions は、すべてのテナントに適用されるポリシーを記述する機能もサポートしているため、SaaS プロバイダーとしての不正アクセスを防ぐためにガードレールポリシーを簡単に適用できます。

Amazon Verified Permissions を使用した PDP の実装

Verified Permissions を使用する理由

Amazon Cognito などの ID プロバイダーで Verified Permissions を使用すると、アプリケーション用のより動的なポリシーベースのアクセス管理ソリューションを実現できます。データのセキュリティ、機密性、プライバシーを維持しながら、ユーザーが情報を共有し、共同作業するのに役立つアプリケーションを構築できます。Verified Permissions は、アイデンティティとリソースのロールと属性に基づいてアクセスを強制するきめ細かな認証システムを提供することで、運用コストを削減します。ポリシーモデルを定義し、ポリシーを作成して一元的に保存し、アクセスリクエストをミリ秒単位で評価できます。

Verified Permissions では、人間が読めるシンプルな宣言言語 Cedar を使用してアクセス許可を表現できます。Cedar で記述されたポリシーは、各チームのアプリケーションで使用されるプログラミング言語に関係なく、チーム間で共有できます。

Verified Permissions を使用する際の考慮事項

Verified Permissions では、ポリシーを作成し、プロビジョニングの一部として自動化できます。アプリケーションロジックの一部として、実行時にポリシーを作成することもできます。ベストプラクティスとして、テナントのオンボーディングとプロビジョニングの一部としてポリシーを作成するときは、継続的インテグレーションと継続的デプロイ (CI/CD) パイプラインを使用してポリシーバージョンを管理、変更、追跡する必要があります。または、アプリケーションはポリシーバージョンを管理、変更、追跡できますが、アプリケーションロジックは本質的にこの機能を実行しません。アプリケーションでこれらの機能をサポートするには、この機能を実装するようにアプリケーションを明示的に設計する必要があります。

他のソースから外部データを提供して承認の決定に到達する必要がある場合は、このデータを取得して、承認リクエストの一部として Verified Permissions に提供する必要があります。このサービスでは、追加のコンテキスト、エンティティ、属性はデフォルトでは取得されません。