属性ベースのアクセスコントロールの一種としてのアクセスコントロールへの属性の使用 - Amazon Cognito

属性ベースのアクセスコントロールの一種としてのアクセスコントロールへの属性の使用

ユーザー属性に基づく Amazon Cognito の ID プール経由で AWS リソースへのアクセスを制御するには、IAM ポリシーを使用することができます。これらの属性は、ソーシャル ID プロバイダーおよび企業 ID プロバイダーから収集できます。プロバイダーのアクセストークンと ID トークン、または SAML アサーション内の属性を、IAM 許可ポリシーで参照できるタグにマップできます。

Amazon Cognito ID プールでは、デフォルトのマッピングを選択する、または独自のカスタムマッピングを作成することが可能です。デフォルトのマッピングでは、ユーザー属性の固定セットに基づいた IAM ポリシーを記述できます。カスタムマッピングでは、IAM 許可ポリシーで参照されるユーザー属性のカスタムセットを選択できます。Amazon Cognito コンソールの [Attribute names] (属性名) は、IAM 許可ポリシーで参照される [Tag key for principal] (プリンシパルのタグキー) にマップされます。

例えば、無料と有料のメンバーシップがあるメディアストリーミングサービスを所有しているとしましょう。メディアファイルを Amazon S3 に保存し、無料タグまたはプレミアムタグでそれらをタグ付けします。アクセスコントロールの属性を使用して、ユーザーのプロファイルの一部であるユーザーメンバーシップレベルに基づいて、無料コンテンツと有料コンテンツへのアクセスを許可できます。メンバーシップ属性は、IAM 許可ポリシーに渡されるプリンシパルのタグキーにマップできます。そうすることで、単一の許可ポリシーを作成し、メンバーシップレベルの値とコンテンツファイルのタグに基づいて、プレミアムコンテンツへのアクセスを条件的に許可することができます。

属性を使用したアクセスの制御には、いくつかのメリットがあります。

  • アクセスコントロールに属性を使用すると、許可の管理が容易になる。異なるジョブ機能のために複数のポリシーを作成するのではなく、ユーザー属性を使用する基本的な許可ポリシーを作成できます。

  • アプリケーションのリソースやユーザーを追加または削除するたびにポリシーを更新する必要がなくなる。許可ポリシーは、一致するユーザー属性を持つユーザーのみにアクセス権を付与します。例えば、ユーザーの役職に基づいて、特定の S3 バケットへのアクセスを制御する必要がある場合があります。この場合、定義された役職のユーザーのみにこれらのファイルへのアクセスを許可する許可ポリシーを作成できます。詳細については、「IAM チュートリアル: ABAC で SAML セッションタグを使用する」を参照してください。

  • 属性の値に基づいて許可を許可または拒否するポリシーに、プリンシパルタグとしてこれらの属性を渡すことができる。