Context
У меня есть следующие требования:
У меня есть API-интерфейс в AWS (API Gateway), позволяющий получить доступ к объектам, организованным в файловой системе, подобной структуре, доступ к которой осуществляется через API с использованием пути в URL, т. Е.
/dir1/ -> https://myapi/dir1/
/dir1/object1 -> https://myapi/dir1/object1
/dir1/subdir1/ -> https://myapi/dir1/subdir1
/dir1/subidr1/object2 -> https://myapi/dir1/subdir1/object2
Теперь у меня есть пользователи, у которых есть разрешения на эти объекты, т.е.
user1 -> Read on /dir1/, Read+Write on /dir1/subdir1/object2
user2 -> Read on /dir1/object1
Правило состоит в том, что если у пользователя есть определенные разрешения для каталога, он имеет одинаковые права для всех подкаталогов!
user1 -> Read on /dir1/
therefore user1 -> Read on /dir1/*
Я могу смоделировать эти разрешения, предоставив пользователям определенные роли IAM, отражающие эти разрешения:
В качестве примера для пользователя1 выше:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"execute-api:Invoke"
],
"Resource": [
"arn:aws:execute-api:us-east-1:*:a123456789/test/GET/dir1/*",
"arn:aws:execute-api:us-east-1:*:a123456789/test/*/dir1/subdir1/object2"
]
}
]
}
Эти разрешения будут разными для каждого пользователя, в зависимости от того, к каким объектам он имеет доступ.
Теперь вопрос :
Могу ли я сгенерировать эти разрешения на уровне пользователя, используя API Gateway и Cognito (пулы пользователей и / или пулы идентификации)? Или этот уровень адаптации разрешений невозможен?