Amazon S3:允许 Amazon Cognito 用户访问其存储桶中的对象 - AWS Identity and Access Management

Amazon S3:允许 Amazon Cognito 用户访问其存储桶中的对象

此示例说明了如何创建基于身份的策略以允许 Amazon Cognito 用户访问特定 S3 存储桶中的对象。该策略仅允许访问名称包含 cognito、应用程序名称以及联合身份用户 ID 的对象,由 ${cognito-identity.amazonaws.com:sub} 变量表示。此策略授予有计划地通过 AWS API 或 AWS CLI 完成此操作的必要权限。要使用此策略,请将示例策略中的斜体占位符文本替换为您自己的信息。然后,按照创建策略编辑策略中的说明操作。

注意

对象键中使用的“sub”值不是用户池中的 sub 值,而是与身份池中的用户关联的身份 ID。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ListYourObjects", "Effect": "Allow", "Action": "s3:ListBucket", "Resource": [ "arn:aws:s3:::bucket-name" ], "Condition": { "StringLike": { "s3:prefix": [ "cognito/application-name/${cognito-identity.amazonaws.com:sub}/*" ] } } }, { "Sid": "ReadWriteDeleteYourObjects", "Effect": "Allow", "Action": [ "s3:DeleteObject", "s3:GetObject", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::bucket-name/cognito/application-name/${cognito-identity.amazonaws.com:sub}/*" ] } ] }

Amazon Cognito 为您的 Web 和移动应用程序提供身份验证、授权和用户管理。您的用户可使用用户名和密码直接登录,也可以通过第三方 (如 Facebook、Amazon 或 Google) 登录。

Amazon Cognito 的两个主要组件是用户池和身份池。用户池是为您的应用程序提供注册和登录选项的用户目录。使用身份池,您可以授予用户访问其他 AWS 服务的权限。您可以单独或配合使用身份池和用户池。

有关 Amazon Cognito 身份池的更多信息,请参阅以下内容: