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

将访问控制的属性用作一种基于属性的访问控制

您可以通过基于用户属性的 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

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