Amazon web services AmazonS3对象:是否可以将公共读取策略仅限于某些IP地址?
一个具有公共读取策略的桶。现在我想限制对某些对象的访问,以便只能从某些IP地址访问。这可能吗 我还计划添加CloudFront。我应该怎么做才能在每个对象上保持相同的设置Amazon web services AmazonS3对象:是否可以将公共读取策略仅限于某些IP地址?,amazon-web-services,amazon-s3,amazon-cloudfront,amazon-iam,Amazon Web Services,Amazon S3,Amazon Cloudfront,Amazon Iam,一个具有公共读取策略的桶。现在我想限制对某些对象的访问,以便只能从某些IP地址访问。这可能吗 我还计划添加CloudFront。我应该怎么做才能在每个对象上保持相同的设置 谢谢 您可以使用S3存储桶策略。但它将应用于bucket中的单个文件夹,而不是单个文件。您可以使用如下策略: { "Version": "2008-10-17", "Id": "testPolicy", "Statement": [ {
谢谢 您可以使用S3存储桶策略。但它将应用于bucket中的单个文件夹,而不是单个文件。您可以使用如下策略:
{
"Version": "2008-10-17",
"Id": "testPolicy",
"Statement": [
{
"Sid": "1",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::bucketname/subfolder/subfolder2/*",
"Condition": {
"IpAddress": {
"aws:SourceIp": [
"xxx.xxx.xxx.xxx/xx",
"xxx.xxx.xxx.xxx/xx"
]
}
}
}
]
}
使用您的bucket名称、文件夹名称和IP
注意:请先在非生产存储桶上试用。您可以使用S3存储桶策略。但它将应用于bucket中的单个文件夹,而不是单个文件。您可以使用如下策略:
{
"Version": "2008-10-17",
"Id": "testPolicy",
"Statement": [
{
"Sid": "1",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::bucketname/subfolder/subfolder2/*",
"Condition": {
"IpAddress": {
"aws:SourceIp": [
"xxx.xxx.xxx.xxx/xx",
"xxx.xxx.xxx.xxx/xx"
]
}
}
}
]
}
使用您的bucket名称、文件夹名称和IP
注意:请先在非生产桶上试用。好的,谢谢您的回复。然而,我确实需要处理每个文件,而不是文件夹。有没有办法直接更新对象的ACL以限制对某些IP地址的访问?@Dorian这基本上是一样的,但与其在
资源
定义中使用带有通配符值的语句,不如使用多个语句,每个都具体地引用您希望策略应用到的确切资源。@Dorian正如Mike所指出的,您也可以为单个对象定义它。我没说那是错误的。好的,谢谢你的回复。然而,我确实需要处理每个文件,而不是文件夹。有没有办法直接更新对象的ACL以限制对某些IP地址的访问?@Dorian这基本上是一样的,但与其在资源
定义中使用带有通配符值的语句,不如使用多个语句,每个都具体地引用您希望策略应用到的确切资源。@Dorian正如Mike所指出的,您也可以为单个对象定义它。我没有说那件事是错误的。