S3存储桶策略示例
可以根据以下命令使用AWS CLI配置存储桶策略:
> aws s3api put-bucket-policy --bucket examplebucket --policy file://policy.json
示例:允许所有人对存储桶进行只读访问
在此示例中,所有人(包括匿名用户)都可以列出存储桶中的对象,并对存储桶中的所有对象执行“获取对象”操作。 所有其他操作将被拒绝。 请注意,此策略可能不会特别有用,因为除root帐户外,没有人有权写入存储桶。
{
"Statement": [
{
"Sid": "AllowEveryoneReadOnlyAccess",
"Effect": "Allow",
"Principal": "*",
"Action": [ "s3:GetObject", "s3:ListBucket" ],
"Resource": ["urn:sgws:s3:::examplebucket","urn:sgws:s3:::examplebucket/*"]
}
]
}
示例:允许一个帐户中的每个人都具有完全访问权限,而另一个帐户中的每个人都对存储桶具有只读访问权限
在此示例中,一个指定帐户中的每个人都被允许完全访问存储桶,而另一个指定帐户中的每个人仅被允许列出存储桶并以“ shared/”对象键前缀开头对存储桶中的对象执行GetObject操作。
注意:在StorageGRID Webscale中,由非所有者帐户(包括匿名帐户)创建的对象由存储桶所有者帐户拥有。 桶策略适用于这些对象。
{
"Statement": [
{
"Effect": "Allow",
"Principal": {
"SGWS": "95390887230002558202"
},
"Action": "s3:*",
"Resource": [
"urn:sgws:s3:::examplebucket",
"urn:sgws:s3:::examplebucket/*"
]
},
{
"Effect": "Allow",
"Principal": {
"SGWS": "31181711887329436680"
},
"Action": "s3:GetObject",
"Resource": "urn:sgws:s3:::examplebucket/shared/*"
},
{
"Effect": "Allow",
"Principal": {
"SGWS": "31181711887329436680"
},
"Action": "s3:ListBucket",
"Resource": "urn:sgws:s3:::examplebucket",
"Condition": {
"StringLike": {
"s3:prefix": "shared/*"
}
}
}
]
}
示例:允许所有人对存储桶进行只读访问,并允许指定组进行完全访问
在此示例中,所有人(包括匿名用户)都可以列出存储桶并对该存储桶中的所有对象执行GET Object操作,而只有指定帐户中属于Marketing组的用户才被允许完全访问。
{
"Statement": [
{
"Effect": "Allow",
"Principal": {
"SGWS": "urn:sgws:identity::95390887230002558202:federated-group/Marketing"
},
"Action": "s3:*",
"Resource": [
"urn:sgws:s3:::examplebucket",
"urn:sgws:s3:::examplebucket/*"
]
},
{
"Effect": "Allow",
"Principal": "*",
"Action": ["s3:ListBucket","s3:GetObject"],
"Resource": [
"urn:sgws:s3:::examplebucket",
"urn:sgws:s3:::examplebucket/*"
]
}
]
}
示例:如果客户端在IP范围内,则允许所有人对存储桶进行读写访问
在此示例中,只要请求来自指定的IP范围(54.240.143.0到54.240.143.255,54.240.143.188除外),则允许所有人(包括匿名用户)列出存储区并对存储区中的所有对象执行任何对象操作。 )。 所有其他操作将被拒绝,并且IP范围之外的所有请求都将被拒绝。
注意:“租户管理器”(StorageGRID Webscale版本10.4或更高版本)仅支持“条件”关键字。
{
"Statement": [
{
"Sid": "AllowEveryoneReadWriteAccessIfInSourceIpRange",
"Effect": "Allow",
"Principal": "*",
"Action": [ "s3:*Object", "s3:ListBucket" ],
"Resource": ["urn:sgws:s3:::examplebucket","urn:sgws:s3:::examplebucket/*"],
"Condition": {
"IpAddress": {"sgws:SourceIp": "54.240.143.0/24"},
"NotIpAddress": {"sgws:SourceIp": "54.240.143.188"}
}
}
]
}
示例:仅允许指定的联盟用户完全访问存储桶
在此示例中,允许联合用户Bob完全访问examplebucket存储桶及其对象。 所有其他用户(包括“ root”)均被明确拒绝所有操作。 但是请注意,永远不会拒绝“ root”用户对Put / Get / DeleteBucketPolicy的权限
{
"Statement": [
{
"Effect": "Allow",
"Principal": {
"SGWS": "urn:sgws:identity::95390887230002558202:federated-user/Bob"
},
"Action": [
"s3:*"
],
"Resource": [
"urn:sgws:s3:::examplebucket",
"urn:sgws:s3:::examplebucket/*"
]
},
{
"Effect": "Deny",
"NotPrincipal": {
"SGWS": "urn:sgws:identity::95390887230002558202:federated-user/Bob"
},
"Action": [
"s3:*"
],
"Resource": [
"urn:sgws:s3:::examplebucket",
"urn:sgws:s3:::examplebucket/*"
]
}
]
}
- 0回答
- 1粉丝
- 0关注
- AWS S3 SDK 2.0删除文件夹
- 快应用开发示例
- Guava RateLimiter令牌桶算法限流
- MySql存储emoji表情字符解决方案
- 使用Let's Encrypt通配符HTTPS证书
- vue 3 的watchEffect 使用方法
- commons-lang3提示“The type StringEscapeUtils is deprecated”
- Vue3+Vite+Nginx 二级路径部署
- FFmpeg把mp4切片成hls生成m3u8
- Vue2和Vue3在v-for遍历时ref获取dom节点
- hls播放m3u8 添加header请求头,在请求ts的url上添加参数
- 一网友家的鸭子因为腿断了,心情抑郁不吃东西。于是这位非常有心的网友用3D打印技术给鸭子装了一只义肢。很暖心!