Men*_* Ge 0 amazon-s3 amazon-web-services
我想创建一个 S3 存储桶策略,该策略可以阻止公共访问,但只允许通过 Cognito 注册我的应用程序的人能够通过应用程序上传对象。
我当前的存储桶政策:
{
"Version": "2012-10-17",
"Id": "Policy1593320409523",
"Statement": [
{
"Sid": "Stmt1593320397284",
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::358110801253:role/Cognito_katebUnauth_Role",
"arn:aws:iam::358110801253:role/service-role/transcribe-role-k5easa7b",
"arn:aws:iam::358110801253:role/Cognito_katebAuth_Role"
]
},
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::va-raw-audio-to-transcribe/*",
"arn:aws:s3:::va-raw-audio-to-transcribe"
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
默认情况下, Amazon S3 存储桶是私有的。因此,没有必要“限制”访问。相反,请选择适当的方式来“授予”所需用户的访问权限。
当用户通过 AWS Cognito 进行身份验证时,系统会提供链接到IAM 角色 的凭证。所以:
您在问题中列出了 3 个角色。因此,为这 3 个 IAM 角色中的每一个添加适当的权限,以便他们可以访问所需的存储桶。
另外,请非常小心您授予的权限。您的问题中的策略是 grant s3:*,这意味着用户可以删除所有对象,甚至可以删除存储桶本身!始终授予最小权限,以便他们拥有足够的访问权限,但不要超过所需的权限。
例如,如果您只想允许他们上传,则他们只需要s3:PutObject许可即可。
| 归档时间: |
|
| 查看次数: |
3661 次 |
| 最近记录: |