将属性用于访问控制 - Amazon Cognito

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

将属性用于访问控制

访问控制的属性是 Amazon Cognito 身份池实现的基于属性的访问控制 ()。ABAC您可以使用IAM策略根据用户属性控制通过 Amazon Cognito 身份池访问 AWS 资源。可以从社交和企业身份提供商那里获得这些属性。您可以将提供商的访问权限和 ID 令牌或SAML断言中的属性映射到可在IAM权限策略中引用的标签。

您可以选择默认映射或在 Amazon Cognito 身份池中创建自己的自定义映射。默认映射允许您根据一组固定的用户属性编写IAM策略。自定义映射允许您选择IAM权限策略中引用的一组自定义用户属性。Amazon Cognito 控制台中的属性名称映射到主体的标签密钥,即IAM权限策略中引用的标签。

例如,假设您拥有一个具有免费和付费会员资格的媒体流式传输服务。您可以将媒体文件存储在 Amazon S3 中,并使用免费或高级标签对其贴标签。您可以将属性用于访问控制,以允许访问基于用户会员级别(这是用户配置文件的一部分)的免费和付费内容。您可以将成员资格属性映射到标签密钥,以便委托人传递给IAM权限策略。通过这种方式,您可以创建单个权限策略,并根据会员级别的值和内容文件上的标签有条件地允许对高级内容的访问。

使用属性来控制访问有若干优势:

  • 使用属性进行访问控制时,权限管理会更高效。您可以创建使用用户属性的基本权限策略,而不必为不同的任务功能创建多个策略。

  • 不管您何时为应用程序添加或删除资源或用户,都无需更新策略。权限策略只向具有匹配用户属性的用户授予访问权限。例如,您可能需要根据用户的任务标题控制对某些 S3 存储桶的访问权限。在这种情况下,您可以创建权限策略,以便仅允许定义的任务标题中的用户访问这些文件。有关更多信息,请参阅IAM教程:使用SAML会话标签ABAC

  • 属性可以作为委托人标签传递给策略,该策略基于这些属性的值允许或拒绝权限。