1

OPA を使い始めたばかりなので、何か間違っている可能性が高いです。

次の入力があります。

{
  "request": {
    "principalId": "user1",
    "scope": "/workspaces/1/environments/dev/deployments/123",
    "requiredPermissions": [
      "Deployments.ReadWrite",
      "Foo.Bar"
    ]
  }
}

ユーザーがすべての必要なアクセス許可を持っていることを確認したい。私はすでに必要な変数を持っています:

#// this is opa/rego value

"principal_roles_at_requested_scope": [
              "Deployments.Read",
              "Deployments.ReadWrite",
              "WorkspaceEnvironments.Read",
              "Workspaces.Read"
            ]

セットに含まれていないため、これはallowfalse に設定する必要がありますが、次のように評価されます。Foo.Barprincipal_roles_at_requested_scopetrue

allow {
    some i
    input.request.requiredPermissions[i] in principal_roles_at_requested_scope
}

一方、これは機能しますが、明らかに使用できません。

allow {
    input.request.requiredPermissions[0] in principal_roles_at_requested_scope
    input.request.requiredPermissions[1] in principal_roles_at_requested_scope
}
4

1 に答える 1