AWS Усиление нарушения правил доступа к API @auth после обновления модели - PullRequest
0 голосов
/ 07 января 2020

У меня есть приложение AWS Amplify (версия aws-amplify@1.2.4) с использованием API (AppSync / DynamoDB) и аутентификации (Cognito). В попытке реализовать обмен данными в моем приложении AWS Amplify (я хочу поделиться сущностью с именем Company) я обновил свою схему с

type Company @model @auth(rules: [
    {allow: owner}
]) {
    id: ID!
    name: String!
}

до

type Company @model @auth(rules: [
    {allow: owner}, 
    {allow: owner, ownerField: "rw_shares", operations: [read, create, update]}
]) {
    id: ID!
    rw_shares: [String]
    name: String!
}

После этого изменения в существующих данных я наблюдаю, что запрос listCompanys GraphQL ошибочно возвращает объекты, принадлежащие другим пользователям:

query ListCompanys {
  listCompanys (limit: 100){
    items {
      id
      name
      owner
      rw_shares
    }
  }
}

возвращает список, в котором некоторые компании имеют отличается owner (!) (и rw_shares не задано), в то время как запрос getCompany правильно завершается неудачно:

query GetCompany($id: ID!) {
  getCompany(id: $id) {
    id
    rw_shares
    name
  }
}

завершается неудачно при вызове с идентификатором компании принадлежит другому пользователю с сообщением об ошибке Not Authorized to access getCompany on type Query.

Это беспокоит меня, так как не должно быть возможности увидеть не принадлежащие объекту в БД. Что я делаю неправильно? Где я могу начать отслеживать проблему?

...