访问 s3 上的私有文件
Accessing private files on s3
我有一个私有的 s3 存储桶。我正在尝试使用授权访问它。我只能通过使用 AWS-SDK 为存储桶中的每个对象生成预签名的 url 来做到这一点,这根本不实用。
我也尝试过配置存储桶策略并仅对特定范围的 ip 授予权限,但它不起作用。我怎样才能看到那里出了什么问题?
您认为访问私有存储桶的最佳方法是什么?我有点困惑。
policy:
{
"Version": "2008-10-17",
"Id": "S3PolicyId1",
"Statement": [
{
"Sid": "IPDeny",
"Effect": "Deny",
"Principal": {
"AWS": "*"
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::bucket/*",
"Condition": {
"NotIpAddress": {
"aws:SourceIp": "public/private IP of ec2 instance/32"
}
}
},
{
"Sid": "IPDeny",
"Effect": "Deny",
"Principal": {
"AWS": "*"
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::bucket/*",
"Condition": {
"NotIpAddress": {
"aws:SourceIp": "myIPAddress/32"
}
}
}
]
}
我认为默认情况下帐户被限制访问 S3,除非他们已通过策略获得访问权限。但是,S3 默认设计为允许任何 IP 地址访问。因此,要阻止 IP,您必须在策略中明确指定拒绝而不是允许。
你应该改变政策,从只允许从我的 IP 地址访问到拒绝从任何不是我的 IP 地址的访问。
所以我认为您可能正在使用它:
{
"Id": "S3PolicyId1",
"Statement": [
{
"Sid": "IPAllow",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:*",
"Resource": "arn:aws:s3::: bucketname",
"Condition": {
"IpAddress": {
"aws:SourceIp": "CIDR Of Allowed IP"
}
}
}
]
你应该试试这个:
{
"Id": "S3PolicyId1",
"Statement": [
{
"Sid": "IPDeny",
"Effect": "Deny",
"Principal": {
"AWS": "*"
},
"Action": "s3:*",
"Resource": "arn:aws:s3::: bucket name*",
"Condition": {
"NotIpAddress": {
"aws:SourceIp": "CIDR Of Allowed IP"
}
}
}
]
希望对您有所帮助
我有一个私有的 s3 存储桶。我正在尝试使用授权访问它。我只能通过使用 AWS-SDK 为存储桶中的每个对象生成预签名的 url 来做到这一点,这根本不实用。 我也尝试过配置存储桶策略并仅对特定范围的 ip 授予权限,但它不起作用。我怎样才能看到那里出了什么问题? 您认为访问私有存储桶的最佳方法是什么?我有点困惑。
policy:
{
"Version": "2008-10-17",
"Id": "S3PolicyId1",
"Statement": [
{
"Sid": "IPDeny",
"Effect": "Deny",
"Principal": {
"AWS": "*"
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::bucket/*",
"Condition": {
"NotIpAddress": {
"aws:SourceIp": "public/private IP of ec2 instance/32"
}
}
},
{
"Sid": "IPDeny",
"Effect": "Deny",
"Principal": {
"AWS": "*"
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::bucket/*",
"Condition": {
"NotIpAddress": {
"aws:SourceIp": "myIPAddress/32"
}
}
}
]
}
我认为默认情况下帐户被限制访问 S3,除非他们已通过策略获得访问权限。但是,S3 默认设计为允许任何 IP 地址访问。因此,要阻止 IP,您必须在策略中明确指定拒绝而不是允许。
你应该改变政策,从只允许从我的 IP 地址访问到拒绝从任何不是我的 IP 地址的访问。
所以我认为您可能正在使用它:
{
"Id": "S3PolicyId1",
"Statement": [
{
"Sid": "IPAllow",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:*",
"Resource": "arn:aws:s3::: bucketname",
"Condition": {
"IpAddress": {
"aws:SourceIp": "CIDR Of Allowed IP"
}
}
}
]
你应该试试这个:
{
"Id": "S3PolicyId1",
"Statement": [
{
"Sid": "IPDeny",
"Effect": "Deny",
"Principal": {
"AWS": "*"
},
"Action": "s3:*",
"Resource": "arn:aws:s3::: bucket name*",
"Condition": {
"NotIpAddress": {
"aws:SourceIp": "CIDR Of Allowed IP"
}
}
}
]
希望对您有所帮助