将属性用于访问控制 - Amazon Cognito
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

将属性用于访问控制

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

您可以选择默认映射或在 Amazon Cognito 身份池中创建自己的自定义映射。默认映射让您可以根据一组固定的用户属性编写 IAM 策略。自定义映射允许您选择 IAM 权限策略中引用的一组自定义用户属性。Amazon Cognito 控制台中的 Attribute names (属性名称) 已映射到 Tag key for principal (委托人的标签密钥),这些是 IAM 权限策略中引用的标签。

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

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

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

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

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