gpt4 book ai didi

amazon-web-services - 限制对使用 API Gateway 作为代理的 S3 静态网站的访问

转载 作者:行者123 更新时间:2023-12-04 12:27:02 25 4
gpt4 key购买 nike

我有一个充当静态网站的 S3 存储桶,我正在使用 API Gateway 向它分配流量。我知道 CloudFront 在这里是一个更好的选择,但请不要推荐它。这不是一个选择,由于我不会进入的原因。

我通过配置 {proxy+} 资源来完成我的解决方案。下图:

enter image description here

我只想允许从 API Gateway 代理资源访问 S3 网站。 有没有一种方法可以为代理资源提供执行角色,类似于如何为资源提供执行角色以运行 lambda 函数?下面的 Lambda 执行角色示例:

enter image description here

代理资源的集成请求部分似乎没有执行角色:

enter image description here

或者有没有一种方法可以为整个 API 网关分配一个角色,为其提供访问 S3 存储桶的权利?

我尝试过的其他事情:

  • 编辑存储桶策略以仅允许来自 API 网关服务的流量:

    {
    “版本”:“2012-10-17”,
    "Id": "apiGatewayOnly",
    “陈述”: [
    {
    "Sid": "apiGW",
    “效果”:“允许”,
    “主要的”: {
    “服务”:[“api-gateway-amazonaws.com”]
    },
    " Action ": "s3:GetObject",
    “资源”:“http://test-proxy-bucket-01.s3-website.us-east-2.amazonaws.com/ *”
    }
    ]
    }
  • 编辑存储桶策略以仅允许来自 API Gateway 的 URL 的流量:

    {
    “版本”:“2012-10-17”,
    "Id": "http 引用策略示例",
    “陈述”: [
    {
    "Sid": "允许获取来自 www.example.com 和 example.com 的请求。",
    “效果”:“允许”,
    “主要的”: ””,
    " Action ": "s3:GetObject",
    “资源”:“http://test-proxy-bucket-01.s3-website.us-east-2.amazonaws.com/”,
    “健康)状况”: {
    “类似字符串”:{
    “aws:推荐人”:[
    "https://xxxxxxx.execute-api.us-east-2.amazonaws.com/prod/ ",
    "http://xxxxxxxx.execute-api.us-east-2.amazonaws.com/prod "
    ]
    }
    }
    }
    ]
    }
  • 最佳答案

  • 创建私有(private) S3 存储桶
  • 创建可以访问存储桶的 IAM 角色。将可以担任此角色的受信任实体/委托(delegate)人设置为 apigateway.amazonaws.com
  • 使用 AWS 服务集成类型并选择 s3。将执行角色设置为2
  • 中创建的角色

    引用 docs更多细节。

    enter image description here

    关于amazon-web-services - 限制对使用 API Gateway 作为代理的 S3 静态网站的访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55149367/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com