В S3 у меня есть ведро с именем customerdata
. При этом я хочу иметь папки для каждого клиента, поэтому
/customerdata/bobjones/project1/data
/customerdata/jamessmith/project1/data
Мне нужно предоставить каждому клиенту доступ ТОЛЬКО к своей папке и данным в ней, желательно с помощью простого бесплатного инструмента, такого как cloudberry s3 explorer. Цель состоит в том, чтобы Боб Джонс вошел в систему Cloudberry и увидел данные в папке bobjones
.
Однако до сих пор я мог показать Бобу только все, что есть в ведре, или ничего. Вот политика, которую я пытался настроить, следуя эта статья, этот и этот:
{
"Version":"2012-10-17",
"Statement": [
{
"Sid": "AllowUserToSeeBucketListInTheConsole",
"Action": ["s3:ListAllMyBuckets", "s3:GetBucketLocation"],
"Effect": "Allow",
"Resource": ["arn:aws:s3:::*"],
"Condition":{"StringEquals":{"s3:prefix":["","customerdata/"],"s3:delimiter":["/"]}}
},
{
"Sid": "AllowRootAndHomeListingOfCompanyBucket",
"Action": ["s3:ListBucket"],
"Effect": "Allow",
"Resource": ["arn:aws:s3:::customerdata"],
"Condition":{"StringEquals":{"s3:prefix":["","bobjones/"],"s3:delimiter":["/"]}}
},
{
"Sid": "AllowListingOfUserFolder",
"Action": ["s3:ListBucket"],
"Effect": "Allow",
"Resource": ["arn:aws:s3:::customerdata"],
"Condition":{"StringLike":{"s3:prefix":["bobjones/*"]}}
},
{
"Sid": "AllowAllS3ActionsInUserFolder",
"Effect": "Allow",
"Action": ["s3:*"],
"Resource": ["arn:aws:s3:::customerdata/bobjones/*"]
}
]
}
Что я делаю не так? Это вообще возможно, что я пытаюсь сделать? Я также попробовал групповой подход и ничего не увидел в морошке.
Если это неправильный подход, как правильно настроить его, чтобы каждый клиент видел ТОЛЬКО свои проекты и данные?