Используйте скрипт для вызова команды AWS CLI для каждого сегмента.
aws s3api put-bucket-policy --bucket MyBucket --policy file://policy.json
policy.json:
{
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::MyBucket/*"
},
{
"Effect": "Deny",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::MyBucket/MySecretFolder/*"
},
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::123456789012:root"
},
"Action": [
"s3:DeleteObject",
"s3:PutObject"
],
"Resource": "arn:aws:s3:::MyBucket/*"
}
]
}
Я бы назвал эту команду в скрипте или командном файле, один раз для каждого сегмента.
aws s3api put-bucket-policy --bucket MyBucket0 --policy file://policy.json
aws s3api put-bucket-policy --bucket MyBucket1 --policy file://policy.json
aws s3api put-bucket-policy --bucket MyBucket2 --policy file://policy.json
Вы должны экспортировать свой список сегментов в файл и построить скрипт из этого файла.
См. https://docs.aws.amazon.com/cli/latest/reference/s3api/put-bucket-policy.html