拒绝2位用户的AWS S3存储桶访问

时间:2019-12-28 18:33:39

标签: amazon-web-services amazon-s3 amazon-iam

我几乎没有JavaScript知识,所以我需要一些帮助。

我在AWS账户上创建了几个存储桶以及几个用户。我知道为拒绝特定用户访问存储桶而编写的正确语法,但是我需要拒绝对两个用户的访问。我不知道这样做的正确语法:(

我有以下两个用户:BarnUBarnZ

我拒绝访问一个用户的代码如下:

{
    "Version": "2012-10-17",
    "Id": "Policy1575527937316",
    "Statement": [
        {
            "Sid": "Stmt1575527932225",
            "Effect": "Deny",
            "Principal": {
                "AWS": "arn:aws:iam::755268545265:user/BarnU"
            },
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::poloserver/*"
        }
    ]
}

如何将用户BarnZ添加到此脚本中?

谢谢

2 个答案:

答案 0 :(得分:1)

您可以简单地使用[ ]表示法列出它们:

"AWS": [
    "arn:aws:iam::755268545265:user/BarnU", 
    "arn:aws:iam::755268545265:user/BarnZ"
]

完整政策:

{
    "Version": "2012-10-17",
    "Id": "Policy1575527937316",
    "Statement": [
        {
            "Sid": "Stmt1575527932225",
            "Effect": "Deny",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::755268545265:user/BarnU", 
                    "arn:aws:iam::755268545265:user/BarnZ"
                ]
            },
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::poloserver/*"
        }
    ]
}

答案 1 :(得分:1)

为特定用户应用策略时,建议将策略与实际的IAM用户本身或IAM组相对。

  • 影响每个人的规则都应遵守存储桶政策(例如,将整个存储桶公开)
  • 影响特定用户的规则应进入 IAM用户
  • 影响一组用户(例如管理员)的规则应进入 IAM组,然后分配给IAM用户

此外,如果可能的话,最好避免使用Deny策略,而应限制最初Allow访问的策略。默认情况下,没有人可以访问Amazon S3中的任何内容。您必须具有一些策略来授予这两个用户访问S3的权限。如果可能的话,只需限制在这些Allow策略中授予的访问权限,这样一开始就永远不会授予它们访问权限。

如果您遇到有人获得许可但希望覆盖该许可的情况,请使用Deny。例如,可能授予某人访问所有Amazon S3存储桶的权限,但您不希望他们访问包含敏感数据的两个存储桶。在这种情况下,您可以使用Deny策略覆盖Allow

为此,请将您问题中显示的策略针对特定的IAM用户,但省略Principal部分,因为该策略将自动应用于IAM用户( s)已分配了策略。

  • 针对所需用户创建内联策略
  • 拒绝他们访问存储桶:
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Deny",
            "Action": "s3:*",
            "Resource": "arn:aws:s3:::my-bucket/*"
        }
    ]
}

此外,请确保这些用户没有允许他们更改自己的策略的IAM权限,否则他们可以更改/删除该策略。