

# Amazon S3：允许 Amazon Cognito 用户访问其存储桶中的对象
<a name="reference_policies_examples_s3_cognito-bucket"></a>

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

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

------
#### [ JSON ]

****  

```
{
  "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 的更多信息，请参阅 [Amazon Cognito 用户指南](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html)。