代码之家  ›  专栏  ›  技术社区  ›  Dmitry Grinko

aws s3api put bucket网站-PutbacketWebSite操作:拒绝访问

  •  0
  • Dmitry Grinko  · 技术社区  · 5 年前

    我正在尝试使用此命令设置静态网站托管:

    aws s3api put bucket网站--bucket XXXX--网站配置文件://assets/website.json

    网站.json

    {
        "IndexDocument": {
            "Suffix": "index.html"
        },
        "ErrorDocument": {
            "Key": "index.html"
        }
    }
    

    桶策略

    {
        "Version": "2008-10-17",
        "Statement": [
            {
                "Sid": "AllowPublicRead",
                "Effect": "Allow",
                "Principal": {
                    "AWS": "*"
                },
                "Action": [
                    "s3:GetObject"
                ],
                "Resource": "arn:aws:s3:::XXXX/*"
            }
        ]
    }
    

    我得到了一个错误:

    我应该在存储桶策略中更改什么?

    1 回复  |  直到 5 年前
        1
  •  1
  •   Dmitry Grinko    5 年前

    此PUT操作需要 S3:PutbacketWebsite 许可:

    添加存储桶策略:

        aws s3api put-bucket-policy \
            --bucket XXXX \
            --policy file://s3-bucket-policy.json
    

    s3铲斗-策略.json:

    {
        "Version": "2008-10-17",
        "Statement": [
             {
                "Effect": "Allow",
                "Principal": "*",
                "Action": "s3:GetObject",
                "Resource": "arn:aws:s3:::XXXX/*"
             },
             {
                "Effect": "Allow",
                "Principal": {
                   "AWS": "*"
                },
                "Action": [
                   "S3:PutBucketWebsite"
                ],
                "Resource": "arn:aws:s3:::XXXX"
             }
        ]
    }
    

    aws s3api put-bucket-website \
        --bucket XXXX \
        --website-configuration file://website.json
    

    网站.json

    {
        "IndexDocument": {
            "Suffix": "index.html"
        },
        "ErrorDocument": {
            "Key": "index.html"
        }
    }
    
        2
  •  0
  •   alex067    5 年前

    bucket策略只允许执行GET操作,但希望执行PUT操作。

    {
        "Version": "2008-10-17",
        "Statement": [
            {
                "Sid": "AllowPublicRead",
                "Effect": "Allow",
                "Principal": {
                    "AWS": "*"
                },
                "Action": [
                    "s3:GetObject",
                    "s3:PutObject
                ],
                "Resource": "arn:aws:s3:::XXXX/*"
            },
            {
                 "Sid": "AllowPutBucket",
                 "Effect": "Allow",
                 "Action": [
                     "s3:*"
                 ],
                  "Resource": [
                     "arn:aws:s3:::bucketname",
                      "arn:aws:s3:::bucketname/*"
                  ]
            }
        ]
    }