У нас были аналогичные проблемы, приводившие к снижению политики при работе с нашими пользователями в AWS Transfer.Решение, которое работало для нас, заключалось в создании двух разных типов политик.
- Политика для присоединения к роли , которая имеет общие права на весь сегмент.
- Ограничить политику для применения к пользователю , который использует переменные службы передачи, такие как
{transfer:UserName}
.
Мы пришли к выводу, что, возможно, только дополнительная присоединенная политикаудалось разрешить переменные службы передачи .Мы не уверены, является ли это правильным и является ли это лучшим решением, потому что это открывает возможный риск, когда вы отказываетесь присоединить политику области действия, чтобы создать своего рода пользователя «администратора».Так что я был бы рад получить ввод, чтобы немного заблокировать это.
Вот как это выглядит в моей консоли при просмотре данных пользователя передачи:
Вот две наши политики, которые мы используем:
Общая политика для присоединения к роли IAM
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowListingOfUserFolder",
"Action": [
"s3:ListBucket",
"s3:GetBucketLocation"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::my-s3-bucket"
]
},
{
"Sid": "HomeDirObjectAccess",
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:DeleteObjectVersion",
"s3:DeleteObject",
"s3:GetObjectVersion"
],
"Resource": "arn:aws:s3::: my-s3-bucket/*"
}
]
}
Ограничьте политику, применяемую для передачи пользователя
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowListingOfUserFolder",
"Action": [
"s3:ListBucket"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::${transfer:HomeBucket}"
],
"Condition": {
"StringLike": {
"s3:prefix": [
"${transfer:UserName}/*",
"${transfer:UserName}"
]
}
}
},
{
"Sid": "AWSTransferRequirements",
"Effect": "Allow",
"Action": [
"s3:ListAllMyBuckets",
"s3:GetBucketLocation"
],
"Resource": "*"
},
{
"Sid": "HomeDirObjectAccess",
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:DeleteObjectVersion",
"s3:DeleteObject",
"s3:GetObjectVersion"
],
"Resource": "arn:aws:s3:::${transfer:HomeDirectory}*"
}
]
}