我正在运行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"
}
}
}
]
}
请添加一个桶策略,该策略允许从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] 删除。
我来说两句