You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS用户权限配置:禁止在us-west-2区域外创建S3 bucket的方法

AWS用户权限配置:禁止在us-west-2区域外创建S3 bucket的方法

嘿,这个需求我之前帮不少用户处理过,咱们用自定义IAM权限策略就能完美实现,核心思路就是「明确允许在us-west-2区域创建S3桶,同时拒绝在其他所有区域执行创建操作」,下面是具体的配置步骤和细节说明:

一、编写自定义IAM策略

你需要创建一个包含两条语句的IAM策略,利用S3专属的条件键s3:LocationConstraint来锁定允许的区域。完整的JSON策略如下:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "s3:CreateBucket",
            "Resource": "arn:aws:s3:::*",
            "Condition": {
                "StringEquals": {
                    "s3:LocationConstraint": "us-west-2"
                }
            }
        },
        {
            "Effect": "Deny",
            "Action": "s3:CreateBucket",
            "Resource": "arn:aws:s3:::*",
            "Condition": {
                "StringNotEquals": {
                    "s3:LocationConstraint": "us-west-2"
                }
            }
        }
    ]
}

二、将策略关联到目标用户

  1. 登录AWS管理控制台,进入IAM服务
  2. 在左侧菜单选择「用户」,找到你要配置的目标用户
  3. 切换到「权限」标签页,点击「添加权限」→「附加现有策略直接」
  4. 在策略列表里找到你刚才创建的自定义策略,勾选后依次点击「下一步」→「添加权限」就搞定了

三、关键逻辑说明

  • 为什么要同时设置Allow和Deny?AWS的权限评估遵循拒绝优先原则,但我们先明确允许合法区域的操作,再兜底拒绝所有不符合的场景,这样能避免因其他策略冲突导致的权限漏洞
  • s3:LocationConstraint是S3特有的条件键,专门用来校验创建桶时指定的区域参数,精准控制区域范围
  • 注意:S3桶名是全局唯一的,就算限制了区域,用户也没法创建已被占用的桶名,但这属于S3的全局命名规则,和咱们的区域限制无关

四、验证配置效果

配置完成后,可以让用户测试一下:尝试在us-east-1等非目标区域创建桶,应该会收到「权限不足」的错误;而在us-west-2区域创建桶则能正常执行。

备注:内容来源于stack exchange,提问作者Franck Dernoncourt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 12:38:04