1

我有几个关于 IAM 用户和授予对 S3 的访问权限的问题。

注意:我正在使用 S3.php 与此用户一起编写文件。

  1. 用户可以设置密码吗?

  2. 创建用户(已完成)后,我应该使用组或用户策略来授予访问权限吗?

  3. 我只希望该用户能够写入对象(具有提供全局公共读取的存储桶策略)。我怎么能授予这个权利?(用户策略)以及是否需要其他权限才能将文件放入存储桶中?

谢谢

4

1 回答 1

3

逐点:

  1. 用户可以设置密码吗? ” 用户可以设置密码,但对于 API 访问,我不相信可以直接使用密码。设置密码不会阻止API 访问。
  2. 我应该使用组或用户策略来授予访问权限吗? ” 用户与组策略之间的区别只是组织问题。如果您的多个用户“出于相同原因”需要访问权限,那么创建组策略是有意义的。如果每个用户都有一组特定的需求,并且出于不重叠的原因,那么单独的用户策略更有意义。这基本上是未来管理的问题:如果未来政策要求发生变化,您是否更有可能需要对多个用户进行相同的更改,或者进行各种单独的更改?
  3. 我只希望这个用户能够编写对象”策略生成器可以帮助解决这个问题,但您需要知道的关键事项是:
    • 您要查找的操作类型是“s3:PutObject”。根据“写入”的实际含义,您可能还需要一些其他权限:“s3:DeleteObject”和“s3:ListBucket”是常见的额外权限。
    • "arn" 将是:""arn:aws:s3:::bucketNameGoesHere/*",或者用更具体的东西替换星号以将 "puts" 限制为给定前缀"

下面,我包含了一个基本策略,它可能会做你想做的事。我希望它需要一些调整才能完全符合您的需要:

{
  "Statement": [
    {
      "Sid": "AnyUniqueIdentifierForThePolicyStatementGoesHere",
      "Action": [
        "s3:PutObject"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:s3:::YourBucketNameGoesHere/*"
      ]
    }
  ]
}

希望这至少足以为您指明正确的方向。

有用的链接:

于 2012-09-12T10:14:27.367 回答