aws vpc s3 端点 cli 语法
aws vpc s3 endpoint cli syntax
我创建了一个 s3 vpc 端点,但我无法弄清楚 ec2 实例上用于与存储桶交互的 api cli 语法是什么。
"Resource": "arn:aws:s3:::MyBucketName"
来自 VPC 配置页面
ENDPOINTID=vpce-dxxxxxxx
SERVICE=com.amazonaws.eu-west-1.s3
s3 政策
{ "Version": "2012-10-17", "Id": "MyPolicy", "Statement": [ { "Sid": "MySidId", "Effect": "Allow", "Principal": {
"AWS": "arn:aws:iam::xxxxxxxx:role/MyRole" }, "Action": "s3:*", "Resource": "arn:aws:s3:::MyBucketName" } ] }
ec2 角色策略
{
"Sid": "MySidId",
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetObject",
"s3:PutObject",
"s3:DeleteObject"
],
"Resource": [
"*"
]
}
描述前缀列表
{
"VpcEndpoints": [
{
"PolicyDocument": "{\"Version\":\"2008-10-17\",\"Statement\":[{\"Sid\":\"\",\"Effect\":\"Allow\",\"Principal\":\"*\",\"Action\":\"*\",\"Resource\":\"*\"}]}",
"VpcId": "vpc-ec96cxxxx",
"State": "available",
"ServiceName": "com.amazonaws.eu-west-1.s3",
"RouteTableIds": [
"rtb-87cexxxx",
"rtb-bbcexxxx"
],
"VpcEndpointId": "vpce-d983xxxx",
"CreationTimestamp": "2016-01-05T13:28:41Z"
}
]
}
路线tablertb-bbcexxxx
有正确的"PrefixListId": "pl-6da54xxx"
我试过以下
aws s3 --profile prf1 --region eu-west-1 ls MyBucketName.com.amazonaws.eu-west-1.s3
aws s3 --profile prf1 --region eu-west-1 ls com.amazonaws.eu-west-1.s3.MyBucketName
aws s3 --profile prf1 --region eu-west-1 ls com.amazonaws.eu-west-1.s3/MyBucketName
组合但得到
A client error (NoSuchBucket) occurred when calling the ListObjects operation: The specified bucket does not exist
解决此端点的正确语法是什么?只是 s3://MyBucketName 吗??
感谢
艺术
应该是,是的——您实际访问存储桶的方式应该没有任何改变。
将端点前缀列表与子网相关联实质上劫持了指向 DNS 为 S3 区域返回的 public IP 地址的路由,因此您发送到 S3 的流量会遍历 "endpoint" 而不是而不是通过 Internet 网关发送 (igw-xxxxxxxx)——从您的角度来看,这只是 VPC 基础设施内的 IP 路由更改,因此无论您是否配置了 S3 端点,您都不需要做任何不同的事情。
当然,我怀疑实际上除了 "just" 路由 table 更改之外还有更多内容,但无论幕后发生了什么,其余部分都包含实施细节是 AWS 内部的,与服务对用户的显示方式无关。
你应该试试
aws s3 ls --region eu-west-1 s3://MyBucketName
这应该适用于端点。 S3Uris 以 s3://
为前缀
我创建了一个 s3 vpc 端点,但我无法弄清楚 ec2 实例上用于与存储桶交互的 api cli 语法是什么。
"Resource": "arn:aws:s3:::MyBucketName"
来自 VPC 配置页面
ENDPOINTID=vpce-dxxxxxxx
SERVICE=com.amazonaws.eu-west-1.s3
s3 政策
{ "Version": "2012-10-17", "Id": "MyPolicy", "Statement": [ { "Sid": "MySidId", "Effect": "Allow", "Principal": {
"AWS": "arn:aws:iam::xxxxxxxx:role/MyRole" }, "Action": "s3:*", "Resource": "arn:aws:s3:::MyBucketName" } ] }
ec2 角色策略
{
"Sid": "MySidId",
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetObject",
"s3:PutObject",
"s3:DeleteObject"
],
"Resource": [
"*"
]
}
描述前缀列表
{
"VpcEndpoints": [
{
"PolicyDocument": "{\"Version\":\"2008-10-17\",\"Statement\":[{\"Sid\":\"\",\"Effect\":\"Allow\",\"Principal\":\"*\",\"Action\":\"*\",\"Resource\":\"*\"}]}",
"VpcId": "vpc-ec96cxxxx",
"State": "available",
"ServiceName": "com.amazonaws.eu-west-1.s3",
"RouteTableIds": [
"rtb-87cexxxx",
"rtb-bbcexxxx"
],
"VpcEndpointId": "vpce-d983xxxx",
"CreationTimestamp": "2016-01-05T13:28:41Z"
}
]
}
路线tablertb-bbcexxxx
有正确的"PrefixListId": "pl-6da54xxx"
我试过以下
aws s3 --profile prf1 --region eu-west-1 ls MyBucketName.com.amazonaws.eu-west-1.s3
aws s3 --profile prf1 --region eu-west-1 ls com.amazonaws.eu-west-1.s3.MyBucketName
aws s3 --profile prf1 --region eu-west-1 ls com.amazonaws.eu-west-1.s3/MyBucketName
组合但得到
A client error (NoSuchBucket) occurred when calling the ListObjects operation: The specified bucket does not exist
解决此端点的正确语法是什么?只是 s3://MyBucketName 吗??
感谢
艺术
应该是,是的——您实际访问存储桶的方式应该没有任何改变。
将端点前缀列表与子网相关联实质上劫持了指向 DNS 为 S3 区域返回的 public IP 地址的路由,因此您发送到 S3 的流量会遍历 "endpoint" 而不是而不是通过 Internet 网关发送 (igw-xxxxxxxx)——从您的角度来看,这只是 VPC 基础设施内的 IP 路由更改,因此无论您是否配置了 S3 端点,您都不需要做任何不同的事情。
当然,我怀疑实际上除了 "just" 路由 table 更改之外还有更多内容,但无论幕后发生了什么,其余部分都包含实施细节是 AWS 内部的,与服务对用户的显示方式无关。
你应该试试
aws s3 ls --region eu-west-1 s3://MyBucketName
这应该适用于端点。 S3Uris 以 s3://