要允许发布存储桶,我们需要使用 s3:prefix
条件键来指定可以在哪个前缀中列出存储桶。以下语句提供了我们需要的存储桶级别权限。 1。导航到 AWS IAM 服务 1。单击 “策略” 1。找到并选择 “syslogs3AccessPolicy” 策略 1。编辑策略,使其包含 both 以下语句 1。保存保单
{
"Action": [
"s3:ListBucket"
],
"Resource": "arn:aws:s3:::company-security-logs",
"Effect": "Allow",
"Condition": {
"StringLike": {
"s3:prefix": [
"syslog/*"
]
}
}
},
对于对象级语句,我们需要使用单独的语句,因为我们在作用域中有不同的资源(存储桶中的对象,即 (/*
) 资源字符串),而不是存储桶本身。以下语句为我们提供了在 2022 年 4 月获取对象所需的权限。
{
"Action": [
"s3:GetObject"
],
"Resource": "arn:aws:s3:::company-security-logs/syslog/*",
"Effect": "Allow",
"Condition": {
"DateGreaterThan": {
"aws:currentTime": "2022-04-01T00:00:00Z"
},
"DateLessThan": {
"aws:currentTime": "2022-05-01T00:00:00Z"
}
}
}
完整策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"s3:ListBucket"
],
"Resource": "arn:aws:s3:::company-security-logs",
"Effect": "Allow",
"Condition": {
"StringLike": {
"s3:prefix": [
"syslog/*"
]
}
}
},
{
"Action": [
"s3:GetObject"
],
"Resource": "arn:aws:s3:::company-security-logs/*",
"Effect": "Allow",
"Condition": {
"DateGreaterThan": {
"aws:currentTime": "2022-04-01T00:00:00Z"
},
"DateLessThan": {
"aws:currentTime": "2022-05-01T00:00:00Z"
}
}
}
]
}