AWS/S3 - 创建一个用户(通过控制台)来授予 1 个存储桶的读/写存储桶权限?

AWS/S3 - 创建一个用户(通过控制台)来授予 1 个存储桶的读/写存储桶权限?

我有一个 Amazon Web Services S3 存储桶,我想将其与 Android 数据同步应用程序一起使用'文件夹同步“”。

为此,我想为新用户设置存储桶的有限权限。

在 AWS 管理控制台中,我可以创建用户,但我能找到分配给该用户的唯一 S3 相关权限是:

  • AmazonS3FullAccess(“通过 AWS 管理控制台提供对所有存储桶的完全访问权限。”)
  • AmazonS3ReadOnlyAccess(“通过 AWS 管理控制台提供对所有存储桶的只读访问权限。”)

这两个都不是我想要的(我不希望该用户通过控制台访问,也不希望“所有存储桶”都有此访问权限)。

如果我没有为该用户设置任何权限,我会收到一条警告消息,但除此之外,我能够完成用户创建,但是当我转到存储桶为该用户分配权限时,新用户不会出现在下拉列表中(如下所示)。

在此处输入图片描述

一定有办法做到这一点 - 有人可以帮忙吗?

答案1

被授权者可以是 AWS 账户或预定义的 Amazon S3 组之一。对于您的情况,建议结合 S3 策略和 IAM 策略来加强您的资产安全。因此,授予用户对特定 s3 存储桶的访问权限应按如下方式进行:

1-转到 S3 服务,选择您的存储桶并编辑权限:创建如下自定义策略:

{
"Version": "2012-10-17",
"Id": "S3-Account-Permissions",
"Statement": [{
  "Sid": "1",
  "Effect": "Allow",
  "Principal": {"AWS": [{"AWS":"arn:aws:iam::account-number-without-hyphens:user/username"]},
  "Action": "s3:*",
  "Resource": [
    "arn:aws:s3:::mybucket",
    "arn:aws:s3:::mybucket/*"
  ]
}]
}

2- 导航到 IAM 服务并创建自定义策略。策略应如下所示:

{
"Version": "2012-10-17",
"Statement": [
{
  "Effect": "Allow",
  "Action": [
    "s3:*"
  ],
  "Resource": "arn:aws:s3:::mybucket/",
  "Resource": "arn:aws:s3:::mybucket/*"
}
]
}

3- 将新创建的策略附加到您的用户

答案2

另一条评论中提供的策略不允许列出存储桶,也不允许在 S3 控制台上列出存储桶,也不允许任何其他可以显示存储桶中文件的应用程序。这是一项 IAM 策略,允许用户仅访问一个指定的存储桶,并限制其他所有内容。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "s3:ListAllMyBuckets",
            "Resource": "arn:aws:s3:::*"
        },
        {
            "Effect": "Allow",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::bucket",
                "arn:aws:s3:::bucket/*",
            ]
        },
        {
            "Effect": "Deny",
            "NotAction": "s3:*",
            "NotResource": [
                "arn:aws:s3:::bucket",
                "arn:aws:s3:::bucket/*"
            ]
        }
}

相关内容