从VPC访问S3存储桶

n83

我正在运行NodeJS脚本,并使用aws-sdk包将文件写入S3存储桶。当我在本地运行脚本(而不是从ECS Fargate服务运行)时,这可以正常工作Error: AccessDenied: Access Denied

该服务具有允许的VPC vpc-05dd973c0e64f7dbc我尝试将Internet网关添加到此VPC,还添加了一个端点(如附图所示),但是没有任何方法可以解决“拒绝访问”错误。有什么想法我在这里想念的吗?

解决:问题是我误解了aws:sourceVpce。它需要VPC端点ID,而不是VPC ID。**

终点

终点

互联网网关 互联网网关

值区政策:

{
    "Version": "2008-10-17",
    "Id": "PolicyForCloudFrontPrivateContent",
    "Statement": [
        {
            "Sid": "1",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity E3MKW5OAU5CHLI"
            },
            "Action": [
                "s3:GetObject",
                "s3:PutObject"
            ],
            "Resource": "arn:aws:s3:::mywebsite.com/*"
        },
        {
            "Sid": "Stmt1582486025157",
            "Action": "s3:*",
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::mywebsite.com/*",
            "Principal": "*",
            "Condition": {
                "StringEquals": {
                    "aws:sourceVpce": "vpc-05dd973c0e64f7dbc"
                }
            }
        }
    ]
}
GRVPrasad

请添加一个桶策略,该策略允许从VPC端点进行访问。

使用条件更新您的存储桶策略,该条件允许用户在您创建的VPC端点发出请求时访问S3存储桶。要将这些用户下载对象列入白名单,您可以使用类似于以下内容的存储桶策略:

注意:对于的值aws:sourceVpce,输入您创建的端点的VPC端点ID。

{
   "Version": "2012-10-17",
   "Id": "Policy1314555909999",
   "Statement": [
     {
       "Sid": "<<Access-to-specific-VPConly>>",
       "Principal": "*",
       "Action": "s3:GetObject",
       "Effect": "Allow",
       "Resource": ["arn:aws:s3:::awsexamplebucket/*"],
       "Condition": {
         "StringEquals": {
           "aws:sourceVpce": "vpce-1c2g3t4e"
         }
       }
     }
   ]
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章