Мне нужно ведро s3 с политикой ведра s3, где у нас есть N количество PUSHERS (загружать сценарии) и 1 PULLER (загружать сценарий). Толкатели могут только читать / записывать там ключ (объект) в общем ведре, пока PULLER может читать / писать любой объект. Политика для puller проста. Но сложность возникает, когда каждый PUSHER может получить доступ только к своему объекту, а не к любому другому объекту.
Я пытался создать две групповые политики и предполагал, что PULLERS и PUSHERS будут пользователями, которые будут ПОЛЬЗОВАТЕЛЯМИ. Затем мы могли бы присоединить их к Группе .. Я также пытался включить единую политику корзины, но это не работал так же
S3 BUCKET POLICY:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowGroupToSeeBucketListInTheConsole",
"Action": ["s3:ListAllMyBuckets","s3:GetBucketLocation"],
"Effect": "Allow",
"Resource": ["arn:aws:s3:::*"]
},
{
"Sid": "AllowRootAndHomeListingOfMonitoringBucket",
"Action": ["s3:ListBucket"],
"Effect": "Allow",
"Resource": ["arn:aws:s3:::${aws_s3_bucket.service_bucket.id}"],
"Condition":{"StringEquals":{"s3:prefix":["","home/"],"s3:delimiter":["/"]}}
},
{
"Sid": "AllowListingOfUserFolder",
"Action": ["s3:ListBucket"],
"Effect": "Allow",
"Resource": ["arn:aws:s3:::${aws_s3_bucket.service_bucket.id}"],
"Condition":{"StringLike":{"s3:prefix":
["home/$${aws:username}/*","home/$${aws:username}"]
}
},
{
"Sid": "AllowAllS3ActionsInUserFolder",
"Action":["s3:*"],
"Effect":"Allow",
"Resource": ["arn:aws:s3:::${aws_s3_bucket.service_bucket.id}/$${aws:username}/*"]
}
]
}
EOF
}
Мой терраформ-аппликация не подходит для такой политики и заявляет, что она искажена